Jim Monte
a10be03c75
FALLTHROUGH added
2020-04-27 10:19:32 +02:00
Jim Monte
6d3ab5945e
variable redefinition removed
2020-04-27 10:19:13 +02:00
Jim Monte
82f832351b
FALLTHROUGH added
2020-04-27 10:18:38 +02:00
Jim Monte
ca2be5dd41
More efficient utf-8 to tchar conversion
...
remove 'graph' from SetColor
2020-04-27 10:18:10 +02:00
Jim Monte
3b0b944128
#include sequence, error message
2020-04-27 10:17:49 +02:00
Jim Monte
b5ce669de5
fgets error
2020-04-27 10:17:22 +02:00
Jim Monte
d96ea2490a
EXITPOINT, memory leaks upon failure
2020-04-27 10:16:55 +02:00
Jim Monte
b518d90509
EXITPOINT to delete malloced var in case of check failure
2020-04-27 10:16:37 +02:00
Jim Monte
9a83e6705c
#include resource.h added, fcn parameter void
2020-04-27 10:16:19 +02:00
Jim Monte
3a72b8e562
const qualifier, graph removed from SetColor,
2020-04-27 10:16:02 +02:00
Jim Monte
a3a8bc702d
type modifier, parameter graph removed from SetColor()
2020-04-27 10:15:32 +02:00
Holger Vogt
5b98b1e723
typüe modifier
2020-04-27 10:15:01 +02:00
Jim Monte
c8bf3a776c
error message
2020-04-27 10:14:13 +02:00
Jim Monte
19318929c1
modifier const, error message if 'system' fails
2020-04-27 10:13:50 +02:00
Holger Vogt
9af5e20eaf
formatting
2020-04-27 10:13:11 +02:00
Jim Monte
1e938f91b1
Error message if printing fails
2020-04-27 10:12:36 +02:00
Holger Vogt
e3441044dd
formatting
2020-04-27 10:12:19 +02:00
Holger Vogt
3ad93a50e8
Add EXITPOINTs, if reading inputs etc. fails
2020-04-27 10:09:30 +02:00
Holger Vogt
d761ed9c79
comment on parse tree evaluation
2020-04-25 10:30:21 +02:00
Holger Vogt
c520a9a4b9
if lt(a) comp mode is set, replace 'noiseless' by 'noisy=0' in resistors
2020-04-25 10:30:05 +02:00
Holger Vogt
74dbb1e843
Commit [88653f] Fixed assorted compiler warnings, memory leaks, etc.
...
branch beta_jdm by Jim Monte
2020-04-25 10:29:16 +02:00
Holger Vogt
ca05aa318b
Commit [88653f] Fixed assorted compiler warnings, memory leaks, etc.
...
branch beta_jdm by Jim Monte
2020-04-25 10:29:00 +02:00
Holger Vogt
779bd0e6e2
Commit [88653f] Fixed assorted compiler warnings, memory leaks, etc.
...
branch beta_jdm by Jim Monte
2020-04-25 10:28:49 +02:00
Holger Vogt
a084f4f2b5
avoid type conversion warning size_t -> int
2020-04-25 10:28:34 +02:00
Holger Vogt
d3866a6315
Spice_Notice is never NULL
2020-04-25 10:28:07 +02:00
Holger Vogt
0cd33d3fbb
correct zeroing of allplots array
2020-04-25 10:27:49 +02:00
Holger Vogt
fdbcdb5b7d
apply const qualifier appropriately
2020-04-25 10:27:28 +02:00
Holger Vogt
814cadf36c
remove const declaration to make ASRCsetup compatible with .DEVsetup
2020-04-25 10:25:42 +02:00
Holger Vogt
050cea146e
correct zeroing of allnodes array
2020-04-25 10:24:25 +02:00
Holger Vogt
833751ab3f
fix typo
2020-04-25 10:24:02 +02:00
Holger Vogt
b3fdff7bc0
Spice_Build_Date is never NULL
2020-04-23 13:30:55 +02:00
Holger Vogt
1f8b179ef9
typo
2020-04-21 20:02:31 +02:00
Holger Vogt
572daed2ec
Remove '.backanno' if LT campatibility mode is set
2020-04-21 20:02:18 +02:00
Holger Vogt
b701a6347d
cktislinear(): coupling of inductors is also linear
2020-04-21 20:02:05 +02:00
Holger Vogt
bad2a4e467
Guard XSPICE plot switching against circuit being removed already
2020-04-21 20:01:49 +02:00
Holger Vogt
ae2d207344
don't forget to free jobs->statistics[i]
2020-04-21 20:01:06 +02:00
Holger Vogt
3b5c272096
free mor data in jobs struct. Avoid memory leak upon 'quit' command.
2020-04-21 20:00:49 +02:00
Holger Vogt
bc0cef9371
remove all data enlisted in the jobs structure
2020-04-21 20:00:35 +02:00
Holger Vogt
bbb0007466
add function EVTswitch_plot() to switch the event data
...
according tothe (analog) plot. Called from plot_setcur()
in vetors.c, when command 'setplot xxx' is given.
2020-04-21 20:00:17 +02:00
Holger Vogt
d72b4c415f
get the plot name into the event job
2020-04-21 19:59:58 +02:00
Holger Vogt
b356b00014
Fixes bugs 476, 486: Reset code model init flag,
...
required when any run is called a second time.
2020-04-21 19:59:43 +02:00
Holger Vogt
c7e9c3884e
pow(a,b) function derivative: special case also for a=const
...
with enhnaced efficiency
introduce TRACE and TRACE1 for debugging
2020-04-21 19:59:29 +02:00
Holger Vogt
f5ebea5e9f
use internally predefined pow() function
2020-04-21 19:59:11 +02:00
Holger Vogt
a1a37d84a7
define is no longer needed with recent VS 2019
2020-04-21 19:58:55 +02:00
Holger Vogt
d8085ed594
guard against ft_curckt->ci_ckt == NULL
2020-04-21 19:58:36 +02:00
Holger Vogt
11b22c8f46
showmod will no longer crash ngspice if run after some error
2020-04-21 19:58:07 +02:00
Holger Vogt
6ab1f8b2d6
add mfg to the .model tokens to be ignored during altermod
2020-04-21 19:57:47 +02:00
Holger Vogt
93a76d8e21
add a limit exp(arg) to the exp function. If arg is larger
...
than 14 (arbitrarily selected), continue with linear response.
2020-04-21 19:57:19 +02:00
Holger Vogt
87101cd26d
no double parens
2020-04-21 19:56:55 +02:00
Holger Vogt
55f3776fc1
add a warning if file with modified parameters has not been found.
...
Then ignore the altermod command.
2020-04-21 19:56:27 +02:00
Holger Vogt
4c80a1ab7d
fix a bug, use ciprefix instaed of cieq, cieq led to
...
always FALSE if statement
2020-04-21 19:55:42 +02:00
Holger Vogt
a7e664a5c2
fix bug no. 484, correct TREALLOC usage
2020-04-21 19:55:04 +02:00
Holger Vogt
1c2dd967da
During setup, ASRC (aka B source) uses ckt->CKTrhsOld[node->number]
...
for initial evaluation. .nodeset or .ic have never set CKTrhsOld,
so initalization for B source failed.
We still have to check why .nodeset and .ic are set two times,
first in CKTic(), then in CKTload()!
2020-04-21 19:54:41 +02:00
dwarning
d735c60183
no size_t cast for GlobalMemoryStatusEx result
2020-04-21 19:52:05 +02:00
Holger Vogt
7889b5d540
re-add the icon to the top header of the ngspice GUI
2020-04-05 10:22:13 +02:00
Holger Vogt
c4e23989f3
Don't us atexit(), but delete memory during 'quit'
2020-04-04 14:22:04 +02:00
Holger Vogt
c2513af3e8
remove code that leads to crash if tran simulation is
...
interrupted and reset is sent (KiCAD)
2020-04-04 14:21:49 +02:00
Holger Vogt
1a9c1b8c24
remove unused code snippet
2020-04-04 14:21:33 +02:00
Holger Vogt
e28cae42f1
enable both new gmin and dyngmin
2020-04-04 14:21:15 +02:00
Holger Vogt
673a14afdb
more conservative op calculation:
...
start with new gmin, if this fails, fall back to dynamic gmin,
then source stepping
2020-04-04 14:20:45 +02:00
Holger Vogt
2f31bd5c2a
avoid compiler warning
2020-04-04 14:20:16 +02:00
Holger Vogt
9edc436ef7
remove SIGINT handling which was not functional
...
add SIGSEGV handler which may be excluded by
set nosighandling
2020-04-04 14:19:55 +02:00
dwarning
8ca33bc8f5
VDMOS correct thermal diode contribution in reverse operation
2020-04-04 14:19:38 +02:00
dwarning
b75791c87d
VDMOS include body diode into power calculation
2020-04-04 14:19:21 +02:00
dwarning
897165d026
VDMOS change default value for Rthca
2020-04-04 14:19:03 +02:00
dwarning
f19da3bd79
case correction for library name
2020-04-04 14:18:38 +02:00
Holger Vogt
c076c932b4
enable MINGW linking to -lShlwapi,
...
which failed during making 32 bit shared lib
2020-04-04 14:17:54 +02:00
dwarning
3999dcc700
w and l must be exact altermod parameter for MOS binning
2020-04-04 14:16:47 +02:00
dwarning
d3da0d5ebf
VDMOS consider body diode thermal contribution for self-heatine effect
2020-04-04 14:16:19 +02:00
Holger Vogt
c86cd740d6
fix a bug: re-enable reading vecs with length 1
...
Bug reported by LM
2020-04-04 14:15:55 +02:00
Holger Vogt
ded0092ad6
If ngSpice_Command(NULL) is sent to shared ngspice,
...
the internal control structure memory is freed.
2020-04-04 14:15:38 +02:00
Holger Vogt
d3fcf2f43f
restrict removal of arg only to comma operator,
...
otherwise functions with a single variable may fail
2020-04-04 14:13:35 +02:00
Holger Vogt
4a3b193154
remove memory leak in function parser (bug. no 478),
...
second case
2020-04-04 14:13:01 +02:00
Holger Vogt
96976ee49d
prevent non-English characters (e.g. Umlaute),
...
which gtkwave does not understand
2020-04-04 14:12:05 +02:00
Holger Vogt
3a6a445241
rcheck -> rcheckn in cmath1.c
...
delete alloced memory in case of check failure
2020-04-04 14:11:32 +02:00
Holger Vogt
ba81e21197
rcheckn: rcheck plus freeing allocated memory
2020-04-04 14:11:07 +02:00
Holger Vogt
84ff135e5b
syntax check for vdmos instances with 'thermal' flag
2020-04-04 14:10:07 +02:00
Holger Vogt
9e8e50cb57
Fix a bug raised by Sambeet in
...
[Ngspice-users] Problems with xspice limiter block:
Don't treat .model limit_comp limit(gain... as a function
if PSPICE compatibility is set.
2020-04-04 14:09:25 +02:00
dwarning
edc5b5a4d4
VDMOS prevent fault if thermal switch is given but thermal nodes are not
2020-04-04 14:08:48 +02:00
dwarning
8c2bdd2f7a
VDMOS include thermal components into convtest
2020-03-15 11:03:56 +01:00
dwarning
7b77a13d3d
VDMOS return if NIintegrate fails
2020-03-15 11:03:36 +01:00
dwarning
a850b2a070
VDMOS diode current op information
2020-03-15 11:00:34 +01:00
dwarning
793c82d384
VDMOS rise minimal diode resistance for better convergence
2020-03-15 11:00:23 +01:00
dwarning
5c5f43d122
VDMOS safe Temp init
2020-03-15 11:00:15 +01:00
dwarning
034f415621
VDMOS separate dc and thermal parts
2020-03-15 11:00:07 +01:00
dwarning
659ade6cf2
VDMOS few variable name changes
2020-03-15 10:59:59 +01:00
dwarning
ce66266965
VDMOS remove drain resistance temperature derivation
2020-03-15 10:59:54 +01:00
dwarning
ee7599b33f
VDMOS few variable name changes
2020-03-15 10:59:49 +01:00
Holger Vogt
020c5578a1
remove unused code snippet
2020-03-15 10:59:27 +01:00
Holger Vogt
0490bc090b
Allow 3-terminal MOS devices (e.g. VDMOS),
...
prevent crash upon user error
2020-03-15 10:59:05 +01:00
Holger Vogt
11cf6e709b
third trial: get the token i(vss) as a whole in the lexer,
...
this prevents the parser from generating the spurious vector vss.
No need to do an extra translation i(vss) -> vss#branch.
2020-03-15 10:58:56 +01:00
Holger Vogt
fbd17bc25a
Imrove an error message: End-of-line delimiter $ is
...
not allowed when PSPICE compatibility is set. $ is
a standard character in PSPICE.
2020-03-15 10:58:30 +01:00
Holger Vogt
02cf88c119
correct the return values
2020-03-15 08:51:18 +01:00
dwarning
ff07a21608
omit wanted fallthrough warnings with gcc
2020-03-15 08:51:18 +01:00
Holger Vogt
d967e18632
compatibility to old vsnprintf() in MINGW is no longer needed.
...
Compiling with -D__USE_MINGW_ANSI_STDIO=1 enables C99 compatibility.
2020-03-15 08:51:18 +01:00
Holger Vogt
258c01d9bb
Replace swprintf by MultiByteToWideChar to correctly
...
translate from utf-8 to wchar_t
2020-03-15 08:51:18 +01:00
Holger Vogt
b81953fafd
enable true gmin stepping
...
The old behavior, stepping diagmin, is re-obtained by adding flag
set 'dyngmin'
to .spiceinit or spinit
This flag may also be set within a .control section (e.g. to
compare results)
2020-03-15 08:51:18 +01:00
Holger Vogt
4bcb38abb5
clean up winmain.c
2020-03-15 08:51:18 +01:00
Holger Vogt
8d9d40d621
enable compiling wide char with MINGW
2020-03-15 08:51:18 +01:00
Holger Vogt
7a7f717574
make flag 'nolegend' localfor each plot
2020-03-15 08:51:17 +01:00
Holger Vogt
1398ee7aa0
set the proper preprocessor flag __MINGW32__
2020-03-15 08:51:17 +01:00
Holger Vogt
249304a06f
Instantiations of string and dstring functions as inline
...
This will remove the redundant-decls warning
2020-03-15 08:51:17 +01:00
Holger Vogt
0e4b736a5d
remove outdated function GlobalMemoryStatus(&ms)
2020-03-15 08:51:17 +01:00
Holger Vogt
08a2f04e8d
make code compile with MINGW (preliminary)
2020-03-15 08:51:17 +01:00
Holger Vogt
bcfdc806a5
work around a bug in MINGW
...
Reported in
https://github.com/msys2/MINGW-packages/issues/6254
2020-03-15 08:51:17 +01:00
Holger Vogt
09d3fbe3ad
remove false bracket in EXT_ASC
2020-03-15 08:51:17 +01:00
Holger Vogt
027b342a9c
prevent crash if premature exit (without ckt)
2020-03-15 08:51:17 +01:00
Holger Vogt
ded6bbbe34
make declaration inline
2020-03-15 08:51:16 +01:00
Holger Vogt
cab9cbdddf
re-enable making old apps with --enable-oldapps
2020-03-15 08:51:16 +01:00
Holger Vogt
2ff0e3b1b7
ngsconvert.c: add const to cp_enqvar
2020-03-15 08:51:16 +01:00
Holger Vogt
10c312856e
re-enable making nutmeg
2020-03-15 08:51:16 +01:00
Holger Vogt
06239e567f
plug a memory leak (in case of failing op for tran calculation)
2020-03-15 08:51:16 +01:00
Holger Vogt
2f23c58585
plug a memory leak (pll-xspice.cir)
2020-03-15 08:51:16 +01:00
Holger Vogt
14c0828a65
plug a memory leak (IXTH80N20L-IXTH48P20P-quasisat.sp)
2020-03-15 08:51:16 +01:00
dwarning
15b8e0ba7f
add aliases for temp coeffs
2020-03-15 08:51:15 +01:00
dwarning
5e4c7a255e
update .gitignore and make clean
2020-03-15 08:51:15 +01:00
dwarning
e9abecc8c7
change vdmos flag to thermal, not to confuse with b4soi
2020-03-15 08:51:15 +01:00
dwarning
3686dbfb78
filter only mos instances with thermal switch
2020-03-15 08:51:15 +01:00
Holger Vogt
f24ed96cbd
plug some memory leaks
2020-03-15 08:51:15 +01:00
dwarning
791f18053f
change vdmos flag to thermal, not to confuse with b4soi
2020-03-15 08:51:15 +01:00
Jim Monte
b9d45349d5
Added featurest to com_let to allow default low and high indices and to allow the last dimension to default to its full range
2020-03-15 08:51:15 +01:00
dwarning
59bb80f3d3
free errMsg only if available
2020-03-15 08:51:14 +01:00
dwarning
f632f79056
use errMsg under ngdebug condition and prevent memory leak
2020-03-15 08:51:14 +01:00
Holger Vogt
eab10ee065
prevent double closing of file (Linux does not NULL fp during fclose)
2020-03-15 08:51:14 +01:00
Holger Vogt
e53632c368
When plotting arrays of curves, plot lines only in the direction
...
of (in absolute terms) growing x values.
Example: MOS output characteristics.
In the rare case of plotting versus varying x directions
(e.g. example memristor.sp), one has to add the flag
'retraceplot' to the plot command.
2020-03-15 08:51:14 +01:00
Holger Vogt
14b154f5f3
Copy the scale vector as well and attach it to the data vector.
...
Remove it again when the graph is destroyed.
2020-03-15 08:51:14 +01:00
Holger Vogt
f518766c66
add a slight offset between y axis labels and grid
2020-03-15 08:51:14 +01:00
Holger Vogt
1919cf5c94
replace variable 'gridwidth' by 'xgridwidth'
2020-03-15 08:51:13 +01:00
Holger Vogt
c2cf4d7eda
required for reliable re-plotting, however still has the
...
return line bug no #472
2020-03-15 08:51:13 +01:00
Holger Vogt
57e647c704
enable "null allowed" for reset input
2020-03-15 08:51:13 +01:00
Holger Vogt
acbec3ae81
Preliminary 'fix' to a plotting bug (visible return line in an array of curves):
...
Partially undo code added in commit 10415875f4 /
This will need further discussion or updates
2020-03-15 08:51:13 +01:00
Holger Vogt
71ad2903ff
plug a memory leak in inpcom.c vdmos code
2020-03-15 08:51:13 +01:00
Holger Vogt
4ddcff55e7
add const declaration to newfopen
2020-03-15 08:51:13 +01:00
Holger Vogt
c4045d371d
single space indent in analysis window
2020-03-15 08:51:13 +01:00
Holger Vogt
8ff4c7cd3b
just another remains of quote
2020-03-15 08:51:12 +01:00
Holger Vogt
7f085144a9
remove all the remains of quote() and strip() that had been
...
used to modify the eigths bit of a character or string.
The functions had been switched off some time ago.
We now need all bits of a char for extended ascii or utf8
2020-03-15 08:51:12 +01:00
Holger Vogt
8d986e50cc
remove the remains of the old xgraph program
...
that has not been supported for many years
2020-03-15 08:51:12 +01:00
Holger Vogt
32722ecc57
some missing brackets, typos
2020-03-15 08:51:12 +01:00
Holger Vogt
93a408598a
switch to colorarray in graph to string all color data,
...
one set per each graph.
If we are zooming or selecting a cutout, copy the
source graph's colors to the new graph. Transfer the
old graphs id to the new graph via graph->graphid.
2020-03-15 08:51:12 +01:00
Vogt
728ddae41e
Set the color tables and linewidths personal for each graph,
...
added to strucht graph
Use only these data for plotting.
If zooming a plot windows, set as an extra parameter the graph id
of the 'mother graph'. Copy its color and line data to the new graph.
This is done by an extra parameter sgraphid to the internal plot
command that is issued in fcn PlotWindowProc().
Thus zooming will keep the background, text/line and graph colors.
Function setcolor() will always look into the colorarray of the
current graph.
2020-03-15 08:51:12 +01:00
Holger Vogt
a7aaac854f
enable color and font selection for X11:
...
Add graphics context gridgc for plotting the grids.
Enable rgbd:, input of color by RGB 0 ... 255
If no color1 (text/grid) is given,
select black or white according to backgrund color.
Error message, but no crash if font cannot be selected.
Enable separate linewidth selection for grid and graph.
2020-03-15 08:51:11 +01:00
Holger Vogt
800cd05f3d
new variable nolegend: with 'set nolegend' plotting of
...
the legend is suppressed.
2020-03-15 08:51:11 +01:00
Holger Vogt
fed7ef378f
add variable ticchar, allow an arbitrary character as ticmark
2020-03-15 08:51:11 +01:00
Holger Vogt
8639144093
cp_getvar: force a limit to a string entered
...
Issue a warning, truncate the string
2020-03-15 08:51:11 +01:00
Holger Vogt
1fda03382e
color input for text/grids (color1), background (color0)
...
and graphs (color2-22) on Windows via
set color2=red
set color2=rgb:ff/0/0
set color2=rgbd:255,0,0
several examples given in the example files
2020-03-15 08:51:11 +01:00
Holger Vogt
86917e3d36
enclose in WinGUI #ifdef
2020-03-15 08:51:11 +01:00
Holger Vogt
6094769fda
Restore original 'green', slight update on
...
auto color selection vs. background
2020-03-15 08:51:11 +01:00
Holger Vogt
cb38e7a367
enable using setting colors by colornn with 0<=nn<=22
...
The name list of colors is given by
https://www.codeproject.com/Articles/1276/Naming-Common-Colors
2020-03-15 08:51:10 +01:00
Holger Vogt
54778527c4
list of colors used
2020-03-15 08:51:10 +01:00
Holger Vogt
167bd9b433
enable color selection, if compiled with MINGW
2020-03-15 08:51:10 +01:00
Holger Vogt
3701ca0364
add color selection to WinGui plots
2020-03-15 08:51:10 +01:00
Holger Vogt
ef95ff7edc
generate variable oscompiled
...
test for variable
2020-03-15 08:51:10 +01:00
Holger Vogt
38bb89663d
replace old_x11 by HAVE_LIBXFT defined in configure
2020-03-15 08:51:09 +01:00
Holger Vogt
921058cb39
fix remaining bugs when EXT_ASC is defined
2020-03-15 08:51:09 +01:00
Holger Vogt
6e0b631492
Regain static behaviour, keep removing compiler warning
2020-03-15 08:51:09 +01:00
Holger Vogt
3a8e3d130c
update and unify font handling
2020-03-15 08:51:08 +01:00
Holger Vogt
bef9c70e71
Prepare font selection and rotation only once per graph
...
in func X11_DefineXft().
Only 0 and 90 degree are supported.
2020-03-15 08:51:08 +01:00
Holger Vogt
8312a8ade2
Select suitable default text color
2020-03-15 08:51:08 +01:00
Holger Vogt
3eb04b2fdc
improve on memory leaks
...
(not yet completely satisfying)
2020-03-15 08:51:08 +01:00
Holger Vogt
8f42eae6ab
add empty line after error message
2020-03-15 08:51:08 +01:00
Holger Vogt
a23748cf8c
Don't call DestroyGraph if graf id is 0
2020-03-15 08:51:08 +01:00
Holger Vogt
673069f442
add to the source window after 'source' command
2020-03-15 08:51:08 +01:00
Holger Vogt
fd96983099
Reset DevSwitch before returning
2020-03-15 08:51:08 +01:00
Holger Vogt
e7022f7fae
utf-8 string length determined by strlen
2020-03-15 08:51:08 +01:00
Holger Vogt
ac1c8c4a96
return NULL upon NULL input
2020-03-15 08:51:07 +01:00
Holger Vogt
93be5bab0c
increase buffer size, send text to string window,
...
retrieve the correct number of byte after utf-8 conversion.
Answering to a promt (e.g. after command 'hardcopy') does not
yet do.
2020-03-15 08:51:07 +01:00
Holger Vogt
510b1865b4
Re-sort wide char variable definitions.
...
add utf-8 ... utf-16 conversion.
Strings in history buffer shall remain utf-8.
History buffering is not yet working.
2020-03-15 08:51:07 +01:00
Holger Vogt
7a41921035
prevent crash if 'hardcopy' is given without parameters
2020-03-15 08:51:07 +01:00
Holger Vogt
6edb0eea41
re-organize PS color selection
...
Improve settings for PS image
Improve error messages
2020-03-15 08:51:07 +01:00
Holger Vogt
18f1e896f8
allow independent linewidth and gridwidth settings from within the .control section
2020-03-15 08:51:07 +01:00
Holger Vogt
7c0b72c387
prevent compiler warnings
...
enable short GUI interaction from within spfactor.c
2020-03-15 08:51:06 +01:00
Holger Vogt
bd7b35541d
Lengthy op calculations make the Win GUI unresposive.
...
A macro adds a short travel to the GUI fro0m within
the matrix ordering and factoring. Time overhead
during op is less than 0.5%.
2020-03-15 08:51:06 +01:00
Holger Vogt
3d009fef22
Variables xbrushwidth and gridwidth (to be set e.g. in
...
.spiceinit) allow setting separately the linewidths of the
graph (xbrushwidth) and the grid (gridwidth).
2020-03-15 08:51:06 +01:00
Holger Vogt
c9edc6fcb3
Add function returning the true string length in pixels.
...
May be called from outside of x11.c.
2020-03-15 08:51:06 +01:00
Holger Vogt
10f0eea93e
add gridwidth, xbrushwidth to postscript output
2020-03-15 08:51:06 +01:00
Holger Vogt
ca7c77315a
add missing üarameter to DevDrawLine for X11 and HPGL
2020-03-15 08:51:06 +01:00
Holger Vogt
8751092812
Enable separate linewidths for grids and graphs.
...
New variable gridwidth overrides xbrushwidth for graphs.
Fcn DevDrawLine() with boolean flag if grid is plotted.
Postscript, Gnuplot and X11 not (yet) supported.
2020-03-15 08:51:05 +01:00
Holger Vogt
7690b64571
add missing declaration of old_x11
2020-03-15 08:51:05 +01:00
h_vogt
7c3a305d43
add wide char for string i/o under Windows
...
add utf-8 systax check
2020-03-15 08:51:05 +01:00
h_vogt
22f4e8f82d
return extended ascii as alpha
2020-03-15 08:51:05 +01:00
Holger Vogt
85142709fc
For UNICODE use char in comparison to ' '
...
only as unsigned char
2020-03-15 08:51:05 +01:00
h_vogt
531c229b0e
Add library xft for allowing text rotation.
...
Setting variabe 'old_x11' will retain previous behaviour.
2020-03-15 08:51:05 +01:00
h_vogt
0cdea87cb5
Add and ignore angle in fcn for text out
2020-03-15 08:51:05 +01:00
Holger Vogt
0dfe8a22ad
add angle to allow text rotation
2020-03-15 08:51:04 +01:00
h_vogt
697facdc30
#define fopen newfopen
...
and header for MINGW and MS VS
2020-03-15 08:51:04 +01:00
h_vogt
9f272ea8f6
function newfopen to replace fopen
...
by reading wide char strings
2020-03-15 08:51:04 +01:00
Holger Vogt
59adfc1d68
add extended ascii and its selection
...
converter UTF-8 to ISO-8859-1/ISO-8859-15
2020-03-15 08:51:04 +01:00
Holger Vogt
c4f641dad6
remove bracket left over from recent manual merge conflict resolution
2020-03-15 08:51:04 +01:00
h_vogt
dbd0a5743a
Enable utf-8 and UNICODE for string handling.
...
preprocessor flag EXT_ASC resets handling to old behaviour.
Add utf-16 wide char to all Windows string i/o.
Add translation between utf-8 and utf-16.
Add angle to fcn DevDrawText.
2020-03-15 08:51:04 +01:00
Holger Vogt
28c0fbf397
Zero fp, this fixes bug no #475
2020-03-15 08:51:04 +01:00
Jim Monte
93233fde2c
Made descriptions of invalid interpolation cases more descriptive and fixed a memory leak
2020-03-15 08:51:04 +01:00
dwarning
740df722c7
partially revert commit b4bbcb149 for spec analysis functionality
2020-03-15 08:51:04 +01:00
dwarning
86d7963f32
more meaningful warning if vector can't interpolate
2020-03-15 08:51:03 +01:00
Holger Vogt
0ad7acadec
remove unreachable code warning, add const
2020-03-15 08:51:03 +01:00
Holger Vogt
c77da1870d
Fixed compiler warnings related to const, unreachable code, and an empty translation unit.
2020-03-15 08:51:03 +01:00
Jim Monte
7084274344
Fixed incorrect type of variable ch_cur. It was from const char * but should have been const char.
2020-03-15 08:51:03 +01:00
Holger Vogt
5bd45c0451
make path to dstring.c independent from build directory
2020-03-15 08:51:03 +01:00
Holger Vogt
5bc9a320eb
Revert "correct the path to dstring.c"
...
This reverts commit 28002be150 .
2020-03-15 08:51:03 +01:00
Holger Vogt
89ea46e39a
prevent false freeing of vector
2020-03-15 08:51:03 +01:00
dwarning
129b219ed2
correct the path to dstring.c
2020-03-15 08:51:03 +01:00
dwarning
4f75d56011
no wrapper cp_globmatch needed
2020-03-15 08:51:03 +01:00
Vogt
e628fd8977
just use strcmp instead of wrapper function
2020-03-15 08:51:02 +01:00
Holger Vogt
5e76758e57
update to cmpp by J. Monte
2020-03-15 08:51:02 +01:00
Jim Monte
955dda749d
Jim Monte's update to cmpp
2020-03-15 08:51:02 +01:00
Holger Vogt
375a92d788
Fix of buffer overrun in interpolation at endpoint of interval.
...
Made cfunc.mod for tables more modular.
Prevented buffer overrun when building file name.
Added error checking for allocation failures in many locations.
Made binary search for interpolation more efficient.
2020-03-15 08:51:02 +01:00
Jim Monte
92065ea41b
fixed singluar/plural agreement in an error message generated by the let command
2020-03-15 08:51:02 +01:00
Jim Monte
a53cd3a3e9
fixed path created by ngdirname in Windows. Also added const to parameters whose arguments do not change and fixed some potential buffer overruns.
2020-03-15 08:51:02 +01:00
Jim Monte
2d9110bf65
Add const to some parameters, made function static
2020-03-15 08:51:02 +01:00
Jim Monte
1867f5b727
Fix of buffer overrun in interpolation at endpoint of interval. Made cfunc.mod for tables more modular. Prevented buffer overrun when building file name. Added error checking for allocation failures in many locations. Made binary search for interpolation more efficient.
2020-03-15 08:51:02 +01:00
Jim Monte
b4757f934b
Added support for DSTRING in code modules with makefile builds
2020-03-15 08:51:02 +01:00
Jim Monte
190c7fb75c
Clarified error message
2020-03-15 08:51:01 +01:00
Jim Monte
ac49ccaf58
Fixed compile warning about signed/unsigned comparison.
2020-03-15 08:51:01 +01:00
Jim Monte
d254b6c97e
Gave structure defining Mif_Complex_t a name so that it could be forward referenced.
2020-03-15 08:51:01 +01:00
Jim Monte
bfe660e57b
Formatting and added comments
2020-03-15 08:51:01 +01:00
Jim Monte
082f36e794
Formatting
2020-03-15 08:51:01 +01:00
Jim Monte
2f8b7ab062
Minor fix to end-of-index processing of let command
2020-03-15 08:51:01 +01:00
Jim Monte
b967caaabb
File path built more efficiently and now allows an arbitrary length. Prevented strdup() of NULL if path too long. Similarly prevented fopen with a NULL file name. Added function to determine Windows absolute paths properly. Fixed numerous issues that were caused by including Windows system header due to conflicting names. Generally a CMPP_ prefix was added as a "namespace". Also used the standard C bool type instead of defining one.
2020-03-15 08:51:01 +01:00
Jim Monte
0c741bbde2
Rework of let command. Added support for slices as described in feature #69 and fixed several crashes and issues described in bugs #443 , #444 , #446 , #447 , and #448 .
2020-03-15 08:51:01 +01:00
Jim Monte
7990a82f02
Formatting and comments added
2020-03-15 08:51:01 +01:00
Jim Monte
3a2a05f7b0
Removed unnecessary comparisons when lowercasing a string.
2020-03-15 08:51:01 +01:00
Jim Monte
b767df3a7e
Modified calculation to determine when memory is nearly exhausted. Also changed prototypes of memory reporting functions to match their definitions.
2020-03-15 08:51:00 +01:00
dwarning
93317c87a9
simplify beta derivation
2020-03-15 08:51:00 +01:00
dwarning
e966ce5054
alternative temperature model for extrinsic resistances and subthreshold range
2020-03-15 08:51:00 +01:00
Holger Vogt
ec1d655289
In VDMOS device, if instance parameter tnodeout is set,
...
check for exactly five nodes
2020-03-15 08:51:00 +01:00
Holger Vogt
643b0edc26
enable local or global statistical values for B source
...
pre_set statlocal
(or set statlocal in spinit or .spiceinit) will be setting a
different random number for evaluating the value of fcn agauss
etc. in each B line, e.g. if this line appears in a subcircuit,
all expanded B lines will have different values. If not set,
each B line will use the same random number for agauss evaluation.
2020-03-15 08:51:00 +01:00
Holger Vogt
1353a5de77
allow again single letter vector names
2020-03-15 08:51:00 +01:00
dwarning
0fb1c6a000
prevent program crash by misusing thermal model
2020-03-15 08:50:59 +01:00
dwarning
7d17b8f082
vdmos have no Cgb
2020-03-15 08:50:59 +01:00
dwarning
0362d63094
update vdmos with self-heating network and tj and tcase terminal
2020-03-15 08:50:59 +01:00
Holger Vogt
f585807085
re-enable V source with parameter EXTERNAL
...
Fix bug #463
2020-03-15 08:50:59 +01:00
Holger Vogt
b699c7fad8
add the PSPICE vswitch S_ST variant,
...
which resolves to the classical ngspice sw switch
2020-03-15 08:50:59 +01:00
Holger Vogt
9d53780992
allow vec_get to verify vectors if their names are quoted by ""
2020-03-15 08:50:59 +01:00
Holger Vogt
987cc0aa86
another preliminary patch for macOS
2020-03-15 08:50:58 +01:00
Holger Vogt
7680be7312
stub to enable compilation on macOS,
...
memory info for macOS is currently not available.
2020-03-15 08:50:58 +01:00
dwarning
fa8a77343b
format line with LF
2020-03-15 08:50:58 +01:00
Holger Vogt
b7012065ae
remove compiler warning by setting variables to 0
2020-03-15 08:50:58 +01:00
Holger Vogt
a9f83f3445
remove two small memory leaks
2020-03-15 08:50:58 +01:00
Holger Vogt
58901fe898
remove spurious error message
2020-03-15 08:50:58 +01:00
Holger Vogt
7ae76f0f51
update to the .measure and meas error messages:
...
remove crash uipon buggy inputs
add buggy example input file
unify fcn returns: 0 is OK, 1 is bad
Improve on error message for bad syntax
2020-03-15 08:50:58 +01:00
Holger Vogt
e9603dcdeb
enable inp_dodeck() to return an error state,
...
if error, inp_spsource() will return error as well
2020-03-15 08:50:57 +01:00
Holger Vogt
651ba72344
return immediately if ckt is NULL
2020-03-15 08:50:57 +01:00
Holger Vogt
51f80abe00
if inp_spsource() returns with an error code, emit a message
2020-03-15 08:50:57 +01:00
Holger Vogt
f9307d0beb
enable returning inp_spsource() with an error code
2020-03-15 08:50:57 +01:00
Holger Vogt
0c74820821
enable PSPICE compatible ~(~v(9)&v(8))
2020-03-15 08:50:57 +01:00
Holger Vogt
46adeb5eaa
plug memory leaks for the 'plot' command
2020-03-15 08:50:57 +01:00
Holger Vogt
573b270b6d
Give a better, modern name for this type of display
2020-03-15 08:50:57 +01:00
Holger Vogt
b1be546939
User expects an empty input line, not a text that has to be deleted befopre writing
2020-03-15 08:50:57 +01:00
Holger Vogt
966b69090d
use only TMALLOC and TREALLOC for memory allocation
2020-03-15 08:50:56 +01:00
Holger Vogt
53613f4e69
deprecated gets() -> fgets()
2020-03-15 08:50:56 +01:00
Holger Vogt
85e0a08cff
error message even if pNAME is not defined
2020-03-15 08:50:56 +01:00
Holger Vogt
39ce1f77d2
patch provided by Vito (see
...
https://sourceforge.net/p/ngspice/discussion/133842/thread/31aa24261e/ )
2020-03-15 08:50:56 +01:00
Holger Vogt
09f829b863
Further improvement of error message im 'meas'
2020-03-15 08:50:56 +01:00
Holger Vogt
94d5ad312e
Improve error messages for the 'meas' command.
2020-03-15 08:50:56 +01:00
Jim Monte
d4088c896a
Restored command arguments accidentally deleted.
2020-03-15 08:50:56 +01:00
Jim Monte
4b145ddf5e
Added #include <stdio.h> to define FILE.
2020-03-15 08:50:55 +01:00
Jim Monte
06ebf80983
Modified search for init file so that it searches both <HOME> and <USERPROFILE> if both are defined.
2020-03-15 08:50:55 +01:00
Jim Monte
2068c4fffb
Added -D/--define option to define a variable from the command line.
2020-03-15 08:50:55 +01:00
Jim Monte
372fe2a5e7
Opened binary files for writing using "wb" in all cases
2020-03-15 08:50:55 +01:00
Jim Monte
21f3eb74b8
Added basic help messages in addtion to reference to web pages
2020-03-15 08:50:55 +01:00
Jim Monte
de4788cfe5
Added conjugate function conj().
2020-03-15 08:50:55 +01:00
Jim Monte
a7946474fa
Additional freeing of device-dependent information for bug #419 and related bugs.
2020-03-15 08:50:55 +01:00
Jim Monte
d3343b1791
Removed redundant macro
2020-03-15 08:50:55 +01:00
Jim Monte
0cf53a34b2
Fixed resolution of ~ to home directory. (Bug #405 ) Also fixed potential buffer overruns in glob expansion
2020-03-15 08:50:54 +01:00
Jim Monte
ce5410d33f
Fixed checking for redirection tokens
2020-03-15 08:50:54 +01:00
Jim Monte
cec6a8edd3
Fixed access of freed memory when reporting an error.
2020-03-15 08:50:54 +01:00
Jim Monte
8141a634d7
Fixed several issues related to plotting and vector lifetimes and made ownership of vectors clearer. The issues in bugs 419, 423, 425, and 426 were related and were addressed here.
2020-03-15 08:50:54 +01:00
Jim Monte
57ffe1769f
Fixed "phantom vector" issue with plots and crash when plots are resized. See bugs #419 and #423 for details. Also several parameters were changed from char * to const char * in the plotting functions.
2020-03-15 08:50:54 +01:00
Jim Monte
9d2c105942
Fixed bug with 255 card deck entered using circbyline
2020-03-15 08:50:54 +01:00
Jim Monte
e1ec2a21dd
Added error recovery when invalid foreach statement found
2020-03-15 08:50:54 +01:00
Jim Monte
690b7730fe
Fixed memory leak when empty word found.
2020-03-15 08:50:54 +01:00
Jim Monte
b120e7bd21
Fixed reporting of system information in Windows.
2020-03-15 08:50:53 +01:00
Jim Monte
271afc87cf
Made UI more consistent when comments are entered.
2020-03-15 08:50:53 +01:00
Jim Monte
2df00ad8c9
Cleaned up defintions of macro constants
2020-03-15 08:50:53 +01:00
Jim Monte
2f3b9d0f2d
Used Win32 function PathIsRelativeA() to identify an absolute path instead of checking the string since the system function may handle more cases (network shares, etc.). Also reviewed formatting that was done on inpcom.c by a code beautifier in an earlier commit. Nearly all of it was an improvement, but a few cases were reverted back to closer to the original form. One particular instance was comments where a list of steps was given one per line.
2020-03-15 08:50:53 +01:00
Jim Monte
70600258bb
Made checking for single-character words faster. The testing now also uses less memory and works for 8-bit characters, which would have previously caused buffer overruns. It is also more modular and has additional documentation.
2020-03-15 08:50:53 +01:00
Jim Monte
92725594f3
Used the new capabilities of ft_numparse() to allow the creation of variables and list items of type CP_NUM
2020-03-15 08:50:53 +01:00
Jim Monte
ad970ae4e7
Made cp_enqvar() mode modular by adding a separate function to handle the case of a vector. Lists are more efficiently handled by moving common comparisons out of the loop over elements. The first argument of cp_enqvar() is changed from char * to const char * since the name of the variable being found is not altered by the function.
2020-03-15 08:50:53 +01:00
Jim Monte
72801b1ab1
Fixed buffer resizing, made string utilities more modular, and added several new utilities, some which do not require a null termination, potentially avoiding the need to copy a string. Also some substring utilities using the Rabin-Karp algorithm were added.
2020-03-15 08:50:52 +01:00
Jim Monte
f7951af50b
Fixed locating vectors like V(node)
2020-03-15 08:50:52 +01:00
Jim Monte
81fa829b7d
Fixed potential infinite loop (until memory is exhausted) and added several utility functions for processing strings.
2020-03-15 08:50:52 +01:00
Jim Monte
068df274bf
Made ft_numparse() thread-safe (no internal static variables) and prepared to support ngspice variable type CP_NUM.
2020-03-15 08:50:52 +01:00
Holger Vogt
89411e2fe4
Fixed merge conflict. Also made readifile() static and removed an unnecessary string duplication there.
2020-03-15 08:50:52 +01:00
Jim Monte
873e4a8db0
Added no_histsubst option and related fixes
2020-03-15 08:50:52 +01:00
Jim Monte
4bd4a6e9be
Fixed usage of new dstring functions. Also added const to some parameters that did not change.
2020-03-15 08:50:52 +01:00
Jim Monte
75d233c40d
If the prompt variable was set to a value that is not a string, memory that has been freed would be used when displaying the command prompt. This could lead to strange prompts and possible access violations, although it may appear to work OK if the freed memory has not been modified. This issue is fixed. Some useless duplications of strings when defining variables are also removed.
2020-03-15 08:50:51 +01:00
Jim Monte
b677ae1611
The check for the scale vector was not comparing the name in a case-insensitive manner, so unlet Yes would delete the default yes scale vector, for example. That issue was corrected. The code was also made more modular and descriptive regarding the check for the scale vector. Also, the warning now prints the scale vector as it is stored to make clear that vector names are not case sensitive.
2020-03-15 08:50:51 +01:00
Jim Monte
b7d8c61cd9
Cleaned up code to locate a vector in a plot by name. The code was made more modular, and special names like allv are handled more efficiently
2020-03-15 08:50:51 +01:00
Jim Monte
c7b95587de
Fixed compiler warnings regarding type of argument passed
2020-03-15 08:50:51 +01:00
Jim Monte
c368f32039
Added a macro R_MIN to define the minimum resistance value aS 0.01 and replaced the numeric value with the macro in the sourc code.
2020-03-15 08:50:51 +01:00
Jim Monte
89efe5aeae
Dynamic string (dstring) rework
2020-03-15 08:50:51 +01:00
Holger Vogt
9452121954
Remove memory leaks in cmpp.
...
Two small ones (a few bytes) are still there, difficult to assess.
2020-03-15 08:50:51 +01:00
Holger Vogt
29b2799c22
plug a memory leak by CALLBACK,
...
deleting locally malloced memory
2020-03-15 08:50:51 +01:00
Holger Vogt
e89a92f944
prevent referencing a NULL pointer
...
free the loc pointer and NULL its origin STATIC_VAR (locdata)
(that translates to mif_private->inst_var[0]->element[0].pvalue)
2020-03-15 08:50:51 +01:00
Holger Vogt
707936efe3
enable setting a variable from an input file
...
using the existing i/o redirection
2020-03-15 08:50:50 +01:00
Holger Vogt
05f02f3662
On Linux: allow calling gnuplot without invoking a terminal.
...
Reported by Terry Pilling
2020-03-15 08:50:50 +01:00
Holger Vogt
9238c0f9d4
prevent crash if 0 length vector is assessed
2019-11-30 11:43:29 +01:00
Holger Vogt
ac65968595
allow 'dc TEMP 10 20 1' as well as 'dc temp 10 20 1'
2019-11-30 11:43:12 +01:00
Holger Vogt
ee5f4cfc29
Replace B source pwl by XSPICE PWL Controlled Source
...
that has smooth rounded and differentiable corners.
This is used in the replacem,ent operation evaluating
Exxx n1 n2 TABLE {expression} = (x0, y0) (x1, y1) (x2, y2)
2019-11-30 11:42:00 +01:00
Holger Vogt
b76fbf99fe
Replace B source pwl by XSPICE PWL Controlled Source
...
that has smooth rounded and differentiable corners.
Microchip or On-Semi OpAmps that needed gmin and source
stepping for operating point calculation now converge
without, others like MCP6001 that generally refused
to converge are o.k. now. Reason is the heavily used
Gxxx n1 n2 TABLE {expression} = (x0, y0) (x1, y1) (x2, y2)
from the OpAmp models.
2019-11-30 11:39:09 +01:00
Holger Vogt
917ea99758
enable system info for Windows 10,
...
exclude function not existing in older SDKs
2019-11-30 11:38:53 +01:00
Holger Vogt
6598225ec0
Replace deprecated GetVersionExA by version helper functions
...
Add new macro _MSC_PLATFORM_TOOLSET to check for toolset
2019-11-30 11:38:25 +01:00
Holger Vogt
de9dfad0c9
remove VS 'assignment within conditional expression' warning
2019-11-30 11:38:11 +01:00
Holger Vogt
13a6e042f6
remove 'unreachable code' warning
2019-11-30 11:37:49 +01:00
Holger Vogt
dc1ee5f11f
remove 'potentially uninitialized' warning
2019-11-30 11:37:02 +01:00
Holger Vogt
ceea40e012
Revert "enable compiling with readline for macOS"
...
This reverts commit 11df2b7719 .
2019-11-30 11:36:09 +01:00
Holger Vogt
71917744a8
remove superfluous double parentheses
2019-11-30 11:35:56 +01:00
Holger Vogt
7983b0d16a
macOS: Do not use deprecated finite, but isfinite
2019-11-30 11:35:44 +01:00
Holger Vogt
fa58223204
update for Linux
2019-11-30 11:35:24 +01:00
Holger Vogt
5542729694
fix for macOS
2019-11-30 11:35:12 +01:00
Holger Vogt
67f6fda216
Complete redesign of memory monitoring in resource.c.
...
Acquiring memory size is done by four functions
getMemorySize, getAvailableMemorySize, getPeakRSS,
and getCurrentRSS.
Time data are still obtained without code modifications.
2019-11-30 11:34:58 +01:00
Holger Vogt
22b111d9c0
tabs to spaces
2019-11-30 11:34:48 +01:00
Holger Vogt
6cd2e245c4
Add resource info on memory used and available for macOS
2019-11-30 11:34:35 +01:00
Holger Vogt
42e99ec66c
safeguard against crash if instance lines are incomplete
2019-11-30 11:33:04 +01:00
Holger Vogt
33985ae1e5
Make DEVNUM robust against double initialization.
2019-10-05 13:17:38 +02:00
Holger Vogt
2f396187fa
Better indentation of message
2019-10-05 13:17:30 +02:00
Holger Vogt
0575481206
Better info in case of error
...
Initited by a patch from Bohdan Tkhir
2019-10-05 13:17:22 +02:00
Holger Vogt
eb667118cf
If there are no controls, just skip creating the controls thread.
2019-10-05 13:17:11 +02:00
Holger Vogt
a4402f1da7
prevent potential false reads if 'controlswait' is set.
2019-10-05 13:16:40 +02:00
Holger Vogt
03c5870034
in ps compatibility mode: translate t_measured to tnom
2019-10-05 13:16:25 +02:00
Holger Vogt
552d587deb
readability
2019-09-28 16:21:44 +02:00
Holger Vogt
976c949c86
avoid false warnings of model not found
2019-09-28 16:21:36 +02:00
Holger Vogt
8276ef7b58
correct typos found by linthian
2019-09-28 12:24:09 +02:00
Holger Vogt
840d00c4ca
no actions if controls thread tid2 is not set
2019-09-28 12:01:09 +02:00
Mamoru TASAKA
fa0fc7f131
tclspice: avoid get_plot function type conflict
...
re-name get_plot as get_plot_by_index
2019-09-28 12:01:04 +02:00
Holger Vogt
9e427a1a1e
Better thread handling
...
Embed thread tid2 into tid1
Avoid spurious thread collisions
2019-09-28 12:00:57 +02:00
Holger Vogt
1085512be5
Do not start a spurious thread with empty controls
2019-09-28 12:00:48 +02:00
Holger Vogt
712014b6db
Does crash with recent Linux openSUSE Tumbleweed
...
Not required by shared ngspice
2019-09-28 12:00:31 +02:00
Holger Vogt
cf752bf730
Revert "encapsulate fcn calls to cp_evloop into a mutex"
...
This reverts commit 2426a037db .
2019-09-28 12:00:23 +02:00
Holger Vogt
92b237da3b
Missing files in distribution
...
Correction to commit
Fix a build error on FreeBSD 12, bison 3.3.2, automake 1.16.1 and BSD make
2019-09-28 12:00:16 +02:00
Kevin Zheng
6f20ec9929
patch to simplify compile for FreeBSD
2019-09-28 12:00:05 +02:00
Holger Vogt
11df2b7719
enable compiling with readline for macOS
...
which has a very simple readline header only
2019-09-20 20:43:36 +02:00
Holger Vogt
acd0c7156c
return immediately if empty commands are sent
2019-09-20 19:22:47 +02:00
Holger Vogt
2426a037db
encapsulate fcn calls to cp_evloop into a mutex
...
thus preventing thread collisions
2019-09-20 19:21:56 +02:00
Holger Vogt
191ad0a574
avoid warning about potentially undefined variable
2019-09-14 12:43:48 +02:00
Holger Vogt
ec6d676920
Make CopyGraph safe against NULL argument.
...
Otherwise memcpy will fail.
2019-09-14 12:38:57 +02:00
Holger Vogt
aa726c9864
Make ...search_identifier safe against NULL arguments
...
Otherwise strstr will fail
2019-09-14 11:30:20 +02:00
Holger Vogt
0071ad8569
If a subcircuit is defined more than once,
...
only read the first one, rename the others und thus discard them.
2019-09-14 11:28:32 +02:00
Holger Vogt
972785095f
Avoid crash, and send error message when r,l,c
...
instance lines does not have enough tokens.
2019-09-14 11:28:07 +02:00
Holger Vogt
f9deefe326
Skip '\r' when reading lines from a file
2019-09-14 11:27:23 +02:00
Holger Vogt
8fc1b70e93
Bug #424 now lower-casing whenh following the redirection token >
...
Re-order the code for defining exceptions for not lower casing
2019-09-14 11:27:13 +02:00
Holger Vogt
cdc8d3d054
new_title may contain a \r, remove it
2019-09-14 11:26:52 +02:00
dwarning
134e92b78f
vbic model implementation including self-heating effect
2019-09-14 11:26:10 +02:00
Holger Vogt
1c8992bf15
Enable the file input as search path for .include files
...
also for non-Wondows OSs
2019-09-14 11:25:34 +02:00
Holger Vogt
9543a5644c
Improve handling of non-printable characters (esp. for Linux)
...
If there is an isolated non-printable character leading the line,
convert it to *.
In fact there are some, e.g. in device lib TL072.301 from TI.
2019-09-14 11:25:07 +02:00
Holger Vogt
88008af088
remove memory leaks
2019-09-14 11:24:34 +02:00
Holger Vogt
afdd0fe85e
comments added
...
White spaces according to clang format
2019-09-14 11:24:05 +02:00
Holger Vogt
4cf2b5e5ce
remove commenting out unused .model lines
...
from comment_out_unused_subckt_models().
This now handled by inp_rem_unused_models()
taking appropriate scoping into account.
2019-09-14 11:23:40 +02:00
Holger Vogt
6669cbc17c
add function inp_rem_unused_models().
...
checking for unused models now also removes models
that are out of scope.
2019-09-14 11:23:24 +02:00
rlar
9e729bc8ee
bug fix, avoid segfault when instantiating a unknown subcircuit
2019-09-14 11:22:52 +02:00
rlar
e2b3dffcff
drop bogus_find_subckt, use a proper scoped search
2019-09-14 11:22:39 +02:00
rlar
96bb0dd941
inpcom.c, introduce inp_add_levels(), add scope to decks
2019-09-14 11:22:24 +02:00
Holger Vogt
d901665517
enable 'res' as valid resistor model identifier
2019-09-14 11:21:53 +02:00
Holger Vogt
1adc3e559c
inp_get_elem_ident(): enable VDMOS devices as identifier m
2019-09-14 11:21:16 +02:00
Holger Vogt
7f95e9d40c
inp_get_elem_ident
...
model type as input, element identifier as output
2019-09-14 11:20:48 +02:00
Holger Vogt
b0e750c3d2
Remove printing an empty line to stderr
2019-08-18 10:53:25 +02:00
Holger Vogt
bc9a22e5f7
Make interface responsive during plotting,
...
prevent endless loop, probably because of full internal buffers
2019-08-18 10:52:46 +02:00
Holger Vogt
3ab2c6468c
raise time for immediate output, to catch some more information
2019-08-18 10:52:36 +02:00
Holger Vogt
5a45fdbebb
Skip name and node if searching for 'tc' in an
...
R, L, or C line. Thus a node name 'tc' would be allowed.
2019-08-18 10:52:21 +02:00
Holger Vogt
6a1b6ced18
Enable tc conversion also for L and C
...
Even is PSPICE manual does not mention this,
device model makers are using this option.
2019-08-18 10:51:57 +02:00
Holger Vogt
63b4cf05de
Do not bail out if 'load file' command has unavailable file,
...
just post error message and continue
A fix to https://sourceforge.net/p/ngspice/discussion/127605/thread/986c04f22b/
by Clyde
2019-08-13 23:35:48 +02:00
Jim Monte
0fbff063b8
bug #408 : prevent invalid data or crash by not reading beyond end of string
2019-08-13 23:35:17 +02:00
Holger Vogt
30565e45c4
Improve commant
2019-08-13 23:35:03 +02:00
AsamMich
9b28a951d2
Patch #83
...
Improve and complete command 'compose'
2019-08-13 23:34:48 +02:00
Holger Vogt
ca5997b705
Change variable 'stepsizelimit', added in commit
...
c86f6265d ("relieve the step size limitation..." 2019-02-02)
to 'nostepsizelimit', thus keeping the limit, if not set.
Maximum step size is limited to tstep given by .tran tstep tstop <tstart <tmax>>.
May be overridden by giving 'set nostepsizelimit' to (tstop - tstart)/50.
Both may be overriden by setting tmax.
2019-08-13 23:34:40 +02:00
Holger Vogt
fac46c0bfd
Speed up the text output in Windows GUI:
...
The stream is pushed to the display only every 30 milliseconds.
For the first 200ms the stream is still pushed for every line.
2019-08-13 23:34:16 +02:00
Holger Vogt
6ac67c2285
make GUI more responsive. Prevent output freezing
...
if large data volumes are sent to the display
2019-08-13 23:33:59 +02:00
Holger Vogt
1b96b5a087
fix typos
2019-08-13 23:33:44 +02:00
Holger Vogt
f1cf4103c0
If the comaptibility mode is PS, LTPS or LTPSA, '$' is treated as a valid
...
character, not a s end-of-line comment delimiter, except for that it is
located at the beginning of a line.
2019-08-13 23:33:37 +02:00
Holger Vogt
0b92a15ae8
safeguard against vectors with 0 length
2019-08-13 23:33:28 +02:00
Holger Vogt
b27d0e701c
allow very short version information with new options -v and -d
2019-08-13 23:33:15 +02:00
Holger Vogt
45e2155e57
Instead of the reverted commit
...
5542f2ec1 ("dio/diotemp.c, drop DIOgradingCoeff limit", 2017-07-18)
allow setting a new limit for the diode grading coefficient by
set DIOgradingCoeffMax=0.85
Default is 0.9
2019-08-13 23:32:55 +02:00
Holger Vogt
db85dead58
Revert "dio/diotemp.c, drop DIOgradingCoeff limit"
...
This reverts commit 5542f2ec10 .
2019-08-13 23:32:37 +02:00
Holger Vogt
aad247621e
raise warning only when params are on the .subckt line
2019-08-13 23:32:26 +02:00
Holger Vogt
01742eefef
The PSPICE area token for a device instance may be not only a number,
...
but also a parametrized token like {tok}
2019-08-13 23:32:16 +02:00
Jim Monte
8ed7080227
[PATCH #70 ] Made parameter const and reduced excess allocation.
2019-08-13 23:32:01 +02:00
Jim Monte
3def275be4
[PATCH #76 ] Fixed access violation when iplot called without a circuit
...
loaded.
2019-08-13 23:31:54 +02:00
Jim Monte
978429018b
[PATCH #73 ] Fixed crash when attempting to set a breakpoint without a
...
circuit loaded.
2019-08-13 23:31:46 +02:00
Jim Monte
e208aab4cd
[PATCH #69 ] Changed vector type from to the enum assigned to it.
2019-08-13 23:31:37 +02:00
Jim Monte
73379f4146
[PATCH #66 ] Removed definition of macro MAXWORDS since it is unused.
2019-08-13 23:31:28 +02:00
Jim Monte
4a26ea9847
[PATCH #64 ] Made shell command with no arguments functional for Windows.
2019-08-13 23:31:22 +02:00
Holger Vogt
9a904cb952
prevent crash upon wrong user input
2019-08-13 23:31:14 +02:00
Holger Vogt
c50dfa2be8
prevent crash if function is called with NULL argument
2019-08-13 23:31:01 +02:00
Jim Monte
060c51d68a
missing part of patch #56
2019-08-13 23:30:39 +02:00
Jim Monte
e92e2c7362
[PATCH #62 ] Fixed buffer overrun. Reworked to not use dstring for more
...
efficient parsing.
2019-08-13 23:30:31 +02:00
Jim Monte
24a13736bd
[PATCH #63 ] Fixed infinite loop when setscale is given as a command.
2019-08-13 23:30:20 +02:00
Jim Monte
031b722640
[PATCH #56-2] Added hist_info source and header files for new history API
...
and system DLL Shlwapi.dll to resolve PathIsRelative()
2019-08-13 23:30:12 +02:00
Jim Monte
3874916948
[PATCH #56 ] New history buffering
2019-08-13 23:30:05 +02:00
Jim Monte
f086fd3bef
[PATCH #61 ] Removed unnecessary check for null pointer. There would have
...
been several access violations before the check if it were invalid.
2019-08-13 23:29:55 +02:00
Jim Monte
1665b53b84
[PATCH #59 ] Made INP*Cat() functions more modular and efficient. Also
...
eliminated the possibility of a buffer overrun in INPstrCat() due to an error
in the calling funciton.
2019-08-13 23:29:41 +02:00
Jim Monte
9e5b0e8f82
[PATCH #58 ] Made annotations of WinMain() agree with its prototype
2019-08-13 23:29:34 +02:00
Jim Monte
8f2677438b
[PATCH #57 ] Fixed several issues with win_x_fread()
2019-08-13 23:29:27 +02:00
Holger Vogt
f9a4800d86
[PATCH #55-2] Prevent reading from a NULL pointer
2019-08-13 23:29:20 +02:00
Jim Monte
ea81da2b01
[PATCH #55-1] Fixed some compiler warnings added by Visual Studio 2019
2019-08-13 23:29:13 +02:00
Jim Monte
ba60c4e8a9
[PATCH #54 ] Fixed bug with processing of user input when the user input
...
size equals or exceeds the allowed amount. A 1-byte buffer overrun resulted
in incorrect processing of the buffer returned from the window supplying user
input which lead to an infinite loop.
2019-08-13 23:29:06 +02:00
Jim Monte
74857e2527
[PATCH #53 ] Removed useless zeroing of a copy of a variable (twice) when
...
the original variable should be zeroed. Made cp_free_control static because
it was only used in control.c and it was not defined in any header file.
Added comments
2019-08-13 23:28:58 +02:00
Jim Monte
1c5176282b
[PATCH #52 ] General cleanup of word list processing, such as adding
...
comments and const. Also added a new function wl_from_string() to convert a
single word into a word list. This function can be useful when calling a
function taking a single-word word list.
2019-08-13 23:28:49 +02:00
Jim Monte
10474a06a8
[PATCH #50 ] Ensured no buffer overrun for long namess and improved
...
efficiency of compare. Also made more modular.
2019-08-13 23:28:41 +02:00
Jim Monte
c71d66a3bb
[PATCH #49 ] Ensured no buffer overrun for long script strings and
...
improved efficiency of building string
2019-08-13 23:28:34 +02:00
Jim Monte
051b5e602d
[PATCH #48 ] Fixed infinite loop and variation from documented behavior of
...
atodims()
2019-08-13 23:28:25 +02:00
Jim Monte
0fd5b0fd80
[PATCH #51 ] Added scrolling to input window
2019-08-13 23:28:16 +02:00
Holger Vogt
9a9b7c68d0
unify the numerical constants
2019-08-13 23:28:05 +02:00
Holger Vogt
b9901a2569
[PATCH 47] Refactored ft_getnames() and used the new function in
...
com_let().
2019-08-13 23:27:49 +02:00
Holger Vogt
afdf3ff710
Partially undo commit 016c558d7, 2019-05-01
...
If sacles for plotting differ, issue a warning.
Skip this plot command only, when strict_errorhandling is set.
2019-08-13 23:27:15 +02:00
Holger Vogt
8af1663bba
Try to detect, if one wants to plot vectors with
...
different scale vectors into the same graph.
Issue a warning and skip the plot command.
2019-08-13 23:26:58 +02:00
Holger Vogt
eb33388707
Update to patch #33 , stdlib.h required on Linux for size_t
2019-08-13 23:20:48 +02:00
Jim Monte
451a88a2b0
[PATCH #46 ] Fixed uninitialized buffer in case of 0 dim for dimstring()
...
and prevented the compilation of unused functions. Also a comment was
corrected.
2019-08-13 23:20:39 +02:00
Jim Monte
23703a32c0
[PATCH #45 ] Fixed uninitialized buffer in case of 0 dim and improved
...
efficiency in other cases.
2019-08-13 23:20:29 +02:00
Jim Monte
b66412f517
[PATCH] Changed prototypes of some functions having parameters that
...
should not be changed to const and added assorted comments. Also two very
minor efficiency improvements.
2019-08-13 23:20:21 +02:00
Jim Monte
0183964d6f
[PATCH #41 ] Made constants agree across ngspice simulator. File const.h
...
is the source of the values with all other files referencing it.
2019-08-13 23:20:00 +02:00
Jim Monte
55b7626fa9
[PATCH #40 ] Fixed memory leaks under 3 different conditions when the
...
deftype command is used. Added more argument validation. Enhanced error
reporting. Implemented facility to free allocations associated with
user-defined types
2019-08-13 23:19:51 +02:00
Jim Monte
7dacfe5bda
[PATCH #38 ] Fixed crash when composing a complex vector from a mix of
...
real and complex values. Also eliminated unnecessary test for element being
real when composed vector is real.
2019-08-13 23:19:41 +02:00
Jim Monte
f28709f410
[PATCH #37 ] Fixed crash when composing a complex scalar
2019-08-13 23:19:31 +02:00
Holger Vogt
7598bbe83b
[PATCH 35] Fixed values of physical constants such as the speed of light
2019-08-13 23:19:13 +02:00
Jim Monte
86ed788025
[PATCH 6/6] Fixed Visual Studio C4456 compiler warnings related to
...
variable name hiding another variable and reduced scopes of arg and sarg
variables in the process
2019-08-13 23:18:34 +02:00
Jim Monte
34c2df11bb
[PATCH 5/6] Fixed formatting for consistent nesting level indentation
2019-08-13 23:18:24 +02:00
Jim Monte
93ae8b41ac
[PATCH 4/6] Fixed Visual Studio C4456 compiler warning related to
...
variable name hiding another variable
2019-08-13 23:18:16 +02:00
Jim Monte
d0f8c6896d
[PATCH 3/6] Fixed Visual Studio C4389 compiler warnings related to
...
signed/unsigned mismatch
2019-08-13 23:18:07 +02:00
Jim Monte
3dea14e223
Fixed Visual Studio C4334 compiler warnings related to
...
32-bit vs 64-bit shifts
2019-08-13 23:17:55 +02:00
dwarning
cf394a03d1
update to hicum version 2.40
2019-08-13 23:17:41 +02:00
Holger Vogt
e6a05bda7d
remove the token mfg=nfgname from each .model statement
2019-08-13 23:17:31 +02:00
Holger Vogt
61039c2736
add a new function gettok_model to consider {...} expressions
...
in VDMOS .model statements
2019-08-13 23:17:14 +02:00
Holger Vogt
ad5ad8270f
correct the temperature replacement in ps
...
TEMPER is in degrees °C
2019-08-13 23:17:02 +02:00
Kevin Zheng
b4ee4e28d6
Fix a build error on FreeBSD 12, bison 3.3.2, automake 1.16.1 and BSD make
...
by dropping the rules to run bison and use automake's built-in rules instead
2019-08-13 23:16:49 +02:00
Holger Vogt
bfe9e29580
If a in command set name="value" value is encapsulated in double quotes, it is always treated as a string variable.
2019-08-13 23:16:37 +02:00
Jim Monte
6bce493d25
Remove memory leak: If the check of the data fails, the data itself is leaked.
...
Signed-off-by: Holger Vogt <holger.vogt@uni-due.de>
2019-08-13 23:16:02 +02:00
Jim Monte
4afc5ed5b5
One of the links provided when the help command is executed returned a 404 not found error. This patch replaces that link with an HTML version of the ngspice manual.
...
Signed-off-by: Holger Vogt <holger.vogt@uni-due.de>
2019-08-13 23:15:27 +02:00
dwarning
657d4994b9
no fall-through by asking m value
2019-08-13 23:15:03 +02:00
Jim Monte
7e0dd64ce5
[PATCH 33 1/6] Fixed Visual Studio C4028 compiler warnings related to
...
mismatches between prototypes and function definitions
Signed-off-by: Holger Vogt <holger.vogt@uni-due.de>
2019-08-13 23:14:49 +02:00
Jim Monte
0ddd4a8456
Fixed excess buffer allocation and converted wordlist to string more efficiently
...
Signed-off-by: Holger Vogt <holger.vogt@uni-due.de>
2019-08-13 23:14:27 +02:00
dwarning
ef79942782
Tnom is not a instance parameter
2019-08-13 22:57:02 +02:00
dwarning
6bcf3ac41c
Tnom default inline with model specification
2019-08-13 22:56:50 +02:00
dwarning
033a290783
use a better place for model parameter defaulting
2019-08-13 22:56:38 +02:00
dwarning
360a3985e8
remove unused conductance variables
2019-08-13 22:56:29 +02:00
dwarning
f42c513381
correct current contribution by gmin
2019-08-13 22:56:19 +02:00
dwarning
293f0afc2f
remove unused variables
2019-08-13 22:55:34 +02:00
dwarning
f90295f46a
remove last remainder of unused sensitivity analysis
2019-08-13 22:55:25 +02:00
dwarning
2b60d56606
remove ancient, unused and untested sensitivity code
2019-08-13 22:55:12 +02:00
dwarning
7966aa36ae
correct init for convergence test
2019-08-13 22:54:51 +02:00
Holger Vogt
3494e6b390
prevent crash
...
bug-395 reported by Bohdan Tkhir
2019-08-13 22:54:30 +02:00
Holger Vogt
7bb8049d2a
fix bug no. 394, reported by Yurii Demchyna
2019-08-13 22:54:10 +02:00
dwarning
a549776972
high current devices need lower limit of resistances - set to 10mOhm
2019-08-13 22:53:52 +02:00
Holger Vogt
31db4228f5
fix a typo, correct writing to files under Linux
2019-08-13 22:53:41 +02:00
Holger Vogt
52584312c3
delete the plt and data files after writing eps or png
...
(only if gnuplot_terminal is set to eps/quit of png/quit)
2019-08-13 22:53:32 +02:00
Holger Vogt
8efa08602a
no plotting, only saving to file
...
if gnuplot_terminal is eps/quit or png/quit
2019-08-13 22:53:24 +02:00
Holger Vogt
601dfbd781
sprintf -> snprintf: prevent buffer overflow
2019-08-13 22:53:13 +02:00
Holger Vogt
ec4625eda6
redo gnuplot_terminal: Do not save eps/png automatically
...
none 1: do not print an eps or png file (default)
png 2: print png file, keep command window open
png/quit 3: print png file, quit command window
eps 4: print eps file, keep command window open
eps/quit 5: print eps file, quit command window
2019-08-13 22:53:00 +02:00
Holger Vogt
2344e3d012
patch no. 30 by astx:
...
don't show command window if gnuplot_terminal is set to png/quit
2019-08-13 22:52:49 +02:00
Holger Vogt
e937adc372
remove bug 388: enable plot unit W for plotting @q1[p]
2019-08-13 22:52:41 +02:00
Holger Vogt
4f8fd19309
Allow " around netnames for .plot and .print commands.
...
This enables characters like - / + in netnames, e.g.
.print tran v("/jk-flip-flop-1/q")
2019-08-13 22:52:08 +02:00
Holger Vogt
5b21caae98
correct the command name to 'setcs'
2019-08-13 22:51:48 +02:00
h_vogt
a0d87048e6
command.c, inpcom.c, add command 'setcs': like command 'set',
...
but case sensitive, and thus keeping upper or lower case
of subsequently following variable name and other letters.
2019-08-13 22:51:36 +02:00
dwarning
d03df9d326
correct entry for vdmos bulk diode in acload
2019-08-13 22:49:39 +02:00
Holger Vogt
198fea0db4
-rm -> rm, re-enable 'make uninstall'
2019-03-21 20:24:18 +01:00
Holger Vogt
d4c3d9ceb2
relieve the step size limitation (formerly set to TSTEP in tran simulation).
...
However not all examples will do without, thus the variable 'stepsizelimit'
is set in spinit. Unset it in .spiceinit to get the new behavior.
Of course then you might add the limit by setting TMAX in the tran command.
2019-03-21 20:22:42 +01:00
Holger Vogt
b4559327de
do not use the current plot, but try to get the plot set in arg...
2019-03-21 20:20:56 +01:00
Holger Vogt
9ee359b1e9
beautify code with astyle
2019-03-21 20:20:37 +01:00
Holger Vogt
1fb2a04f79
use fcn plot_get
2019-03-21 20:20:28 +01:00
Holger Vogt
c1b54a5978
return vector located in plot type given by 'name',
...
not just from the current plot
2019-03-21 20:20:00 +01:00
Holger Vogt
40411197e0
add function get_plot(name) to return address of named plot
2019-03-21 20:17:21 +01:00
Holger Vogt
a89e5db571
creating a linearized cutout of the original vector
...
by defining the vectors lin-tstart, lin-tstop, and lin-tstep
before issuing the 'linearize' command
2019-03-21 20:13:27 +01:00
Holger Vogt
2d8b30aebe
enable node names containing '-' in .ic and .nodeset statements
2019-03-21 16:13:43 +01:00
Holger Vogt
0bd3bbd333
clarify estmation of memeory size for output vectors
2019-03-21 16:13:24 +01:00
Holger Vogt
b771ee9c60
don't print status output in dcpss.c, if norefvalue is set
2019-03-21 16:12:47 +01:00
Holger Vogt
9dd47e3029
Remove memory warning message in shared lib
...
False warning on some OSs, especially on Linux when loaded during runtime.
The caller then has to take care of memory available
2019-03-21 16:12:36 +01:00
Holger Vogt
be6eca1dbb
add 'option norefvalue' to suppress printing the reference value.
2019-03-21 16:07:12 +01:00
Holger Vogt
5cd23fae72
move adding 1 to meminit to the right place (needed only once)
2019-03-21 15:52:23 +01:00
Holger Vogt
764542e5b1
Set up all memory in a single step for vector list in a plot.
...
This is to avoid multiple calls to time consuming TREALLOC
2019-03-21 15:51:19 +01:00
Holger Vogt
4062d51f9b
prevent crash, instead issue an error message
...
if first coefficient cannot be parsed, e.g. of a line
V1 1 0 DC 0 trnoise(NoiseVoltage fs 0 0 0 0 0 )
(with missing {}).
Code truncates evaluating further coefficients,
if an error is detected. This now results in a warning
message, if ngdebug is set. The warning may be a
false positive though.
2019-03-21 15:50:05 +01:00
Holger Vogt
d6f5a32c93
Add a comment to the editline #ifdef
2018-12-31 12:03:19 +01:00
Holger Vogt
a3f2c38eb6
upstream editline development at
...
http://cvsweb.netbsd.org/bsdweb.cgi/src/lib/libedit/readline/readline.h?sortby=date#rev1.42.2.1
have added two lines to readline.h:
typedef int rl_hook_func_t(void);
extern rl_hook_func_t *rl_event_hook;
ngspice rl_event_hook had originally been defined of type void. The patch
redefines the return type to be int.
2018-12-31 12:02:52 +01:00
dwarning
d2f9da64bc
bring current summation inline with rhs
2018-12-24 09:34:06 +01:00
dwarning
d9247cc322
white spaces
2018-12-24 09:30:55 +01:00
Holger Vogt
c35879d3cf
prepare ngspice-30
2018-12-23 13:55:45 +01:00
dwarning
25b13d9dde
Fix VDMOSmode dependency.
2018-12-22 22:43:37 +01:00
dwarning
3d72931125
spice like derivative style - more compact
2018-12-22 22:43:17 +01:00
dwarning
71524f6060
Implementing mobility mudulation (theta).Analytical derivatives for weak-inversion branch.
2018-12-22 22:43:05 +01:00
dwarning
8b424dd3d3
Introducing mobility reduction over Vgs. Model parameter: theta
2018-12-22 22:42:54 +01:00
dwarning
96a5ea0353
Allow 3 terminal vdmos in subckt.
2018-12-22 22:42:46 +01:00
dwarning
1363b7a6b2
Reduce vdmos to a native 3 terminal version.
2018-12-22 22:42:31 +01:00
Holger Vogt
f021424041
dev.c, add model size for XSPICE models, preventing heap corruption.
...
Ocurred with dll under Windows 10 only.
Detected with crtdbg.h, and _CrtSetDbgFlag(_CrtSetDbgFlag(0) || _CRTDBG_CHECK_ALWAYS_DF)
in ngSpiceInit() and {char *test = TMALLOC(char, 1);} as test vehicle.
2018-12-22 18:08:58 +01:00
Holger Vogt
2c7860361d
Prevent segfault if SendStat is NULL and HAVE_FTIME is undefined.
...
Patch no. 28 offered by Liang Chang
2018-12-17 23:07:41 +01:00
Holger Vogt
db13f66519
typo
2018-12-17 23:07:34 +01:00
Holger Vogt
ebc39c941e
fix typos
...
reported by Carsten Schoenert
2018-12-17 23:07:27 +01:00
Holger Vogt
3f816d7f1b
add comment
2018-12-17 23:07:19 +01:00
Holger Vogt
feaebe6bd9
spelling
...
reported by Carsten Schoenert
2018-12-17 23:07:10 +01:00
Holger Vogt
a98f6ac69b
proper initialization of OldAn, callback only
...
if output has changed
2018-12-17 23:07:00 +01:00
Holger Vogt
0f552fc4f8
sharedspice.c, prevent crash, if controlswait is set
...
and a next bg_run before controls are ready.
2018-12-17 23:06:49 +01:00
Holger Vogt
f9f28f7679
MS Windows: Use only POSIX compliant snprintf
2018-12-17 23:06:21 +01:00
Holger Vogt
98a5106015
simplify and re-enble MINGW
2018-12-17 23:05:55 +01:00
Holger Vogt
2a2a7c2d36
sharedspice.c, NS Windows, use only POSIX compliant snprintf
...
make OldAn a zero terminated string
2018-12-17 23:05:41 +01:00
Holger Vogt
0828a8e706
new command bg_ctrl initializing the .control executing thread
...
pthreads: using detached threads only
keep controls during 'reset', delete only upon 'quit'
2018-12-17 23:05:25 +01:00
Holger Vogt
c2db1d5547
Bug 385 enable variable numdgt for printout
2018-12-17 23:05:15 +01:00
Holger Vogt
f6b995b80e
remove unused fcn declaration
2018-12-17 23:05:05 +01:00
Holger Vogt
6f79db19d1
pthreads: suspend thread 3 (controls) with a condition variable
2018-12-17 23:04:57 +01:00
Holger Vogt
9d9f415226
inp.c, add variable 'controlswait'. If set, only then controls with
...
shared ngspice are executed after background thread has finished.
2018-12-17 23:04:43 +01:00
Holger Vogt
e4aabc82c7
shared ngspice: add a third thread to execute the .control commands
...
only after the background thread has been finished
2018-12-17 23:04:31 +01:00
Holger Vogt
7706889a0a
inpcom.c, fix bug no 384
...
do not quote fourth token in f, h lines
otherwise if dev name equals param name parsing fails
2018-12-17 23:04:13 +01:00
Holger Vogt
16978f8bf6
inpcom.c, add alternative noise flag 'noise=1'
2018-12-17 23:03:48 +01:00
Holger Vogt
9f40c2b584
add an icon to MS Windows VC exe
2018-12-17 23:03:27 +01:00
Holger Vogt
7f3f46ebea
license modified to be compatible to 3-clause BSD according to
...
https://github.com/freebsd/freebsd/blob/master/lib/libc/stdlib/getopt_long.c
2018-12-17 23:03:00 +01:00
Holger Vogt
d2d2178407
inpcom.c, remove compiler warnings about
...
potentially uninitialized local variables and
assignment within conditional expression
2018-12-17 23:02:48 +01:00
Holger Vogt
ee843a4c2c
remove memory leak in noise selection for behavioral r
2018-12-17 23:02:27 +01:00
Holger Vogt
6335c271b2
add a syntax check for the incoming netlist.
...
check if an .if statement is used, then skip
deleting unused models and subcircuits (may be
required when using commercial libraries) .
2018-12-17 23:02:03 +01:00
dwarning
49a3af54de
Handle leading plus sign in same kind as minus.
2018-12-17 23:01:45 +01:00
Holger Vogt
72110dc65d
noise caculation in behavioral resistors is switched on
...
by the instance flag 'noisy=1'. Default is a noiseless resistor.
2018-12-17 23:01:15 +01:00
dwarning
edb42b526d
Add comment for better understanding.
2018-12-17 23:00:54 +01:00
dwarning
390d0bddd9
Dereferencing of the null pointer 'p' might take place. Remove unused variable.
2018-12-17 22:58:30 +01:00
Holger Vogt
08a9d8462b
only treat B lines, .param lines have been processed already.
...
This is a very preliminary fix to a bug reported by Andy.
Has to be tested with various input conditions.
2018-12-17 22:58:07 +01:00
dwarning
9e663f45e4
remove some ugly warnings
2018-12-17 22:57:51 +01:00
Holger Vogt
9a1b9dc2e6
reduce the amount of reallocs by making the vector size generation
...
dependent on tstep and tstop for tran or pss simulation
2018-11-18 16:08:08 +01:00
Holger Vogt
9fb2aac952
inpcom.c, skip nois calculation of behavioral resistor
...
by adding instance parameter noisy=0
2018-11-18 16:07:58 +01:00
Holger Vogt
96f3b7b029
bug 380, fix removal of string vector after setting the model parameters
2018-11-18 16:07:26 +01:00
Holger Vogt
163f569eb2
Make the new nodes for current measurement i(xxx) unique
...
by adding a serial number.
2018-11-18 16:06:42 +01:00
Holger Vogt
f1fdb5b2a7
fix current measurement by i(xxx) in B sources: first step,
...
allow spaces before 'i(' token.
Current measurement for devices in series connection
is still not possible.
2018-11-18 16:06:33 +01:00
dwarning
7c94cc2e42
setting gmbs direct to 0
2018-11-18 16:05:52 +01:00
dwarning
92efc0bd6c
don't replicate model and instance temperature dependent parameter
2018-11-18 16:05:46 +01:00
Holger Vogt
34f0e98080
plug a memory leak, delete 'element', if tmalloced before
2018-11-18 16:05:32 +01:00
Holger Vogt
c98b472366
enable GetProcessMemoryInfo for shared ngspice made with MSVC
2018-11-18 16:05:06 +01:00
Holger Vogt
da75066302
update to resource.c:
...
proc/self/statm is up-scaled by page size
up and down scaling by 1024 removed
GetProcessMemoryInfo access simplified
pre-processor flags simplified
tiny format changes
2018-11-18 16:04:26 +01:00
Holger Vogt
cf6722af17
Enable function GetProcessMemoryInfo() to get reliable memory usage data
...
for MINGW and MSVC console, WinGui and MSVC shared ngspice.
MINGW shared ngspice does not link to psapi.dll, so cannot
apply GetProcessMemoryInfo(), but sticks to unreliable function
GlobalMemoryStatusEx().
2018-11-18 16:03:06 +01:00
Holger Vogt
df9efac808
inp2dot.c, beautify the code
2018-11-18 16:00:19 +01:00
Holger Vogt
321b1293e7
plug two small memory leaks
2018-11-18 16:00:12 +01:00
Holger Vogt
0d9d228c11
Put the copy for generating permanent next_token exactly at the places
...
where is is needed: INPtermInsert() and fast->conn...->neg_node_str
XSPICE memory leaks are gone!
2018-11-18 15:59:54 +01:00
Holger Vogt
2a6212f77e
Add a function gc_start to reset the garbage collector
2018-11-18 15:59:44 +01:00
Holger Vogt
4e6de9626e
** A local garbage collector **
...
Add the list of malloced addresses alltokens.
Add a function copy_gc to copy and enter the address.
Add a function gc_end to delete all entries in alltokens.
Beware of addresses deleted elsewhere and use anew by malloc.
Some tokens should not be deleted here, they get another copying.
2018-11-18 15:59:34 +01:00
Holger Vogt
fb1970e25a
add gc functions to replace MIFgettok and MIFget_token
2018-11-18 15:59:15 +01:00
Holger Vogt
ccb7fa410b
remove all instances of tfree.
...
Code is working, but full of memory leaks.
2018-11-18 15:59:05 +01:00
Holger Vogt
f9c956ff6b
mif_inp2.c, improve on memory leaks
...
Delete token before generating it anew, delete def_port_str
only if not already done before.
Still there are some tiny leaks left.
2018-11-18 15:58:26 +01:00
Holger Vogt
7b57800df6
bug 378 put tfree(def_port_type_str) to an appropriate place.
2018-11-18 15:57:35 +01:00
dwarning
d7089adcaf
Also in case of allocation error we have to free existing memory before return.
2018-11-18 15:56:37 +01:00
dwarning
a6fa3aaa11
The 'then' statement was equivalent to the 'else' statement.
...
Also moredimensional poly sources need only one closing bracket for input port.
2018-11-18 15:56:26 +01:00
Holger Vogt
0a50acbb66
inp.c, .if: enable multiple .elseif sections
2018-11-18 15:56:10 +01:00
Holger Vogt
639bfc6280
no lower case after redirection sign > for command 'asciiplot'
2018-11-18 15:55:43 +01:00
Holger Vogt
7a1218cc0e
fix ouput redirection for 'print' command
2018-11-18 15:55:29 +01:00
dwarning
9789956815
don't ask two times if the allocation has failed
2018-11-18 15:55:14 +01:00
dwarning
f7c36d66d4
As the comment said we have bypass only without selfheating
...
so the expression 'here->HSMHV2_coselfheat > 0' is always false
and all derivatives to temperature are 0.
2018-11-18 15:54:58 +01:00
Holger Vogt
54d9ec93cb
bug 375, select correct input line,
...
reported by Bohdan Tkhir
2018-11-18 15:54:43 +01:00
dwarning
68230648c6
white spaces
2018-11-18 15:54:32 +01:00
Holger Vogt
ebe4fd5332
control.c, bug 374, prevent crash if cend[stackp] is NULL
...
reported by PyroPeter
2018-11-18 15:54:21 +01:00
dwarning
9289f0f773
proper initialization of b magnitude coefficient in a special case
2018-11-18 15:54:08 +01:00
Holger Vogt
2a947a933e
bug 253: Do not delete the scale vector of the current plot
2018-11-18 15:53:50 +01:00
Holger Vogt
157aaee6f1
Bug #332 , reported by M. Hendriks
...
Add a warning if statements .control ... .endc are misplaced or missing
2018-11-18 15:53:30 +01:00
Holger Vogt
530cac53c5
bug 337: keep '-' as sign of number following tc1, tc2
2018-11-18 15:52:56 +01:00
Holger Vogt
8d89202161
keep sign together with number when preparing B source pwl (and others)
...
Seems to be optional, B Source handles numbers with offset sign
2018-11-18 15:52:47 +01:00
Holger Vogt
113060473e
bug 337: replace atof by INPevaluate to allow ngspice numbers
...
in tc1 or tc2 tokens.
2018-11-18 15:52:24 +01:00
dwarning
ddd3a11bff
variables are assigned values twice successively
2018-11-18 15:52:05 +01:00
dwarning
d7ee6bee50
bug #368 : x-axis description for nested dc sweeps should inline with first level sweep
2018-11-18 15:51:35 +01:00
Holger Vogt
65ee87e0a2
grid.c, windisp.c, vertical text for postscript and WINGUI
...
Arial as standard font for WINGUI
2018-11-18 15:51:09 +01:00
Holger Vogt
56701e3d10
add rotation angle to text output, currently used only by postscript,
...
ignored by all others
2018-11-18 15:50:56 +01:00
Holger Vogt
9e01d0b9f9
postsc.c, enable postscript output for extended ascii.
...
Currently only Western European latin-1 (ISO/IEC 8859-1) encoding
is supported.
2018-11-18 15:50:00 +01:00
h_vogt
87be5b9a41
Do not set Bit 8 in an ANSI char, when \ or ^ occured in a string. Thus the full ANSI set is now available in ngspice strings. The setting of Bit 8 was not exploitet anywhere, but did not allow using the characters from extended ANSI.
2018-11-18 15:49:31 +01:00
Holger Vogt
41fbc0bb1d
inpcom.c, command gnuplot: no lower case in xlabel, ylabel, title
2018-11-18 15:49:18 +01:00
Holger Vogt
66c468087d
noisean.c, beautify the code
2018-11-18 15:48:58 +01:00
h_vogt
f640ef68c3
noisean.c, ensure correct user input:
...
number of points always > 0
single frequ measurement if 1 point given
2018-11-18 15:48:41 +01:00
h_vogt
b0da1f2a0f
com_measure2.c, write a fft vector (sp plot) with complex data
...
and real frequency to file and load it again, frequency now has become
a complex number as well. This was not recognized, thus ngspice crashed
(see https://sourceforge.net/p/ngspice/discussion/127605/thread/8cccd69c/
by Michal Janik - 2014-11-04
2018-11-18 15:48:13 +01:00
Holger Vogt
9ab153ddc2
Exclude from model search all lines beginning
...
with a character contained in this list: *vibefghkt
2018-11-18 15:47:24 +01:00
Holger Vogt
277842f948
update to model search function
2018-11-18 15:47:04 +01:00
Holger Vogt
78ab9c477b
Update to the model name search function:
...
A model name is any token not being a true ngspice number,
except for tokens with some prohibited front characters
{*^@\\\' .
2018-11-18 15:46:26 +01:00
dwarning
de9755b1ad
backup to original state - but changing name of local struct t to tc
2018-11-18 15:45:55 +01:00
dwarning
e3c1b02892
remove compiler warning about double declaration of DEVices
2018-11-18 15:45:37 +01:00
dwarning
12498623c8
no use of string 't' - but struct 't' is still used
2018-11-18 15:45:23 +01:00
dwarning
cc4e4d9bad
verify pointer before utilization
2018-11-18 15:45:12 +01:00
dwarning
42d29ef49f
remove the entire file buffer modification which was never come in effect
...
Take over this task to the OS which will handle this properly.
2018-11-18 15:44:53 +01:00
dwarning
f0f19f87a3
In case the file open failed we have no need to set the IO buffer size.
...
And this should also not be done with a NULL pointer into setvbuf.
2018-11-18 15:44:40 +01:00
dwarning
5590406acf
The 'j' variable is assigned values twice successively.
...
Obviously the first assigment is waste because 'j' has the meaning of row count.
2018-11-18 15:44:32 +01:00
dwarning
a36366be1a
A call of the 'memset' function will lead to underflow of the buffer 'table'.
...
Table structure multiplied by N_GLOBAL_NODES will initialize the entire table with 0.
2018-11-18 15:44:25 +01:00
dwarning
a2c5cb4301
It is odd that pointer to 'char' type is compared with the '\0' value.
...
Correct compare with *eqword follows in a correct error message.
2018-11-18 15:44:15 +01:00
Holger Vogt
d504991177
new definition of cp_enqvar also in seldom used ngsconvert.c
2018-10-27 18:07:44 +02:00
Holger Vogt
19380903cc
add missing evtshared.h to the distribution
2018-10-27 16:37:33 +02:00
Holger Vogt
94fa272c9d
A hack to repair bug reported by Clyde R. Shappee
2018-10-27 12:28:01 +02:00
dwarning
6b99bc8f7a
prevent pass null pointer into setvbuf
2018-10-27 11:33:48 +02:00
dwarning
93f35afe69
s variable was assigned values twice successively
2018-10-27 11:33:00 +02:00
dwarning
360efabf36
no null pointer to fprintf
2018-10-27 11:24:22 +02:00
dwarning
ae698c208a
variable was assigned to itself
2018-10-27 11:21:06 +02:00
dwarning
5459404c47
prevent fallthrough by missing return
2018-10-27 11:20:29 +02:00
dwarning
740987382b
The 'then' statement was equivalent to the 'else' statement.
2018-10-27 11:19:57 +02:00
dwarning
cf24081507
prevent unused warning
2018-10-27 11:12:56 +02:00
dwarning
be79efbf7a
Remove recurring check
2018-10-27 11:09:49 +02:00
dwarning
ef61972910
Add missing break
2018-10-27 11:09:20 +02:00
dwarning
06430b7f14
rm extra text after end of preprocessing directive
2018-10-27 11:09:07 +02:00
dwarning
079b3bb7fd
add some missing prototypes
2018-10-27 11:08:17 +02:00
Holger Vogt
4738edeab5
symbol visibility=hidden only in release mode
...
for shared library and codemodels
2018-10-27 11:06:16 +02:00
Holger Vogt
75d1e45737
consider all PSPICE containing compatibility settings
...
for the evaluation of the pwr function
or allowing '-' in a subcircuit name
2018-10-20 23:54:02 +02:00
Holger Vogt
f31f044e30
set the search path for the code models relative to ngspice.exe
...
(for Windows GUI and console)
2018-10-18 21:39:33 +02:00
Holger Vogt
ff2304625f
allows to start ngspice WinGUI by double click on an input file, if
...
the file extension has been associated with ngspice.exe
2018-10-18 21:37:50 +02:00
Holger Vogt
45e269819e
fix a bug
2018-10-17 19:01:59 +02:00
dwarning
5c31aec164
prevent core dump to get the baseaddress
2018-10-16 14:13:17 +02:00
dwarning
56bc8af358
calloc needs stdlib.h
2018-10-15 22:36:01 +02:00
dwarning
67b38d7885
remove empty statement
2018-10-15 16:06:57 +02:00
Holger Vogt
25cdf95262
replace deprecated sys_errlist[errno] by call to strerror(errno)
2018-10-14 12:21:02 +02:00
Holger Vogt
7787268118
Enable psa, ltpsa compatibility mode
2018-10-13 22:41:55 +02:00
Holger Vogt
b0d79630a4
New variable no_auto_gnd
...
'set no_auto_gnd' in spinit or .spiceinit will preclude
ngspice to automatically replace 'gnd' by global '0'
2018-10-13 18:20:18 +02:00
Holger Vogt
b3db3c7fd9
Don't modify 'working' address, insert new item (functions etc)
...
only after ther first line.
2018-10-13 18:20:13 +02:00
Holger Vogt
3930e27501
New compatibility modes (set ngbehavior=??): PS LT LTPS PSA LTA LTPSA
...
PS: PSPICE comp. in .include files., LT: LTSPICE comp. in .include files.
LTPS: both, PSA: PSPICE comp. in complete input deck,
LTA and LTPSA: comp. in complete input deck for LT or both.
Add functions uplim, dnlim, uplim_tanh, dnlim_tanh.
Replace
D1 A K SDMOD
.MODEL SDMOD D (Roff=1000 Ron=0.7 Rrev=0.2 Vfwd=1 Vrev=10 Revepsilon=0.2 Epsilon=0.2 Ilimit=7 Revilimit=7)
by
ad1 a k asmod
.model asmod sidiode(Roff=1000 Ron=0.7 Rrev=0.2 Vfwd=1 Vrev=10 Revepsilon=0.2 Epsilon=0.2 Ilimit=7 Revilimit=7)
2018-10-13 18:19:58 +02:00
Holger Vogt
0b7c291f37
replace Id by Idd.
...
Use Revilimit instead of Ilimit.
Correct for current limits.
2018-10-13 18:19:53 +02:00
Holger Vogt
0675da008b
make the paramter param in @dev[param] lower case for
...
commands alter, altermod
2018-10-13 18:19:49 +02:00
dwarning
7bb9b866f6
fix junction capacitance calculation for bsim3 versions lower than 3.2.3
2018-10-13 18:19:43 +02:00
dwarning
2b3cfd7727
white spaces
2018-10-13 18:19:38 +02:00
Holger Vogt
d636f7899b
cp_enqvar() returns freshly malloced variables as well
...
as variables owned by somebody else, e.g. from ft_curckt->ci_vars.
The new function parameter tbfreed notifies the caller if the
variable is malloced here and may be freed safely.
2018-10-13 18:19:31 +02:00
Holger Vogt
6df684e22a
Evaluate .if ... .elsif ... .else ... .endif recursivly
2018-10-13 18:19:21 +02:00
Holger Vogt
a22017024b
add some info to file header
2018-10-13 18:19:09 +02:00
Holger Vogt
faa7ce003c
Add a new code model 'sidiode' with a simple diode:
...
Linear reverse, off, and on regions
Smooth parabolic transition between the regions
Maximum current settings possible with tanh transistion
Current versus voltage continuously differentiable
No diode capacitance
2018-10-13 18:18:59 +02:00
dwarning
76c43ab512
using the native tan and tanh math functions for real vector calculation
2018-10-13 18:18:47 +02:00
dwarning
3dd94ba15c
differentiate tan and tanh in safe way without cos and cosh
2018-10-13 18:18:37 +02:00
Holger Vogt
f33c3f0751
remove memory leak, when ft_getnames ... free_pnode couple
...
parses a vector like v(1,2)
2018-10-13 18:18:23 +02:00
Holger Vogt
ae89381bb6
Prevent a segfault if multiple circuits are freed upon 'quit'
...
by checking if a 'recent_deck' that is to be freed also exists
with same address in ci_mcdeck of another circuit. If yes, set
this to NULL before freeing.
2018-09-26 18:47:20 +02:00
Holger Vogt
a17de08b5c
free only value that have been TMALLOCed or TREALLOCed
2018-09-26 18:47:06 +02:00
Holger Vogt
2a3c88add6
Commit ad0f59657 ("fix a memory leak", 2018-08-13) made
...
the special device parameter notation @m1[vt0] unusable.
This fix frees only the tokens that are already overridden
in function INPinsertNofree(). The reason for using this
function instead of INPinsert() is not obvious.
2018-09-26 18:46:12 +02:00
Holger Vogt
5f0b2f344e
spurious crash: MIFgettok deliveres strings that cannot be freed:
...
MS Windows, VS or MSYS2/MINGW/GCC, shared ngspice, single character
token at end of line, compiled with optimization, not in debug mode.
Preliminary fix: TMALLOC another byte to token.
Origin of bug still unknown: Source code error? MS library error?
Re-write of MIFgettok does not show this error (so far...).
2018-09-26 18:45:46 +02:00
Holger Vogt
92b69cbc55
prepare ngspice-29
2018-09-26 18:45:35 +02:00
Holger Vogt
40e69ceaf4
plug a memory leak after (internal) call to altermod
2018-09-02 18:05:22 +02:00
Holger Vogt
12c864fb5a
destroy the tmalloced diag, if rshunt option was enabled
2018-09-02 18:05:01 +02:00
Holger Vogt
2e9c28c79a
Prevent segfault, if mutual inductor coupling
...
specifies non-existing inductors
2018-09-02 18:04:49 +02:00
Holger Vogt
b0e7962169
don't generate error message during transient analysis,
...
it will not be used
2018-09-02 18:04:42 +02:00
Holger Vogt
fc3ffb2e3c
free global string errMsg
2018-09-02 18:04:31 +02:00
Holger Vogt
0406546f7e
remove a small memoryleak in (nested) goto loops
2018-09-02 18:04:25 +02:00
Holger Vogt
70439e38fa
safety check if no circuit is loaded, prevent crash
2018-09-02 18:04:19 +02:00
Holger Vogt
8b02c31326
prevent reading beyond array boundaries
2018-09-02 18:04:00 +02:00
Holger Vogt
a8a6e0b2ff
During unsetup delete the InstanceArray (only for OpenMP)
2018-08-28 23:15:02 +02:00
Holger Vogt
800c9711f2
add a flag 'type of the union' to safely free model->param[i]->element,
...
if it contain a malloced string
2018-08-28 21:29:05 +02:00
Holger Vogt
f6cbaea604
data[i] is no longer written beyond its allocated length
2018-08-28 18:45:19 +02:00
Holger Vogt
2867678f99
For unsetup de-allocate the memory
...
that has been allocated locally in the code model during INIT
2018-08-28 17:11:51 +02:00
Holger Vogt
7d12b4897c
clean-up function com_quit
2018-08-28 16:24:43 +02:00
dwarning
06d0aaa827
whitespaces
2018-08-28 14:55:43 +02:00
dwarning
06fb917b82
plug a memory leak in bsim models
2018-08-28 14:42:29 +02:00
Holger Vogt
fa60f7d21d
avoid memory leak in X11
2018-08-27 21:20:19 +02:00
Holger Vogt
c4f8a02eb0
add a callback to de-allocate the static variable p->element
2018-08-27 17:00:10 +02:00
Holger Vogt
06df6ca8e7
avoid pre-matuire exit (byemessage not called)
2018-08-27 14:28:04 +02:00
Holger Vogt
80a767f6cd
add here->intgr to the de-allocated memory
2018-08-27 14:00:18 +02:00
Holger Vogt
21edfb2127
safety measure against here->conn[i]->port[j]->partial etc.
...
being NULL
2018-08-27 12:47:56 +02:00
Holger Vogt
a5179b1637
free memory allocated in MIFsetup and by cm_analog_alloc and cm_analog_converge
2018-08-27 12:19:24 +02:00
Holger Vogt
c87dd6161f
mifsetup.c: use astyle to beautify the code for better readability
2018-08-27 10:54:54 +02:00
Holger Vogt
e7bcc09bb0
remove memory leak: delete duplicate .param lines
2018-08-27 00:20:52 +02:00
Holger Vogt
9cd9bf345c
mif_inp2.c: remove a memory leak
2018-08-26 19:02:21 +02:00
Holger Vogt
3ee1f92d2e
plug a memory leak in b3temp.cir: no overwriting of size dependent
...
model parameters in pParam
FIXME: still to be done for other BSIM models!
2018-08-25 23:14:03 +02:00
Holger Vogt
b6b66c71bd
plug a small memory leak (switch-oszillators.cir)
2018-08-25 23:12:17 +02:00
Holger Vogt
9332801382
free the original wlist, made by getcommand(),
...
not a derived wlist that is just part of the original
2018-08-25 00:38:26 +02:00
Holger Vogt
c5cea6d6c1
remove ft_curckt->ci_meas upon removing the current circuit ft_curckt
2018-08-24 22:58:02 +02:00
Holger Vogt
5f1f6ccb29
add a small comment
2018-08-24 22:41:14 +02:00
Holger Vogt
0fbe920382
plug a small memory leak in switch-oscillators.cir
2018-08-24 21:56:29 +02:00
Holger Vogt
2b50ca7271
command 'print': preserve case for filenames after redirection '>'
2018-08-24 15:41:53 +02:00
dwarning
5380c3f4da
prevent a small memory leak
2018-08-23 15:44:00 +02:00
Holger Vogt
0e0b276a3e
ISRC: update to trnoise source, same as in VSRC
2018-08-23 10:56:50 +02:00
Holger Vogt
aedd9d92ee
upon alter the trnoise or trrandom states get re-written.
...
so delete the old state first.
2018-08-23 10:13:17 +02:00
Holger Vogt
b4c6a7d324
add function trnoise_state_free and use it
...
instead of its individual components
2018-08-23 10:12:24 +02:00
Holger Vogt
c88578e2c5
noise value is 0 for time == zero.
...
Only when time changes from time == 0 to time > 0,
the 1/f noise data are generated once per voltage instance
with 1/f noise requested.
2018-08-22 22:38:34 +02:00
Holger Vogt
d3b7619754
add a flag timezero to trnoise_state
...
falg is true as long as time = 0. Allows
to detect the change from time == 0 to time > 0
only then the 1/f data may be created anew (e.g.
due to multiple 'run' commands
2018-08-22 22:36:35 +02:00
dwarning
aa95da431a
adaptive format specifier for size_t printf
2018-08-22 14:19:12 +02:00
dwarning
aed5ba01c0
prevent a small memory leak
2018-08-22 13:05:19 +02:00
dwarning
7d78cba9ef
fix some prototype declarations
2018-08-21 13:40:13 +02:00
dwarning
561fdd805c
rm unused variables
2018-08-21 13:18:24 +02:00
dwarning
598b72be37
prevent a huge memory leak by calling fftw3 in a loop
2018-08-20 16:41:43 +02:00
Holger Vogt
1f7d84b270
trivial patch to avoid memory leaks during transient noise generation.
...
This has to be replaced by a rewrite of the noise generating code.
2018-08-20 00:25:21 +02:00
Holger Vogt
34fcdda1e2
plug a potentially huge memory leak
2018-08-19 21:03:15 +02:00
Holger Vogt
dafbf72f7f
fix a small memory leak
2018-08-19 17:30:53 +02:00
Holger Vogt
8c9b18ef7e
fix a small memory leak
2018-08-19 17:24:10 +02:00
Holger Vogt
7e4b68c708
update to the rusage command:
...
print total analysis time, total elapsed time, and
memory information (OS dependant) if rusage is given
without parameters
2018-08-19 15:00:46 +02:00
Holger Vogt
f07c73b6a5
Command 'cd' now switches to the home directory also for MS Windows.
...
A new command 'getcwd' just prints the current working directory
without changing it.
2018-08-18 21:22:59 +02:00
Holger Vogt
9cc690c55c
try to reload only when mc_deck is available
...
comment modified
2018-08-18 11:29:05 +02:00
Holger Vogt
2b071fec5a
add loading from recent deck (mc_deck) if circuit
...
file has been removed by remcirc.
2018-08-18 11:28:39 +02:00
Holger Vogt
2dfdf984d6
re-number the lines during copying,
...
required by nupa_copy()
2018-08-18 11:28:07 +02:00
Holger Vogt
f9eb75f55d
skip comment lines
2018-08-18 11:28:02 +02:00
Holger Vogt
ac0a70bb84
print deck after re-loading into debug-out-mc.txt,
...
if 'set ngdebug' is set in .spiceinit
2018-08-18 11:27:51 +02:00
Holger Vogt
cebb83eec1
give preference to mc_reload when reloading the circuit
2018-08-18 11:27:44 +02:00
Holger Vogt
ad0f596570
fix a memory leak
2018-08-18 11:27:31 +02:00
Holger Vogt
795f9ed6ad
remove unused rparen
2018-08-18 11:27:20 +02:00
Holger Vogt
b1f956f81c
fix a memory leak
2018-08-18 11:27:14 +02:00
Holger Vogt
73da17e367
just keep recent_deck, when it's already equal
...
to current ft_curckt->ci_mcdeck, thus avoid
freeing ft_curckt->ci_mcdeck
2018-08-18 11:27:02 +02:00
Holger Vogt
d1a8637a29
store deck for command mc_source for each circuit in ft_curckt->ci_mcdeck
...
remove this storage during remcirc
keep most recent deck in recent_deck
2018-08-18 11:26:42 +02:00
dwarning
9475daf9d2
MOS level 55-57 and 68 are available and not placeholder
2018-08-15 12:47:25 +02:00
dwarning
b113041faa
if bsim6 will come it would be va code and needs adms
2018-08-15 12:01:22 +02:00
Holger Vogt
d8352342a8
free more data allocated during INIT
2018-08-11 11:37:19 +02:00
Holger Vogt
c891c2f64f
Update to callback function:
...
delete memory also in the eno structure
do not close a file twice
2018-08-11 00:43:54 +02:00
Holger Vogt
7e611e7b57
remove the circuits upon quit
2018-08-10 23:48:00 +02:00
Holger Vogt
d26d1b96ec
add callback function to delete the memory
...
allocated in the code model
2018-08-10 23:35:33 +02:00
Holger Vogt
9d36a2e326
remove unused i
2018-08-10 23:34:27 +02:00
Holger Vogt
2ce4c1592b
a tiny memory leak
2018-08-10 22:03:02 +02:00
Holger Vogt
0bc1d8147c
plug a memory leak
2018-08-10 19:56:26 +02:00
Holger Vogt
a6f525f6c1
fix a memory leak
2018-08-09 23:23:18 +02:00
Holger Vogt
9db2bf3d69
fix a memory leak
2018-08-09 20:22:33 +02:00
Holger Vogt
6ed10583f2
plug small memory leaks
2018-08-08 23:31:52 +02:00
Holger Vogt
dc34632421
fix memory leaks when evaluating a variable
...
MC example file MC_ring_ts.sp is now free of memory leaks
2018-08-07 22:46:26 +02:00
Holger Vogt
934656f6e8
fix memory leak: before killing a plot, remove its hash table entry
2018-08-07 20:42:55 +02:00
Holger Vogt
cffc7d27ff
beautify code with astyle
2018-08-07 19:58:52 +02:00
Holger Vogt
c5b5190199
command 'setplot': add predefined 'previous' and 'next' parameters
...
to switch to the previous or next plot. A warning results if this
is not possible, then the currnt plot is not changed.
2018-08-07 19:58:41 +02:00
Holger Vogt
19596f0f42
add search in current directory
...
Patch provided by Uros Platise
https://sourceforge.net/p/ngspice/ngspice/merge-requests/4/
2018-08-07 19:58:08 +02:00
Holger Vogt
7c90004921
add Inp_Path to sourcepath variable
...
Patch provided by Uros Platise
https://sourceforge.net/p/ngspice/ngspice/merge-requests/4/
2018-08-07 19:57:58 +02:00
Holger Vogt
e18b848f7d
Allow '-' and '+' being part of the instance name.
...
Has already been available for B, E, F, G, and H sources
2018-08-07 19:57:38 +02:00
Holger Vogt
f354f36121
replace 'magic numbers' by defines, thus setting several char arrays
...
safeguard these arrays against overflow
set numbers of parameters to 10000
2018-08-07 19:57:28 +02:00
dwarning
88f1fa0092
allow version model parameter in exponential format for bsim3
2018-08-07 19:57:05 +02:00
Holger Vogt
8357564fee
fix missing tokens in cp_getvar
2018-07-30 00:42:46 +02:00
Holger Vogt
ef5747905f
fix bug no. 362, reported by Bohdan Tkhir
...
replace size_of by sizeof
2018-07-30 00:35:25 +02:00
Holger Vogt
eab5615fb3
examples moved to examples/xspice/original-examples
2018-07-28 13:47:23 +02:00
Holger Vogt
e3b2b395b9
fix an ancient bug in retrieving the data with the cursor
...
from a log y graph: use y-offset instead of x-offset
2018-07-26 20:55:21 +02:00
Holger Vogt
908339359a
clarify start time generation
...
clarify time and amplitude updates
don't read comment lines
2018-07-26 20:50:36 +02:00
Holger Vogt
0c94ab948b
treat ( ) , like spaces, that is ignore them during
...
switch parameter conversion
2018-07-26 18:21:34 +02:00
Holger Vogt
d1761f8d6e
read the complete input file at once during inizialization
...
instaed of reading the file line by line,
and instaed of re-reading from the beginning in case
of time stepping back. This saves a vast amount of
simulation time if the input file is large.
2018-07-24 22:30:40 +02:00
Holger Vogt
393c924886
improve finding tokens, considering nested parens
2018-07-22 17:33:19 +02:00
Holger Vogt
f2cfb9b359
add fourth parameter to cp_getvar()
2018-07-22 15:15:10 +02:00
Holger Vogt
fac5754b79
add variabale inputdir to store the last input file directory
2018-07-22 15:12:50 +02:00
Holger Vogt
2786fcb86e
New .option seed=[val|random]
2018-07-22 15:11:44 +02:00
Holger Vogt
107a4a808e
New .option seed=[val|random]
2018-07-22 15:09:25 +02:00
Holger Vogt
10c6c5c38b
Convert .param lines containing 'agauss' and others
...
into .func (xxx1() 'agauss()', replace all xxx1 entries
by function xxx1().
After subcircuit expansion, replace agauss and others
in B-Line by their suitable values.
2018-07-22 15:08:44 +02:00
Holger Vogt
7ca61b3c98
New command 'setseed' with function com_sseed
...
to set the random number generator
2018-07-22 15:06:19 +02:00
Holger Vogt
8fbcb16a57
add fourth parameter to cp_getvar(), in functions missing so far
2018-07-22 14:58:25 +02:00
Holger Vogt
af70c2e8f0
cp_getvar with CP_STRING: add size of string to function parameters
2018-07-22 14:58:06 +02:00
Holger Vogt
09c876550f
prevent string overflow by adding the string length
...
to the cp_getvar parameters. Used only with CP_STRING
2018-07-22 14:57:49 +02:00
dwarning
60a35725f5
few optimizations for diode recombination current calculation
2018-07-22 10:18:52 +02:00
Holger Vogt
8930690cd2
plug a small memory leak
2018-07-22 09:53:14 +02:00
Holger Vogt
824ac4fbc9
make functions static or add function prototypes
2018-07-21 23:56:14 +02:00
Holger Vogt
2dd293707b
initialize pn in ft_getpnames() parse.c
...
initialize dwLen in tesCreateSystemInfo() in com_sysinfo.c
Both were reported by MSVC Code Analysis
Crash of ngspice.dll in Eeschema is thus removed
(hopefully in general)
2018-07-21 23:55:00 +02:00
Holger Vogt
b07ae3123e
use only internal memory functions,
...
replace strdup by copy
2018-07-21 23:54:51 +02:00
Holger Vogt
a98d01e5f8
Use only internal memory functions, replace
...
free->tfree, malloc->tmalloc, realloc->trealloc
2018-07-21 23:54:43 +02:00
dwarning
376a37a5d6
introduce recombination current component
2018-07-19 15:44:06 +02:00
dwarning
3bae0e371c
fix a small inconsistency in temperature dependent charge calculation
2018-07-19 14:08:35 +02:00
Holger Vogt
a2b52b588e
a space is required between tokens that have got {}
2018-07-14 21:14:54 +02:00
Holger Vogt
d9d47bd823
fix a bug: missing
...
#ifdef XSPICE
prevents compiling of ngshared
without --enable-xspice in ./configure
2018-06-30 21:19:51 +02:00
Holger Vogt
417dbfef72
undo the previous commits dealing with snprintf,
...
use the C99 compliant function also with MS Visual Studio
2018-05-31 11:37:51 +02:00
Holger Vogt
92dd6e48d0
make up description comment for pspice_compat()
2018-05-31 10:59:20 +02:00
Holger Vogt
7153891293
raise buffer size by 1 to retain previous resolution
2018-05-31 10:58:52 +02:00
Holger Vogt
3b4640dee4
_snprintf in Windows 7 does not automatically put a '\0'
...
to the end of the buffer, only if there is space available.
That will change in the future if Snprintf is used.
2018-05-31 10:24:09 +02:00
Holger Vogt
1d9ab3eb5c
PSÜICE compatibility:
...
R n1 n2 val TC=xx1,xx2 --> R n1 n2 val TC1=xx1 TC2=xx2
2018-05-29 23:55:23 +02:00
Holger Vogt
22b7fa77b5
fix a bug with switches, when no subcircuit is involved
2018-05-28 23:59:55 +02:00
Holger Vogt
e5652cd745
safeguard fclose
2018-05-27 21:37:03 +02:00
Holger Vogt
2f56feea4a
do not lower-case command 'set sourcepath = XXX'
2018-05-27 07:56:40 +02:00
Holger Vogt
42a86d0ff2
patch provided by Uros Platise: timeunit selection
...
for printing vcd file is now based on tstep instead of tstop
2018-05-26 15:00:37 +02:00
Holger Vogt
2e0b8b3e34
plug a small memory leak
2018-05-23 23:08:44 +02:00
Holger Vogt
a40ba9ec4e
add a comment
2018-05-22 21:18:53 +02:00
Holger Vogt
ae81481229
white spaces
2018-05-22 20:34:44 +02:00
Holger Vogt
7b6cd86a62
re-write vswitch transformation code:
...
first scan: check for each .model with vswitch
second scan: check for switch instances
(s lines) using the models
2018-05-22 20:19:50 +02:00
Holger Vogt
f9b11cd619
update to function pspice_compat(), concerning the VSWITCH replacement
...
only one .model replacement even for several s instances
firstly search in subcircuit at same level, then in top level
2018-05-21 23:34:36 +02:00
Holger Vogt
f4f389dabb
internal help: it is only available when --enable-oldapps is given
...
ngnutmeg is only made when --enable-oldapps is given during ./configure
2018-05-21 01:09:21 +02:00
Holger Vogt
0cb71b21bb
move ngspice_compat_mode(void) to inpcom.c and make it static
2018-05-21 01:09:13 +02:00
Holger Vogt
fa3badf2bd
correct typo
2018-05-21 01:09:06 +02:00
Holger Vogt
d991bbc470
ngconfig.sh is no more available
2018-05-20 12:48:31 +02:00
Holger Vogt
3145716163
new --enable-oldapps: ngsconvert ngproc2mod ngmultidec ngmakeidx are made only per user request
2018-05-19 23:49:17 +02:00
Holger Vogt
8324b0f646
prepare ngspice-28
2018-05-19 22:15:41 +02:00
Holger Vogt
406f812db5
distribute only adms/admst, not the whole adms
2018-05-19 20:25:42 +02:00
Holger Vogt
697b9da074
prevent endless loop if factor finally equals 1
2018-05-19 18:24:40 +02:00
h_vogt
e47ab87385
inpcom.c, multiplier 'm' in subcircuits: exclude all devices not supporting multiplier 'm'
2018-05-19 18:20:27 +02:00
h_vogt
8762f6551d
main.c free argv after its use (Win GUI only)
2018-05-19 18:15:23 +02:00
h_vogt
d89eab99d5
add dicoS->linecount to safely delete dynrefptr[i],
...
linecount may change if circuits are changed or deleted.
2018-05-19 17:49:17 +02:00
h_vogt
1066bf0a7b
Store the numparam dicoS structure for each circuit in a list.
...
Functions to add, remove, retrive dicoS from the list
and to update dicoS, if the circuit has been changed.
Keeping dicoS is necessary because it may be used by measure.
This patch prevents (huge) memory leaks by overwriting
dicoS if multiple calls to the 'source' command are executed.
2018-05-19 17:45:45 +02:00
h_vogt
4a3f02e979
runcoms.c, add variable 'sim_status' to indicate if a simulation has been aborted
2018-05-19 17:40:03 +02:00
h_vogt
2ece845f59
inpcom.c, responding to bug report 275 by Dominique Michel: commands plot, hardcopy: no lower case letters in tokens following xlabel, ylabel, title
2018-05-19 17:38:26 +02:00
h_vogt
7198056a41
patch no. 16 by Thomy add a function cm_get_circuit to allow accessing the circuit structure ckt from within an XSPICE code model. This is a change to the interface and requires recopiling all code models!
2018-05-19 17:37:42 +02:00
Holger Vogt
7ee0b14431
better zero after deaalocation
2018-05-19 16:53:50 +02:00
Holger Vogt
8f41257d87
enable 'temper' evaluation, if circuit is reloaded
2018-05-19 16:53:38 +02:00
Holger Vogt
cbe4b31d4b
do not delete symbols that have not been created here
2018-05-19 16:53:04 +02:00
Holger Vogt
710e98a22c
Fcn ngGet_Vec_Info(): copy the vector pointer into a static pointer
...
infovec only if it is derived from event data (checked by a
scale vector with name "step"). Upon next call to fcn
ngGet_Vec_Info() first free the vector pointed to by infovec.
resolve merge conflict
2018-05-19 16:52:42 +02:00
Holger Vogt
8aff70036a
Put variable wantevtdata into the right place,
...
also available for standard executable, to be
modified in sharedspice.c only.
2018-05-19 16:52:08 +02:00
h_vogt
ce9f23f7af
outitf.c, restrict vector length to 1, the minimum needed
2018-05-19 16:51:57 +02:00
h_vogt
a393c47ec8
outitf.c, add flag 'save none' for shared ngspice. Output data will not be stored, but are available via callback function ng_data.
2018-05-19 16:51:42 +02:00
h_vogt
11bafd70ea
update to callback functions SendEvtData, SendInitEvtData
2018-05-19 16:46:16 +02:00
h_vogt
5b754cbb0e
dctran.c, exclude ipc_send_data_...
2018-05-19 16:45:09 +02:00
h_vogt
c890435383
clarify pointers to data structures for event nodes
2018-05-19 16:44:57 +02:00
h_vogt
b5f31ec2b1
version conflict rersolved in sharedspice.c
2018-05-19 16:44:46 +02:00
h_vogt
25a324ba6e
add parameter mode to EVTsharedsend_line()
...
last entry for the dictionary list is NULL
2018-05-19 16:44:27 +02:00
h_vogt
2a6f0658a8
EVTshareddump() modified to just sent the relevant event data
2018-05-19 16:44:14 +02:00
h_vogt
994d190de5
shared_send_dict(char* dictline) to sent the node list
2018-05-19 16:44:02 +02:00
h_vogt
e36b028cdb
add wantevtdata if event output should be sent to caller
2018-05-19 16:43:48 +02:00
h_vogt
3e52cdd8c1
evtdump.c, prepare data gathering for callbacks similar to sending data via the ancient ipc channel
2018-05-19 16:43:31 +02:00
h_vogt
b621875abf
sharedspice.h, .c, prepare adding callback functions: new ngSpice_Init_Evt() and function pointers
2018-05-19 16:43:19 +02:00
h_vogt
df4136a93d
evtprint.c, update to edisplay command now showing node name, node type and number of events per node
2018-05-19 16:43:09 +02:00
h_vogt
72fd154571
evtshared.c, add delete function, remove bug in creating struct
2018-05-19 16:42:29 +02:00
h_vogt
fc42cef878
New functions for XSPICE event node data exported from shared ngspice: ngGet_Evt_NodeInfo(char*) and ngSpice_AllEvtNodes(void)
2018-05-19 16:42:18 +02:00
h_vogt
20f6727e29
evtshared.c, prepare node data for transfer via shared ngspice interface
2018-05-19 16:42:01 +02:00
Holger Vogt
bea6fba788
prevent false reads in multi-threaded ngshared
2018-05-19 16:39:16 +02:00
Holger Vogt
74584c94ee
prevent false reading after copying an empty file
2018-05-19 15:40:30 +02:00
rlar
1a39d3f59d
spicelib/parser, support instance parameter defaults on .model lines
2018-05-19 15:40:20 +02:00
Holger Vogt
7363532d11
search for user's initialization files has been
...
optimized away because of an empty if clause.
A simple rewrite firstly asks for .spiceinit, then for spice.rc
2018-05-19 14:41:06 +02:00
Holger Vogt
d311fb10cf
add a new vector type "temperature"
2018-05-19 14:40:55 +02:00
Holger Vogt
5b18732af2
plug some memory leaks
2018-05-19 14:40:50 +02:00
Holger Vogt
a191697bd6
safeguard opening of file for debug output:
...
may be not allowed if caller is not started
in admin mode.
2018-05-19 14:40:41 +02:00
Holger Vogt
57156e16f6
remove tiny memory leaks in inp_compat()
2018-05-19 14:40:33 +02:00
Holger Vogt
5f5eacc48e
move skipping white spaces to fcn create_circbyline() now ' .end' is acknowledged
2018-05-19 14:40:23 +02:00
rlar
55b2a0218e
noise for behavioural resistor
2018-05-19 14:40:12 +02:00
Holger Vogt
1426f66967
use global variable inp_compat_mode
2018-05-18 18:39:15 +02:00
Holger Vogt
65181ff5c3
enable token 'table' to occur at any place in e source line
2018-05-18 18:37:24 +02:00
Holger Vogt
ffb3800e34
Bug fix: B source pwl lines don't get special handling,
...
but standard numparam handling of {} tokens
2018-05-18 18:36:26 +02:00
Holger Vogt
c879294a8b
add comment
2018-05-18 18:27:49 +02:00
Holger Vogt
7188605ef2
bugfix: re-enable loading deck from circarray, if intfile
2018-05-18 18:22:41 +02:00
Holger Vogt
04059e5426
enable '-' as valid character in a subcircuit name
2018-05-18 17:35:05 +02:00
h_vogt
c8cd763314
gnuplot.c, add 'noretraceplot' to prevent retracing of the graph if plotting against a vector which is not the original scale vector ('plot vec1 vs vec2')
2018-05-18 17:25:48 +02:00
h_vogt
d4adb027d2
avoid retrace in output graph by adding label 'noretraceplot'
...
to the plot command, that creates a lin plot trying to avoid retracing
2018-05-18 17:08:27 +02:00
rlar
611596c916
PTpower
2018-05-18 17:06:14 +02:00
rlar
6ef2a5f81b
fix code to fit the derivation
2018-05-18 17:05:44 +02:00
rlar
e36ded8122
fix derivations in comments
2018-05-18 17:05:08 +02:00
Holger Vogt
af351eab5f
add a non-zero fudge factor to zero function argument
2018-05-18 16:55:31 +02:00
Holger Vogt
c1a64d9f49
make inp_compat_mode glabal
2018-05-18 16:54:52 +02:00
Holger Vogt
bb162de1d8
Parameter names in .model lines may be preceeded
...
by spaces, but also by '('
2018-05-18 16:43:12 +02:00
Holger Vogt
ff00ec3aed
allow '+' or '-' characters in device name
...
for current and voltage sources.
Maybe exrtended to all devices.
2018-05-18 16:12:55 +02:00
Holger Vogt
314ece2526
allow '-' in XSPICE model names
2018-05-18 16:01:58 +02:00
Holger Vogt
181e8746a6
allow hyphens '-' in model names
2018-05-18 16:01:35 +02:00
Holger Vogt
09590047fe
Check if model is a PSPICE resistor 'res'
2018-05-18 15:55:04 +02:00
Holger Vogt
53bac06d11
.model replacement in ako (a kind of) model descriptions
...
in first level .subckt and top level only
2018-05-18 15:37:26 +02:00
Holger Vogt
d9dbde0593
replace the E source TABLE function by a B source pwl
...
(used by ST OpAmps and comparators)
2018-05-18 15:31:47 +02:00
Holger Vogt
10c69b8d05
replace S1 D S DG GND SWN by
...
a1 %v(DG) %gd(D S) swa
2018-05-18 15:25:19 +02:00
Holger Vogt
f25a307886
get the area factor for diodes and bipolar devices
2018-05-18 15:20:06 +02:00
Holger Vogt
9d8148edae
replace T_ABS by temp and T_REL_GLOBAL by dtemp in .model cards
2018-05-18 15:17:45 +02:00
Holger Vogt
13ca544d15
replace & with && and | with || and *# with * #
2018-05-18 15:15:38 +02:00
Holger Vogt
ae9cc17aff
add predefined parameters TEMP, VT after each subckt call
2018-05-18 15:12:22 +02:00
Holger Vogt
77814b8618
add predefined params TEMP, VT, GMIN to beginning of deck
...
add funcs limit, pwr, pwrs, stp, if, int
2018-05-18 15:10:15 +02:00
Holger Vogt
5ace7ff1fd
exclude simple e and h sources from getting a series voltage source
...
by undoing the name conversion
2018-05-16 08:16:22 +02:00
Holger Vogt
cfa473ad96
don't print NULL (deallocated lines)
2018-05-16 00:19:46 +02:00
Holger Vogt
9908b39d2b
make inp_compat_mode global
2018-05-16 00:15:29 +02:00
Holger Vogt
98fe623ba4
add function prototype pspice_compat
...
to deal with compatibility issues during loading
a PSPICE library
2018-05-16 00:14:31 +02:00
Holger Vogt
4aff986ee8
fix a bug, missing ;
2018-05-15 23:36:16 +02:00
Holger Vogt
429326e139
Add current measurement for device XYZ using I(XYZ)
2018-05-15 23:16:22 +02:00
h_vogt
7dd81327ec
new command 'alterparam', to be used in conjunction with 'mc_source'
...
add command 'alterparam paramname=pvalue'
to change a global .param
add command 'alterparam subcktname pname=vpval'
to change a parameter inside of a subcircuit
2018-05-15 22:46:06 +02:00
h_vogt
5c3a6a3829
new command 'mc_source' to internally reload circuit
...
We store a copy of the whole deck in 'mc_deck'.
'mc_source' can be used to re-read this copy.
2018-05-15 22:45:29 +02:00
h_vogt
464f855d1d
subckt.c, introduce new function inp_deckcopy_oc()
...
copy a deck
without li_actual,
without comment lines
without .control section
2018-05-15 22:45:10 +02:00
rlar
dc604c75d5
inpcom.c, whitespace
2018-05-15 22:43:43 +02:00
rlar
0f1b75a95b
inpcom.c, abstraction, introduce bogus_find_subckt()
...
extracted from inp_fix_inst_calls_for_numparam().
This code is and was evil, as it does not respect scoping rules.
2018-05-15 22:43:23 +02:00
Holger Vogt
73db0477c0
vdmosdist.c, white spaces
2018-05-04 20:35:16 +02:00
Holger Vogt
68fbc49216
vdmos.c, sort parameters
2018-05-04 20:35:14 +02:00
Holger Vogt
285de59446
enable alternative weak inversion model if parameter subslope is given
2018-05-04 20:35:11 +02:00
Holger Vogt
93e34540b8
introduce parameter ksubthres, compatible to LTSPICE
2018-05-04 20:35:10 +02:00
Holger Vogt
a0867ff1a3
bugfix: collapse the correct nodes if RB is zero or not given
2018-05-04 20:35:09 +02:00
Holger Vogt
2474c28a54
Alternative simple weak inversion model
...
according to https://www.anasoft.co.uk/MOS1Model.htm .
Fits existing LTSPICE models by adapting the slope parameter.
2018-05-04 20:35:08 +02:00
Holger Vogt
0ece0d0c1c
make breakdown voltage internally always positive
2018-05-04 20:35:07 +02:00
Holger Vogt
63be243f72
Add a simple quasi saturation model according to V. d'Alessandro e.a., 2001
2018-05-04 20:35:07 +02:00
Holger Vogt
72e03e7eab
replace parameter name subthres by subslope
2018-05-04 20:35:06 +02:00
Holger Vogt
5ba25a8716
change parameter to scalef when calculating n empirical compromise between smooth curve and reduction of Id slightly above threshold
2018-05-04 20:35:05 +02:00
Holger Vogt
3ee3ab39a9
Choose better interpolation and default parameters
2018-05-04 20:35:04 +02:00
Holger Vogt
729eac4e84
cweakinv, add model parameter model->VDMOSsubshift
2018-05-04 20:35:03 +02:00
Holger Vogt
f0d131fb8a
cweakinv, introduce sine scaling fucntion scalef()
2018-05-04 20:35:02 +02:00
Holger Vogt
284f68765d
frontend/vectors.c, readability of warning message
2018-05-04 20:35:01 +02:00
Holger Vogt
68125ea3cf
allow reading LTSPICE ascii raw files with 'load' command
...
by discarding 'Offset:'
2018-05-04 20:35:00 +02:00
Holger Vogt
43a6339071
rename VDMOS_CGS, VDMOS_CGD, VDMOS_CDS to VDMOS_CAPGS, VDMOS_CAPGD, VDMOS_CAPDS C: current, CAP: capacitance, V: voltage, G: conductance, Q: charge
2018-05-04 20:34:59 +02:00
Holger Vogt
b4b6e3ebf8
Add the bulk diode to the ac calculation
2018-05-04 20:34:58 +02:00
Holger Vogt
87e8b366ad
Add gate resistor to AC calculation 2
...
Add matrix entries for gate resistor
2018-05-04 20:34:56 +02:00
Holger Vogt
5d6e3348c9
Add gate resistor to AC calculation 1
...
Replace g (gate) by gp (gate prime) in existing matrix loading
2018-05-04 20:34:54 +02:00
Holger Vogt
570aacbf02
Remove VDMOS_CBS, VDMOS_CBD, VDMOS_CB
2018-05-04 20:34:52 +02:00
Holger Vogt
2b444a3423
remove unused parameters VDMOS_VBS/VBD and VDMOS_CAPBD/BS/GS/GD/GB
2018-05-04 20:34:51 +02:00
Holger Vogt
33a68b7321
return only half of the capacitance cgs and cgd
2018-05-04 20:34:50 +02:00
Holger Vogt
62297b2450
add weak inversion current capability
...
calibration of parameter subthres with LTSPICE is still missing.
2018-05-04 20:34:47 +02:00
rlar
ce2e704f56
up, where to ? fixme, there are more ...
2018-05-04 20:34:45 +02:00
rlar
ede0fb1caa
cleanup
2018-05-04 20:34:44 +02:00
Holger Vogt
4a3c707036
add parallel resistor rds (between outer drain and source nodes, parallel to bulk diode)
2018-05-04 20:34:42 +02:00
Holger Vogt
b7c6145f5e
rename the device multiplier m to mu, not to mix it up with the Body diode grading coefficient m
2018-05-04 20:34:41 +02:00
Holger Vogt
c5f47d3c1b
Error message and exit if a vdmos device instance
...
has different source and bulk node (have to be the same).
2018-05-04 20:34:40 +02:00
Holger Vogt
b13675ea44
remove unused code to calculate bulk-source and bulk-drain capacitors has been replaced already by capacitor from parallel bulk diode
2018-05-04 20:34:39 +02:00
Holger Vogt
f9b66af074
add the mtriode parameter scale the triode region independently from saturation current
2018-05-04 20:34:36 +02:00
Holger Vogt
40fe11db07
Body diode grading coefficient is m, not mj
2018-05-04 20:34:34 +02:00
Holger Vogt
2f719f7401
function 'inp_vdmos_model' to process vdmos model lines towards ngspice compatibility
2018-05-04 20:34:32 +02:00
Holger Vogt
f3478d7f13
re-format code
2018-05-04 20:34:31 +02:00
Holger Vogt
9d00a9e28d
re-format code (whitespace only)
2018-05-04 20:34:31 +02:00
Holger Vogt
45f52c859b
enable breakdown capability of parallel bulk diode
2018-05-04 20:34:30 +02:00
Holger Vogt
2bf70fa259
add matrix entries for bulk diode
2018-05-04 20:34:29 +02:00
Holger Vogt
bfec119e5b
Use better name for some parameters, cosmetics
2018-05-04 20:34:27 +02:00
Holger Vogt
4ac7a641ec
diode model for bulk diode added code taken from dio.c etc. capacitance calculation for vdmos bulk cap removed, is now completely with the diode. An internal node added for series diode resistance RB
...
matrix entries not yet done!
2018-05-04 20:34:26 +02:00
Holger Vogt
1ce7fef519
missing model parameters added
2018-05-04 20:34:25 +02:00
Holger Vogt
a4dc84ae35
missing model parameters added
2018-05-04 20:34:24 +02:00
Holger Vogt
0dc0aa06c4
re-introdeuce parameter phi Resulting temperature dependency of vto still not available
2018-05-04 20:34:24 +02:00
Holger Vogt
5b8c8072f3
mobility and substrate related parameters and equations removed
2018-05-04 20:34:22 +02:00
Holger Vogt
9df45731e9
depl cap calculation removed
2018-05-04 20:34:21 +02:00
Holger Vogt
0a213bea1a
more on removing the sidewall capacitance
2018-05-04 20:34:20 +02:00
Holger Vogt
ef547eb8ff
sidewall capacitance calculation removed
2018-05-04 20:34:19 +02:00
Holger Vogt
7df59a750e
useful parameter declarations moved to stay
2018-05-04 20:34:18 +02:00
Holger Vogt
0ebb7348ca
remove drain and source resistance contributions
2018-05-04 20:34:18 +02:00
Holger Vogt
84005efe8b
lateral diffusion and overlap capacitance removed
2018-05-04 20:34:17 +02:00
Holger Vogt
e0ddc38519
default transconductance parameter kp set to 1
2018-05-04 20:34:16 +02:00
Holger Vogt
e9e621de07
remove effective channel length, replace by l
2018-05-04 20:34:15 +02:00
Holger Vogt
47ef2bfaff
remove unused parameters VDMOS_MOD_VTO
2018-05-04 20:34:14 +02:00
Holger Vogt
d1497d8270
rename parameter "pb" --> "vj"
2018-05-04 20:34:13 +02:00
Holger Vogt
9c1b403f79
remove Gate.*OverlapCap
2018-05-04 20:34:12 +02:00
Holger Vogt
dee9dc370f
default m, W, L = 1
2018-05-04 20:34:11 +02:00
Holger Vogt
1aa3196ed9
another re-formatting for better readability (whitespace only)
2018-05-04 20:34:10 +02:00
Holger Vogt
d63123a269
gate resistance und gate conductance added, prime gate node added, not yet o.k. when rg is set, probably wrong signedness
2018-05-04 20:34:09 +02:00
Holger Vogt
40b9b18b01
gate conductance added
2018-05-04 20:34:09 +02:00
Holger Vogt
e0734a3ade
re-format for better readability
2018-05-04 20:34:08 +02:00
Holger Vogt
5abe8a759b
re-format for better readability, (whitespace only)
2018-05-04 20:34:07 +02:00
Holger Vogt
c0c3470dff
add the simple vdmos capacitance model instead of Meyer's model
2018-05-04 20:34:06 +02:00
Holger Vogt
389c888948
capacitance parameters cgdmin, cgdmax, a, cgs completely installed
2018-05-04 20:34:05 +02:00
Holger Vogt
eb1df52743
remove unused VDMOS_CAPZEROBIASBD/BDSW/BS/BSSW aka VDMOSCbd/bdsw/bs/bssw
2018-05-04 20:34:04 +02:00
Holger Vogt
f7b66ded9d
comment
2018-05-04 20:34:03 +02:00
Holger Vogt
f4853e85ca
add vdmos to the parameter list and search
2018-05-04 20:34:02 +02:00
rlar
b07661786f
move arround
2018-05-04 20:34:01 +02:00
Holger Vogt
8473c8e03c
remove empty VMOSdelete() function
2018-05-04 20:34:00 +02:00
Holger Vogt
b87f5c0563
remove never used sensitivity analysis code
2018-05-04 20:33:59 +02:00
Holger Vogt
b6a8613427
remove unused old sensitivity functions
2018-05-04 20:33:58 +02:00
Holger Vogt
1c4cb49478
CAPBYPASS removed
2018-05-04 20:33:57 +02:00
rlar
306e46359d
whitespace
2018-05-04 20:33:56 +02:00
rlar
5008d495ce
untabify
2018-05-04 20:33:55 +02:00
Holger Vogt
3e6a46826b
add src/spicelib/devices/vdmos to ngspice
2018-05-04 20:33:54 +02:00
Holger Vogt
d9bc4a5b41
add src/spicelib/devices/vdmos to ngspice
2018-05-04 20:33:53 +02:00
rlar
572bf10ebd
execute vdmos-1.el
2018-05-04 20:33:46 +02:00
rlar
45a70b3a53
rewrite, use enum instead of #define sequences
...
see branch "rewrite-defines2enum"
2018-04-30 19:23:18 +02:00
Francesco Lannutti
3a7e9411c3
drop #ifdef MUTUAL
2018-04-22 22:10:43 +02:00
rlar
bcf00ade06
cpl/cplsetup.c, cleanup VECTOR_ALLOC and MATRIX_ALLOC
...
swap first two arguments for readability
2018-04-22 22:04:45 +02:00
rlar
04dc62ef13
devices/*, move kind of `enum' defines out of struct definition
2018-04-15 15:05:02 +02:00
rlar
3b0e8cb8f1
vsrc/isrc, use an explicit #ifdef "PULSE_FUN_TYPES" guard
...
to avoid duplicate definition
2018-04-15 15:05:02 +02:00
rlar
a729c2860c
sensitivity, drop redundant #defines SENS_LIN/OCT/DEC/DEFPERT
...
use SENS_LINEAR/OCTAVE/DECADE/DEFPERTUB instead
2018-04-15 15:05:02 +02:00
rlar
a9439dc7dd
sensitivity, use numStates and numSenStates instead of hardcoded literals
2018-04-15 15:04:57 +02:00
rlar
d3f13edd4a
devices/vbic/vbicsetup.c, bug fix, incorrect states allocation
...
VBICnumSenStates is 10 not 8
2018-04-15 08:42:02 +02:00
rlar
d981fb331b
spicelib/devices/*, drop empty destroy functions
2018-04-15 07:13:06 +02:00
rlar
e725d728fc
res/restemp.c, avoid temporary NaN value, (simplify debugging)
...
RESupdate_conduct() may be called several times before all
parameters have been set via RESparam() invocations,
or finally being set to default values in RESsetup()
Especially RESscale might still be 0.0 as well as RESm
thus temporarily creating a NaN in RESupdate_conduct.
This would unnecessarily complicate debugging with enabled
floating point exceptions.
2018-03-17 18:36:12 +01:00
rlar
ead6dc4816
spicelib/devices/{sw,csw}, unify CKTstates[] access
...
do it the same way as the other devices do
access CKTstates[][slot] via device specific descriptive macros
access CKTstates[] via CKTstate0 CKTstate1 macros
this patch has been checked for object file in-variance with gcc
2018-03-08 19:40:53 +01:00
rlar
bcecc19e8b
spicelib/devices/{sw,csw}, cleanup for readability
...
This change is functional invariant, and has been checked
with gcc for object file in-variance.
For the details see the "rewrite-sw" branch
2018-03-08 18:24:49 +01:00
h_vogt
3dd2115291
frontend/subckt.c, do not put model names into numparam hash table
...
nobody seems to make use of these entries.
see nupa_type which shrinks to four enum's
2018-03-01 18:13:01 +01:00
rlar
b803b294b4
frontend/parser/lexical.c, cp_lexer(), allow # and * comment
...
Both, whether interactive or not.
Especially for command scripts.
2018-02-26 19:41:04 +01:00
rlar
6903584e99
asrc/asrcacld.c, bug fix, reciproc tc coefficient
2018-02-25 21:59:15 +01:00
Holger Vogt
b1aa6cfc87
xspice/enh/enhtrans.c, two2three_translate(), plug a memory leak
2018-02-25 20:05:15 +01:00
rlar
878c9645c7
frontend/outitf.c, drop /* ARGSUSED */ comments
2018-02-22 21:56:05 +01:00
Holger Vogt
edc690e26f
frontend/outitf.c, plug a memory leak when `.option interp'
2018-02-22 21:55:23 +01:00
rlar
cd1bbf2003
rewrite, use designated initializer for SPICEdev initialisation
2018-02-21 20:02:00 +01:00
rlar
95ef5e79d9
numparam/*, use `pscopy()'
2018-02-20 21:34:06 +01:00
rlar
9ad63cc2c0
numparam/*, plug memory leaks
2018-02-20 21:33:55 +01:00
rlar
ea1b83698f
numparam/*, drop case conversions
...
inpcom.c is supposed to convert everything to lower case.
Thus we can work case sensitive in numparam,
which is easier compared to a whole set of local case conversions.
2018-02-20 21:33:32 +01:00
rlar
0200d5c7e9
numparam/*, drop "old style" '&' syntax
...
Probably an artefact of the external preprocessor implementation
of numparam.
This syntax seems to have been a non spice macro expansion facility.
2018-02-20 21:30:52 +01:00
rlar
8022aa09a6
spicenum.c, cleanup dicoS usage
2018-02-20 21:30:41 +01:00
rlar
aa0dbd20ad
spicenum.c, drop putlogfile()
2018-02-20 21:30:15 +01:00
rlar
15c00a9d42
spicenum.c, drop dologfileS, logfileS and nblogS
...
which are never set
2018-02-20 21:29:50 +01:00
rlar
112f35cc96
nupa_copy(), use skip_back_ws()
2018-02-20 21:29:29 +01:00
rlar
9218b76583
nupa_copy(), cleanup
2018-02-20 21:28:56 +01:00
rlar
ec24c1ded7
nupa_copy(), fix lvalue
2018-02-20 21:28:03 +01:00
rlar
06708f1ed1
nupa_copy(), ls ==> s_end - (const) s
2018-02-20 21:27:38 +01:00
rlar
751d377d3e
pscopy(), pscopy_up(), use `char *stop' argument
...
instead of `int length' argument
2018-02-20 21:13:16 +01:00
rlar
e21d48a267
pscopy(), pscopy_up(), use _spice_dstring_setlength() return value
...
instead of invoking spice_dstring_value()
2018-02-20 21:13:05 +01:00
rlar
2ce91b0821
pscopy(), pscopy_up(), expand spice_dstring_reinit() macro
...
and inline the resulting spice_dstring_setlength() invocation
2018-02-20 21:12:56 +01:00
rlar
2cb579cd9f
pscopy(), pscopy_up(), drop `start' argument
...
which is always zero
2018-02-20 21:12:44 +01:00
rlar
3bd9c1c858
scopyd(), return void
2018-02-20 20:51:30 +01:00
rlar
5164c16a1b
numparam/mystring.c, drop unused nadd(), cins(), sins() and spos_()
2018-02-17 19:15:55 +01:00
rlar
468f7580ad
nupa_subcktcall(), cleanup using skip_ws()
2018-02-17 19:15:55 +01:00
rlar
a38b19bc0e
nupa_subcktcall(), reintroduce search for last occurence of the subckt name
2018-02-17 19:15:55 +01:00
rlar
c2f519c191
nupa_subcktcall(), drop `p_subname'
2018-02-17 19:15:55 +01:00
rlar
3f5ea23c71
nupa_subcktcall(), drop `ls_ptr'
...
valid because
neither `jp' nor `gp' will ever be incremented beyond end of string
2018-02-17 19:15:55 +01:00
rlar
437f92385a
nupa_subcktcall(), avoid `jp' pointing beyond end of string
...
The skip whitespace loop in the following line shall
safely swallow the delimiting space instead
2018-02-17 19:15:55 +01:00
rlar
bb9689139b
nupa_subcktcall(), drop `parsebuf' and `buf'
2018-02-17 19:15:55 +01:00
rlar
8b1e4fc32c
nupa_subcktcall(), introduce search_isolated_identifier()
...
the functionality is a bit different though,
because the previous code searched for the *last* occurence of the identifier
yet the new code searches for the first occurence.
2018-02-17 19:15:55 +01:00
rlar
6a57023ced
nupa_subcktcall(), drop `hp'
2018-02-17 19:15:55 +01:00
rlar
b16a61fb7c
nupa_subcktcall(), use skip_non_ws()
2018-02-17 19:15:55 +01:00
rlar
71ac5bccc2
nupa_subcktcall(), swap `hp' and `kp'
...
neither `hp' nor `kp' will be used any more behind this body
2018-02-17 19:15:55 +01:00
rlar
07112d62fb
nupa_subcktcall(), simplify
2018-02-17 19:15:55 +01:00
rlar
e4a2106cfe
nupa_subcktcall(), simplify
2018-02-17 19:15:55 +01:00
rlar
1298eacdb2
nupa_subcktcall(), simplify
2018-02-17 19:15:55 +01:00
rlar
1157142dfd
nupa_subcktcall(), simplify
2018-02-17 19:15:55 +01:00
rlar
6ca336af85
nupa_subcktcall(), pscopy transform
2018-02-17 19:15:55 +01:00
rlar
7d40920bd6
nupa_subcktcall(), cleanup
2018-02-17 19:15:55 +01:00
rlar
70cec5e9e3
nupa_subcktcall(), fix lvalue
2018-02-17 19:15:55 +01:00
rlar
ec9636e078
nupa_subcktcall(), ls ==> ls_ptr - (const) t_p
2018-02-17 19:15:55 +01:00
rlar
701dcad9a4
nupa_subcktcall(), fix lvalue
2018-02-17 19:15:55 +01:00
rlar
a773601b84
nupa_subcktcall(), g ==> gp - (const) t_p
2018-02-17 19:15:55 +01:00
rlar
3267bf8d63
nupa_subcktcall(), fix lvalue
2018-02-17 19:15:55 +01:00
rlar
0a149819a5
nupa_subcktcall(), h ==> hp - (const) t_p
2018-02-17 19:15:55 +01:00
rlar
47f1e7b1fa
nupa_subcktcall(), fix lvalue
2018-02-17 19:15:55 +01:00
rlar
cc932725ac
nupa_subcktcall(), k ==> kp - (const) t_p
2018-02-17 19:15:55 +01:00
rlar
d991296b82
nupa_subcktcall(), split personality of `k'
2018-02-17 19:15:55 +01:00
rlar
b9750ee59f
nupa_subcktcall(), fix lvalue
2018-02-17 19:15:55 +01:00
rlar
84c22e656a
nupa_subcktcall(), j ==> jp - (const) t_p
2018-02-17 19:15:55 +01:00
rlar
0f53656412
nupa_subcktcall(), split personality of `j'
2018-02-17 19:15:55 +01:00
rlar
80701652fc
nupa_subcktcall(), cleanup getexpress() usage
...
# Conflicts:
# src/frontend/numparam/xpressn.c
2018-02-17 19:15:55 +01:00
rlar
742f34f596
nupa_subcktcall(), spice_dstring_value(&tstr) ==> t_p
...
t_p is const and tstr hasn't been modified either,
thus still the same value.
2018-02-17 19:15:55 +01:00
rlar
cb4dfa13d8
nupa_subcktcall(), reduce scope of some locals
2018-02-17 19:15:55 +01:00
rlar
9670af0d4e
nupa_subcktcall(), drop `i', use a pointer instead
2018-02-17 19:15:55 +01:00
rlar
6e5ef92fd2
nupa_subcktcall(), transform pscopy(,x,y,) --> pscopy(,x+y,y-y,) (requirement strlen(x) >= y to be verified later)
2018-02-17 19:15:55 +01:00
rlar
53adeee1d3
nupa_subcktcall(), drop j1 and t_p1, use a pointer instead
2018-02-17 19:15:55 +01:00
rlar
c133f21ef7
nupa_subcktcall(), split personality of `t_p'
2018-02-17 19:15:55 +01:00
rlar
f17521fa4c
nupa_subcktcall(), split personality of `ls'
2018-02-17 19:15:55 +01:00
rlar
81e02154be
nupa_subcktcall(), split personality of `j'
2018-02-17 19:15:55 +01:00
rlar
13d9ecd517
nupa_subcktcall(), some constness
2018-02-17 19:15:55 +01:00
rlar
06b71fe2d2
nupa_subcktcall(), use skip_non_ws()
2018-02-17 19:15:55 +01:00
rlar
fa1c710f68
nupa_subcktcall(), move code down to a better place
2018-02-17 19:15:55 +01:00
rlar
1987559e89
nupa_subcktcall(), drop redundant initialisation for `narg'
...
and delay its incrementation a bit
2018-02-17 19:15:55 +01:00
rlar
b8f4b3e27e
nupa_subcktcall(), fix excess length in pscopy argument
2018-02-17 19:15:55 +01:00
rlar
8190ba3fca
nupa_subcktcall(), fix, honour end of string
2018-02-17 19:15:55 +01:00
rlar
4859f7d8df
findsubname(), cleanup and use isspace_c()
2018-02-17 19:15:55 +01:00
rlar
784ad14d60
findsubname(), drop `ls_ptr'
2018-02-17 19:15:55 +01:00
rlar
d647a84e66
findsubname(), just truncate it
2018-02-17 19:15:55 +01:00
rlar
5e6fe75db6
findsubname(), collect decrement operations
2018-02-17 19:15:55 +01:00
rlar
31ad5ca970
findsubname(), decrement later
2018-02-17 19:15:55 +01:00
rlar
01eb593ca4
findsubname(), explicit break out of the loop
2018-02-17 19:15:55 +01:00
rlar
cbd38fdc9c
findsubname(), use skip_back_ws()
2018-02-17 19:15:55 +01:00
rlar
270e0b6154
findsubname(), cleanup
2018-02-17 19:15:55 +01:00
rlar
a5c743d48c
findsubname(), fix lvalues
2018-02-17 19:15:55 +01:00
rlar
21d3f04659
findsubname(), h ==> p_end - (const) s
2018-02-17 19:15:55 +01:00
rlar
8881aead44
findsubname(), cleanup
2018-02-17 19:15:55 +01:00
rlar
c8340f2b4c
findsubname(), fix lvalues
2018-02-17 19:15:55 +01:00
rlar
90bb7cc289
findsubname(), j ==> t - (const) s
2018-02-17 19:15:55 +01:00
rlar
1778b608d8
findsubname(), cleanup
2018-02-17 19:15:55 +01:00
rlar
8df5717017
findsubname(), fix lvalues
2018-02-17 19:15:55 +01:00
rlar
a7c2253c8a
findsubname(), k ==> p - (const) s - 1
2018-02-17 19:15:55 +01:00
rlar
623436c9f9
findsubname(), fix lvalues
2018-02-17 19:15:55 +01:00
rlar
521fee88a6
findsubname(), ls ==> ls_ptr - (const) s
2018-02-17 19:15:55 +01:00
rlar
4ca87d6b0b
findsubname(), reorder and add some constness
2018-02-17 19:15:55 +01:00
rlar
ab152c99fc
findsubname(), local scope for `nest' `j' and `h'
2018-02-17 19:15:55 +01:00
rlar
45f3749bb1
findsubname(), drop `found', which is constantly 0
...
because of the previous commit
2018-02-17 19:15:55 +01:00
rlar
f0cead24b8
findsubname(), duplicate function epilogue and return early
2018-02-17 19:15:55 +01:00
rlar
4986df1baf
findsubname(), signature, drop unused return value
2018-02-17 19:15:55 +01:00
rlar
af78917b98
stripbraces(), whitespace
2018-02-17 19:15:55 +01:00
rlar
11e024753a
stripbraces(), cleanup
2018-02-17 19:15:55 +01:00
rlar
13be771308
stripbraces(), s + i ==> p
2018-02-17 19:15:55 +01:00
rlar
ab15f0b7bb
stripbraces(), group `s + i'
2018-02-17 19:15:55 +01:00
rlar
0101db946b
stripbraces(), s0 ==> s
2018-02-17 19:15:55 +01:00
rlar
e4e408d656
stripbraces(), unuse local `s'
...
`s0' does not change in the area of interest and has the same value
2018-02-17 19:15:55 +01:00
rlar
cb859060e0
stripbraces(), drop `i_ptr'
2018-02-17 19:15:55 +01:00
rlar
951517250b
stripbraces(), fix lvalue and cleanup
2018-02-17 19:15:55 +01:00
rlar
d4dad0f10c
stripbraces(), i ==> i_ptr - (const) s
2018-02-17 19:15:55 +01:00
rlar
186352b7e5
stripbraces(), fix lvalue and cleanup
2018-02-17 19:15:55 +01:00
rlar
686329dcaf
stripbraces(), j ==> j_ptr - (const) s
2018-02-17 19:15:55 +01:00
rlar
fc45b3addf
stripbraces(), make `s' constant in the region of interest
2018-02-17 19:15:55 +01:00
rlar
170aa84f47
stripbraces(), drop `ls'
2018-02-17 19:15:55 +01:00
rlar
e2c2140a52
stripbraces(), drop `t_p', which points to a copy of `s'
2018-02-17 19:15:55 +01:00
rlar
8d0df0d024
stripbraces(), fix split personality of `i'
2018-02-17 19:15:55 +01:00
rlar
98ec9c2fa3
stripbraces(), use `strchr()'
2018-02-17 19:15:55 +01:00
rlar
26ff93abd9
stripbraces(), simplify
2018-02-17 19:15:55 +01:00
rlar
1721407359
transform(), use `strstr()' instead of `spos_()'
2018-02-17 19:15:55 +01:00
rlar
e28169d62c
transform(), reduce scope of `tstr'
2018-02-17 19:15:55 +01:00
rlar
f776a24ea7
transform(), ci_prefix() is case insensitive
...
thus can use `s' instead of `t'
and ci_prefix() does return a boolean
2018-02-17 19:15:55 +01:00
rlar
6500aeb132
transform(), drop local `n'
2018-02-17 19:15:55 +01:00
rlar
7cf4338981
transform(), drop unused argument `u_p'
2018-02-17 19:15:55 +01:00
rlar
ea6290f666
nupa_substitute(), cleanup and a fixme
...
the '&' sequences, which are hopefully nowhere announced and advertised,
might increment char pointers beyond the terminating '\0' causing havoc.
2018-02-17 19:15:55 +01:00
rlar
abb16c288b
nupa_substitute(), cleanup
2018-02-17 19:15:55 +01:00
rlar
0d3c0dfd78
nupa_substitute(), rename r_ --> r
2018-02-17 19:15:55 +01:00
rlar
a34703f748
nupa_substitute(), verify `r' beeing unused now
2018-02-17 19:15:55 +01:00
rlar
b0e5fc267c
nupa_substitute(), cleanup
2018-02-17 19:15:55 +01:00
rlar
cc02b9ae2d
nupa_substitute(), fix lvalue and cleanup
2018-02-17 19:15:55 +01:00
rlar
ac59410602
nupa_substitute(), ir ==> r_ - (const) r
2018-02-17 19:15:55 +01:00
rlar
0fd1e2323c
nupa_substitute(), express some constness
2018-02-17 19:15:55 +01:00
rlar
6c1d3ba34a
nupa_substitute(), whitespace
2018-02-17 19:15:55 +01:00
rlar
6b5606edc1
nupa_substitute(), cleanup return on error
2018-02-17 19:15:55 +01:00
rlar
cba740f88d
nupa_substitute(), postpone `s' incrementation
2018-02-17 19:15:55 +01:00
rlar
ad1eeeb410
nupa_substitute(), postpone `s' incrementation
2018-02-17 19:15:55 +01:00
rlar
39b544aba1
nupa_substitute(), cleanup
2018-02-17 19:15:55 +01:00
rlar
6a003e52d1
nupa_substitute(), cleanup for loops
2018-02-17 19:15:55 +01:00
rlar
ad603be96f
nupa_substitute(), cleanup for loops
2018-02-17 19:15:55 +01:00
rlar
c06dddc4db
nupa_substitute(), break sooner
2018-02-17 19:15:55 +01:00
rlar
baf76512b3
nupa_substitute(), reduce scope of d
2018-02-17 19:15:55 +01:00
rlar
55e7fa269a
nupa_substitute(), at the end of the loop d === *kptr
2018-02-17 19:15:55 +01:00
rlar
571909b8b6
nupa_substitute(), postpone kptr incrementation
2018-02-17 19:15:55 +01:00
rlar
d38804d7c0
nupa_substitute(), move final kptr incrementation out of the loop
2018-02-17 19:15:55 +01:00
rlar
f5448025a8
nupa_substitute(), postpone kptr incrementation
2018-02-17 19:15:55 +01:00
rlar
0aff4dfaa6
nupa_substitute(), transform while loop
2018-02-17 19:15:55 +01:00
rlar
ef1d896cee
nupa_substitute(), reduce scope of local variabes
2018-02-17 19:15:55 +01:00
rlar
bd335cb5be
nupa_substitute(), delay kptr assignment
2018-02-17 19:15:55 +01:00
rlar
ca84d10d0a
stripsomespace(), drop `ls'
2018-02-17 19:15:55 +01:00
rlar
cc05c0c05b
formula(), postpone kptr incrementation
2018-02-17 19:15:55 +01:00
rlar
abe572237f
formula(), postpone arg2 and arg3 incrementation
2018-02-17 19:15:55 +01:00
rlar
a35a2fd3db
formula(), cleanup for(;;) loop
2018-02-17 19:15:55 +01:00
rlar
3136f45229
formula(), move final kptr incrementation out of the loop
2018-02-17 19:15:55 +01:00
rlar
2010e6b4fb
formula(), kptr++ to the for loop epilogue
2018-02-17 19:15:55 +01:00
rlar
c761b4432a
formula(), transform while loop
2018-02-17 19:15:55 +01:00
rlar
11adf9f62c
findsubckt(), cleanup
2018-02-17 19:15:55 +01:00
rlar
6a9248f111
findsubckt(), use skip_back_ws()
2018-02-17 19:15:55 +01:00
rlar
9bccda5450
findsubckt(), cleanup
2018-02-17 19:15:55 +01:00
rlar
9e1a6b85ff
findsubckt(), swap name_b and name_e in the prolog
2018-02-17 19:15:55 +01:00
rlar
61f3ecffd6
findsubckt(), rename k_ptr --> name_b
2018-02-17 19:15:55 +01:00
rlar
23b741868b
findsubckt(), cleanup
2018-02-17 19:15:55 +01:00
rlar
51405f8ee7
findsubckt(), fix lvalue
2018-02-17 19:15:55 +01:00
rlar
b3c40a77cf
findsubckt(), j_ptr --> name_e - 1
2018-02-17 19:15:55 +01:00
rlar
3d9a76d342
findsubckt(), drop k_ptr--, use k_ptr - 1 instead
2018-02-17 19:15:55 +01:00
rlar
8cd136c6bd
findsubckt(), move k_ptr-- beyond the loop
2018-02-17 19:15:55 +01:00
rlar
b0b4551d68
findsubckt(), move k_ptr-- to the front of the next loop
2018-02-17 19:15:54 +01:00
rlar
d2dac0ea9d
findsubckt(), move k_ptr-- beyond the loop
2018-02-17 19:15:54 +01:00
rlar
e1f5609568
findsubckt(), exclude the terminating '\0' from the search
2018-02-17 19:15:54 +01:00
rlar
a0f9b2bf0f
findsubckt(), cleanup
2018-02-17 19:15:54 +01:00
rlar
f4bd03a00f
findsubckt(), transform pscopy(,x,y,) --> pscopy(,x+y,y-y,) (requirement strlen(x) >= y to be verified later)
2018-02-17 19:15:54 +01:00
rlar
c486218e33
findsubckt(), cleanup
2018-02-17 19:15:54 +01:00
rlar
a9c2f81878
findsubckt(), fix lvalue
2018-02-17 19:15:54 +01:00
rlar
940eb2a258
findsubckt(), j ==> j_ptr - (const) s
2018-02-17 19:15:54 +01:00
rlar
cd05eb1d50
findsubckt(), fix lvalue
2018-02-17 19:15:54 +01:00
rlar
78147c2bd9
findsubckt(), k ==> k_ptr - (const) s
2018-02-17 19:15:54 +01:00
rlar
81b60b7367
findsubckt(), constness
2018-02-17 19:15:54 +01:00
rlar
849d12b18a
defsubckt(), rename j_ptr ==> s_end
2018-02-17 19:15:54 +01:00
rlar
948352a2ed
defsubckt(), drop i_ptr, use s instead
2018-02-17 19:15:54 +01:00
rlar
82d4f8544c
defsubckt(), check `s' beeing nowhere used anymore
2018-02-17 19:15:54 +01:00
rlar
a46e1113d0
defsubckt(), drop `ls_ptr'
2018-02-17 19:15:54 +01:00
rlar
10e9760f13
defsubckt(), transform pscopy(,x,y,) --> pscopy(,x+y,y-y,) (requirement strlen(x) >= y to be verified later)
2018-02-17 19:15:54 +01:00
rlar
44a17a14f7
defsubckt(), cleanup
2018-02-17 19:15:54 +01:00
rlar
9a64579db6
defsubckt(), fix lvalue
2018-02-17 19:15:54 +01:00
rlar
d73a265c45
defsubckt(), j ==> j_ptr - (const) s
2018-02-17 19:15:54 +01:00
rlar
1a44e4fb42
defsubckt(), fix lvalue
2018-02-17 19:15:54 +01:00
rlar
6d285d927a
defsubckt(), i ==> i_ptr - (const) s
2018-02-17 19:15:54 +01:00
rlar
deca1a05ed
defsubckt(), fix lvalue
2018-02-17 19:15:54 +01:00
rlar
4e89b80a75
defsubckt(), ls ==> ls_ptr - (const) s
2018-02-17 19:15:54 +01:00
rlar
dbcbf62012
defsubckt(), constness
2018-02-17 19:15:54 +01:00
rlar
27884d2512
nupa_assignment(), postpone p++
2018-02-17 19:15:54 +01:00
rlar
f0fa06ea26
nupa_assignment(), whitespace
2018-02-17 19:15:54 +01:00
rlar
0624584370
nupa_assignment(), simplify error processing
2018-02-17 19:15:54 +01:00
rlar
66433eda0b
nupa_assignment(), cleanup
2018-02-17 19:15:54 +01:00
rlar
8bded8b878
nupa_assignment(), cleanup
2018-02-17 19:15:54 +01:00
rlar
8f9f03c457
nupa_assignment(), fix lvalues
2018-02-17 19:15:54 +01:00
rlar
0e6ece4370
nupa_assignment(), ls ==> s_end - (const) s
2018-02-17 19:15:54 +01:00
rlar
410e70b9b9
nupa_assignment(), express some constness
2018-02-17 19:15:54 +01:00
rlar
5f0958026b
nupa_assignment(), cleanup
2018-02-17 19:15:54 +01:00
rlar
ba2c95243f
nupa_assignment(), fix lvalues
2018-02-17 19:15:54 +01:00
rlar
8300021c7a
nupa_assignment(), i ==> p - (const) s
2018-02-17 19:15:54 +01:00
rlar
f595db7619
nupa_assignment(), express some constness
2018-02-17 19:15:54 +01:00
rlar
35524f7e48
getexpress(), rename ls_ptr --> s_end
2018-02-17 19:15:54 +01:00
rlar
043a04b775
getexpress(), simplify usage
2018-02-17 19:15:54 +01:00
rlar
830b5faf0e
getexpress(), return one less
2018-02-17 19:15:54 +01:00
rlar
33b8936a3b
getexpress(), drop `c' and cleanup
2018-02-17 19:15:54 +01:00
rlar
f8fc4edf52
getexpress(), remove const, `pi' and rename xia_ptr --> s
2018-02-17 19:15:54 +01:00
rlar
9494f8d9af
getexpress(), change signature, return char * to continue with
2018-02-17 19:15:54 +01:00
rlar
0c363d7b4f
getexpress(), return `tpe' per reference
2018-02-17 19:15:54 +01:00
rlar
49bdcc3e3d
getexpress(), drop first argument `ls_ptr'
2018-02-17 19:15:54 +01:00
rlar
4bbff47518
getexpress(), first arg s ==> s + strlen(s)
2018-02-17 19:15:54 +01:00
rlar
7fc7202bdf
getexpress(), `p' doesn't need to be initialised here
2018-02-17 19:15:54 +01:00
rlar
4a6c7db226
getexpress(), break early
...
instead of doing nothing and then breaking
2018-02-17 19:15:54 +01:00
rlar
8a3871a0ef
getexpress(), transform loop
2018-02-17 19:15:54 +01:00
rlar
92eb2b0437
getexpress(), break early
...
instead of doing nothing and then breaking anyway
2018-02-17 19:15:54 +01:00
rlar
2f24e6e563
getexpress(), local scope for `c' and `d'
2018-02-17 19:15:54 +01:00
rlar
86ef4b8cb1
getexpress(), transform loop
2018-02-17 19:15:54 +01:00
rlar
1df1e69f5d
getexpress(), d == ')' is automatically true
...
when level has been decremented to level <= 0
2018-02-17 19:15:54 +01:00
rlar
1e6a44af27
getexpress(), transform
2018-02-17 19:15:54 +01:00
rlar
0cc72ae3c1
getexpress(), always true
2018-02-17 19:15:54 +01:00
rlar
f87c629e1b
getexpress(), break
2018-02-17 19:15:54 +01:00
rlar
9ace8b161f
getexpress(), scope
2018-02-17 19:15:54 +01:00
rlar
f2013088a6
getexpress(), transform `<' etc comparisons
2018-02-17 19:15:54 +01:00
rlar
d1b25d59bb
getexpress(), cleanup
2018-02-17 19:15:54 +01:00
rlar
a913def4d7
getexpress(), cleanup
2018-02-17 19:15:54 +01:00
rlar
ec68ee7b94
getexpress(), fix lvalues
2018-02-17 19:15:54 +01:00
rlar
9ff93246b6
getexpress(), ia_ptr ==> xiaptr + 1
2018-02-17 19:15:54 +01:00
rlar
47db566181
getexpress(), cleanup
2018-02-17 19:15:54 +01:00
rlar
4402686c69
getexpress(), fix lvalues
2018-02-17 19:15:54 +01:00
rlar
6da6f6a4fd
getexpress(), iptr ==> p + 1
2018-02-17 19:15:54 +01:00
rlar
7509fa17da
getexpress(), transform pscopy(,x,y,) --> pscopy(,x+y,y-y,) (requirement strlen(x) >= y to be verified later)
2018-02-17 19:15:54 +01:00
rlar
0f00fd3043
getexpress(), cleanup
2018-02-17 19:15:54 +01:00
rlar
a47348526c
getexpress(), fix lvalues
2018-02-17 19:15:54 +01:00
rlar
dc8eb2b956
getexpress(), ia ==> ia_ptr - (const) s
2018-02-17 19:15:54 +01:00
rlar
44c5410490
getexpress(), fix lvalue
2018-02-17 19:15:54 +01:00
rlar
632829575b
getexpress(), ls ==> ls_ptr - (const) s
2018-02-17 19:15:54 +01:00
rlar
f19ddf6090
getexpress(), fix lvalues
2018-02-17 19:15:54 +01:00
rlar
c351f2f19b
getexpress(), i ==> iptr - (const) s
2018-02-17 19:15:54 +01:00
rlar
d4098d454b
getexpress(), third argument, `char **pi' instead of `int *pi'
2018-02-17 19:15:54 +01:00
rlar
57b822e0e9
getexpress(), express some constness
2018-02-17 19:15:54 +01:00
rlar
d9a2cec430
getword(), drop s_end argument, which is always == s + strlen(s)
2018-02-17 19:15:54 +01:00
rlar
c5966489c9
getword(), return one less
2018-02-17 19:15:54 +01:00
rlar
f5d686e23c
getword(), cleanup
2018-02-17 19:15:54 +01:00
rlar
51c9f93b7a
getword(), substitue s = s - 1
2018-02-17 19:15:54 +01:00
rlar
f96eb16255
getword(), (s < x) ==> (s - 1 < x - 1)
2018-02-17 19:15:54 +01:00
rlar
cc452a4c90
getword(), transform while loop
2018-02-17 19:15:54 +01:00
rlar
d6801c0cf1
getword(), substitute s = s - 1
2018-02-17 19:15:54 +01:00
rlar
68b0be8caa
getword(), (s <= x) --> (s - 1 < x)
2018-02-17 19:15:54 +01:00
rlar
10aaa7bcc0
getword(), rename variables
2018-02-17 19:15:54 +01:00
rlar
ba4d81b2d9
getword(), reorder args
2018-02-17 19:15:54 +01:00
rlar
6ca0c74cbf
getword(), pass s_end instead of s
2018-02-17 19:15:54 +01:00
rlar
3f24aa4ea0
getword(), cleanup
2018-02-17 19:15:54 +01:00
rlar
d17bcbc276
getword(), change signature
2018-02-17 19:15:54 +01:00
rlar
d3d966b027
getword(), cleanup
2018-02-17 19:15:54 +01:00
rlar
52ec0a262c
getword(), fix lvalue
2018-02-17 19:15:54 +01:00
rlar
2514664f7a
getword(), ls ==> ls_ptr - (const) s
2018-02-17 19:15:54 +01:00
rlar
d5893cd1cb
getword(), fix lvalues
2018-02-17 19:15:54 +01:00
rlar
51dc7037d3
getword(), i ==> iptr - (const) s
2018-02-17 19:15:54 +01:00
rlar
051c3f4137
getword(), third argument, `char **pi' instead of `int *pi'
2018-02-17 19:15:54 +01:00
rlar
6ba5a05905
getword(), drop `after' argument which is identical to `*pi'
2018-02-17 19:15:54 +01:00
rlar
cf9c3fc4f8
getword(), express some constness
2018-02-17 19:15:54 +01:00
rlar
6a72c09b5f
insertnumber(), return char pointer instead of integer index
2018-02-17 19:15:54 +01:00
rlar
34e37f393c
insertnumber(), rename s_ ==> s
2018-02-17 19:15:54 +01:00
rlar
1f15329745
insertnumber(), drop second argument
2018-02-17 19:15:54 +01:00
rlar
9f6173cd0b
insertnumber(), add second arg on invocation
2018-02-17 19:15:54 +01:00
rlar
a2ddc6bf2a
insertnumber(), express some constness
2018-02-17 19:15:54 +01:00
rlar
b41b8e7138
insertnumber(), add `i' on invocation
2018-02-17 19:15:54 +01:00
rlar
160529cf59
insertnumber(), express some constness
2018-02-17 19:15:54 +01:00
rlar
e8bc7df5c3
insertnumber(), emphasize return i + ...
2018-02-17 19:15:54 +01:00
rlar
06501162e5
nupa_substitute(), make use of the transformations
2018-02-17 19:15:54 +01:00
rlar
2a446c2119
nupa_substitute(), use `strncasecmp()'
2018-02-17 19:15:54 +01:00
rlar
c036fa0519
nupa_substitute(), cleanup
2018-02-17 19:15:54 +01:00
rlar
81cb1ed674
nupa_substitute(), drop s_
2018-02-17 19:15:54 +01:00
rlar
5416ecaab9
nupa_substitute(), rename iptr --> s
2018-02-17 19:15:54 +01:00
rlar
18f69116e8
nupa_substitute(), verify `s' beeing unused now
2018-02-17 19:15:54 +01:00
rlar
03abdc65f5
nupa_substitute(), cleanup
2018-02-17 19:15:54 +01:00
rlar
53b23cf4b6
nupa_substitute(), transform pscopy(,x,y,) --> pscopy(,x+y,y-y,) (requirement strlen(x) >= y to be verified later)
2018-02-17 19:15:54 +01:00
rlar
8e69f7e70a
nupa_substitute(), cleanup
2018-02-17 19:15:54 +01:00
rlar
0bea4987c4
nupa_substitute(), fix lvalues
2018-02-17 19:15:54 +01:00
rlar
b47123ac6a
nupa_substitute(), i ==> iptr - (const) s
2018-02-17 19:15:54 +01:00
rlar
b832578f0e
nupa_substitute(), fix lvalues
2018-02-17 19:15:54 +01:00
rlar
ccf34637b3
nupa_substitute(), k ==> kptr - (const) s
2018-02-17 19:15:54 +01:00
rlar
551aae4b05
nupa_substitute(), drop ls
2018-02-17 19:15:54 +01:00
rlar
4af5a78bb5
nupa_substitute(), ls ==> s_end - (const) s
2018-02-17 19:15:54 +01:00
rlar
fb3a1be6a5
nupa_substitute(), express some constness
2018-02-17 19:15:54 +01:00
rlar
aa5d48da3b
nupa_substitute(), drop unused argument `err'
2018-02-17 19:15:54 +01:00
rlar
e212566176
evaluate_variable(), change signature, pass substring instead of string
...
side effect:
string `t' is no longer globally upcased, which is is of no consequence
for the single place where evaluate_variable() is invoked
2018-02-17 19:15:54 +01:00
rlar
3f7951d187
evaluate_expr(), change signature, pass substring instead of string
2018-02-17 19:15:54 +01:00
rlar
7aa3664157
numparam, drop some typedefs
2018-02-17 19:15:54 +01:00
rlar
fa14255fc9
numparam, use `strtoupper()', drop `stupcase()'
2018-02-17 19:15:54 +01:00
rlar
a0a3f48227
numparam/xpressn.c, remove an artifact
2018-02-17 19:15:54 +01:00
rlar
7b175dd1c4
numparam, drop unused `srcfile'
2018-02-17 19:15:54 +01:00
rlar
4f8bef997d
numparam, nupa_signal(), drop useless return value
2018-02-17 19:15:54 +01:00
rlar
5b194f1679
numparam, drop unused stuff
2018-02-17 19:15:54 +01:00
rlar
15e8fab975
numparam, use `trunc()'
2018-02-17 19:15:54 +01:00
rlar
31ca73a6f0
numparam, use `isdigit_c()'
2018-02-17 19:15:54 +01:00
rlar
e88e75a8d4
numparam, use `toupper_c()'
2018-02-17 19:15:54 +01:00
rlar
6d5b968464
numparam, use `tolower_c()'
2018-02-17 19:15:54 +01:00
rlar
3b0a595ecf
numparam/mystring.c, drop defect and unused `ccopy()'
2018-02-17 19:15:54 +01:00
rlar
db8f8fc062
numparam/mystring.c, fix `pscopy()' and `pscopy_up()'
2018-02-17 19:15:54 +01:00
rlar
6a328ef609
numparam, drop `length()'
2018-02-17 19:15:54 +01:00
rlar
15dd80c0e7
numparam, drop `cpos()'
2018-02-17 19:15:54 +01:00
rlar
e324e4aac3
numparam/spicenum.c, use type `bool'
2018-02-17 19:15:54 +01:00
rlar
cd260cf45a
numparam/spicenum.c, stripsomespace(), cleanup
2018-02-17 19:15:54 +01:00
rlar
a9a8afa12d
numparam/xpressn.c, split `evaluate()' into two functions
2018-02-17 19:15:54 +01:00
rlar
6da961c3f1
numparam/xpressn.c, evaluate(), drop local `numeric'
...
and return instantly when formula() reports an error
2018-02-17 19:15:54 +01:00
rlar
7549b3409e
numparam/xpressn.c, abstraction, introduce `double_to_string()'
2018-02-17 19:15:54 +01:00
rlar
6d4fc501bd
numparam/xpressn.c, evaluate_variable(), cleanup `for' loop
2018-02-17 19:15:54 +01:00
rlar
fdfaf0c84a
numparam/xpressn.c, don't mess the case of quoted strings
...
and drop `dico_t.option' which is nowhere set
2018-02-17 19:15:54 +01:00
rlar
23f6d51c67
numparam/xpressn.c, evaluate(), drop local `done' and `lq'
...
no longer limit the length of a quoted string parameter
2018-02-17 19:15:54 +01:00
rlar
e970e8c4ea
numparam/xpressn.c, evaluate(), drop `dt'
2018-02-17 19:15:54 +01:00
rlar
00c3d2f79e
numparam/xpressn.c, drop `getidtype()'
2018-02-17 19:15:54 +01:00
rlar
34040a592d
numparam, #3/3, remove global `nupa_inst_name'
2018-02-17 19:15:54 +01:00
rlar
1bf2590caa
numparam, #2/3, avoid global `nupa_inst_name'
2018-02-17 19:15:53 +01:00
rlar
ca4278685d
numparam, #1/3, avoid global `nupa_inst_name'
2018-02-17 19:15:53 +01:00
rlar
495eef349d
numparam/xpressn.c, nupa_subcktcall(), drop unused `err' argument
2018-02-17 19:15:53 +01:00
rlar
979175fbc6
numparam/xpressn.c, findsubckt(), drop unused `subname' argument
2018-02-17 19:15:53 +01:00
rlar
f42c8d60b4
numparam/spicenum.c, use `copy_substring()'
2018-02-17 19:15:53 +01:00
rlar
49e03cdcb2
numparam, entry_type, #5/5, rewrite to get rid of 'NUPA_SPACE'
...
use fact: 'entry' !== NULL
2018-02-17 19:15:53 +01:00
rlar
c761c74a22
numparam, entry_type, #4/5, drop 'nolookup' which has known value here
2018-02-17 19:15:53 +01:00
rlar
b7b6d9ace3
numparam, entry_type, #3/5, drop unused 'NUPA_POINTER'
...
'NUPA_POINTER' is nowhere assigned to storage
thus 'nupa_type' variables can never have this value
2018-02-17 19:15:53 +01:00
rlar
09d92ba692
numparam, entry_type, #2/5, use a type-checked enum for 'nupa_type'
2018-02-17 19:15:53 +01:00
rlar
6a1c9f934c
numparam, entry_type, #1/5, introduce typedef 'nupa_type'
2018-02-17 19:15:53 +01:00
rlar
21f2187530
numparam/xpressn.c, #5/5, drop unused assignment
2018-02-17 19:15:53 +01:00
rlar
1820f5547f
numparam/xpressn.c, #4/5, use a local 'c' instead of 'dt'
2018-02-17 19:15:53 +01:00
rlar
85f48726ea
numparam/xpressn.c, #3/5, whitespace
2018-02-17 19:15:53 +01:00
rlar
146ca72153
numparam/xpressn.c, #2/5, cleanup, drop 'err' and return early
2018-02-17 19:15:53 +01:00
rlar
303d78f616
numparam/xpressn.c, #1/5, cleanup, rewrite upside down
...
and use known variable values to instantly 'return'
instead of skipping some 'if' bodies
2018-02-17 19:15:53 +01:00
rlar
bc0782aba1
numparam, #4/4, defsubckt(), use struct card * argument
2018-02-17 19:15:53 +01:00
rlar
2a149d7541
numparam, #3/4, nupa_scan(), use struct card * argument
2018-02-17 19:15:53 +01:00
rlar
77da3c6f26
numparam, #2/2, nupa_copy(), use struct card * argument
2018-02-17 19:15:53 +01:00
rlar
19dfaf03f3
numparam, #1/2, nupa_eval(), use struct card * argument
2018-02-17 19:15:53 +01:00
rlar
ee489599cb
struct card, #6/6, drop some redundant casts
2018-02-17 19:15:53 +01:00
rlar
4ec2717079
struct card, #5/6, rewrite from type "card" to "struct card"
2018-02-17 19:15:53 +01:00
rlar
10a353ebf4
struct card, #4/6, drop typedef card
...
For readability and to allow variables to have the name "card"
(avoid name collision with typedef "card")
2018-02-17 19:15:53 +01:00
rlar
511cdd7188
struct card, #3/6, rename members from struct line to struct card
2018-02-17 19:15:53 +01:00
rlar
981fed70ca
struct card, #2/6, drop struct line
...
struct line is an overlay of struct card.
2018-02-17 19:15:53 +01:00
rlar
8d93511a96
struct card, #1/6, minor cleanup
2018-02-17 19:15:53 +01:00
rlar
121a46f9cb
frontend/com_alias.c, asubst(), bug fix
...
wl_word can not be incremented,
this is a pointer to malloc'ed space
and will eventually be free'ed
2018-02-17 15:30:06 +01:00
rlar
41c0ee45a2
introduce GENinstanceFree() and GENmodelFree()
...
To abstract away the business of releasing the memory
of a struct GENmodel or struct GENinstance.
2018-02-17 11:53:07 +01:00
rlar
8c7d7051ae
GENmodel, GENinstance, change layout, #4/4, complete the change
...
currently each and every device specific instance and model structure
duplicates the memory layout of a struct GENmodel / GENinstance
further the first structure elements behind a GENinstance header
are reinterpreted as a sort of a generic "node" array.
This business is very error prone, and makes it difficult to
extend struct GENmodel / struct GENinstance.
This patch makes this business much more bearable.
2018-02-17 11:53:06 +01:00
rlar
2c9bfecbad
GENmodel, GENinstance, change layout, #3/4, coccinelle semantic patch
2018-02-17 11:53:05 +01:00
rlar
c25aea6815
GENmodel, GENinstance, change layout, #2/4, complete the change
...
fix the .xml files too
2018-02-17 11:53:03 +01:00
rlar
2dcb79d09c
GENmodel, GENinstance, change layout, #1/4, coccinelle semantic patch
2018-02-17 11:53:01 +01:00
rlar
4748c92de9
DEVdestroy(), change API, #2/2, complete the change, inclusive CKTdestroy()
...
loop over DEVmodDelete() and DEVdelete() in CKTdestroy()
instead of doing this business in the DEVdestroy() functions.
As a consequence, most DEVdestroy() functions
collapse completely.
2018-02-17 11:52:59 +01:00
rlar
1befa488f6
DEVdestroy(), change API, #1/2, coccinelle semantic patch
2018-02-17 11:52:58 +01:00
rlar
b29ad51a6c
DEVdestroy(), move code over to DEVmodDelete() and DEVdelete()
...
This patch itself is not valid until all invokers of DEVdestroy()
(currently this is CKTdestroy() exclusively)
are rewritten to invoke DEVmodDelete() and DEVdelete()
2018-02-17 11:52:55 +01:00
rlar
3cd81295a8
DEVmodDelete(), change API, #2/2, complete the change
...
Instead of searching and then deleting a given device-model,
just delete the given model.
The search shall be done somewhere else.
Don't free the model struct itself,
this shall be done by the invoker himself.
Don't free the device instrance list,
this shall be done by the invoker himself.
As a consequence, most DEVmodDelete() functions
collapse almost completely.
This change is of no consequence,
because DEVmodDelete() is currently nowhere used.
2018-02-17 11:52:53 +01:00
rlar
b17ee71576
DEVmodDelete(), change API, #1/2, coccinelle semantic patch
2018-02-17 11:52:51 +01:00
rlar
50e9a8c3b6
DEVmodDelete(), extend ASRCdelete() and use it in ASRCmDelete()
...
rip instance specific cleanup business from the ASRCmDelete() function.
move this to ASRCdelete()
2018-02-17 11:52:49 +01:00
rlar
c3ed42f486
DEVdelete(), change API, #2/2, complete the change
...
Instead of searching and then deleting a given device-instance,
just delete the given instance.
The search shall be done somewhere else.
Don't free the instance struct itself,
this shall be done by the invoker.
As a consequence most DEVdelete() functions
collapse almost completely.
This change is of no consequence,
because DEVdelete() is currently nowhere used.
2018-02-17 11:52:46 +01:00
rlar
e0f1e5a3de
DEVdelete(), change API, #1/2, coccinelle semantic patch
2018-02-17 11:52:44 +01:00
rlar
a8e440eabe
whitespace cleanup, comments cleanup, line wrap
2018-02-14 18:53:30 +01:00
rlar
ec4b7ffecd
adms/admst/ngspiceMODULE*.c.xml, drop "register" declaration
2018-02-12 17:56:00 +01:00
rlar
57f9804db6
devices/adms/admst/ngspiceMODULEdel.c.xml, bug fix, endless loop
...
A missing update of "prev" would cause endless looping
when searching for a device instance.
introduced in commit:
> commit 38e68869a2
> Date: Wed Mar 1 14:30:24 2006 +0000
>
> Added mdel, del and dest functions to interface.
2018-02-12 17:55:59 +01:00
rlar
cd95ad62f2
devices/ndev/ndevdel.c, remove a redundant `return'
2018-02-12 17:55:58 +01:00
rlar
efbb7badbc
extend commit: spicelib/devcies/*dest.c, rewrite DEVdestroy() functions
...
rewrite admst/ngspiceMODULEdest.c.xml too, see commit
> commit 4d79617cf1
> Date: Fri Jul 29 22:22:16 2016 +0200
>
> spicelib/devcies/*dest.c, rewrite DEVdestroy() functions
2018-02-12 17:55:57 +01:00
rlar
88c50afcd9
parser/inpdpar.c, #6/6, cleanup, introduce find_instance_parameter()
2018-02-03 17:54:15 +01:00
rlar
cf0c9eac06
parser/inpdpar.c, #5/6, cleanup, use a local `IFparm *'
2018-02-03 17:54:06 +01:00
rlar
f88cfa5d55
parser/inpdpar.c, #4/6, cleanup, use a local `IFdevice *'
2018-02-03 17:53:57 +01:00
rlar
36f3263727
parser/inpdpar.c, #3/6, cleanup, whitespace
2018-02-03 17:53:48 +01:00
rlar
4140af6d29
parser/inpdpar.c, #2/6, cleanup, use a 'switch'
2018-02-03 17:53:38 +01:00
rlar
eb86a66146
parser/inpdpar.c, #1/6, cleanup, search, break then process
2018-02-03 17:53:28 +01:00