Commit Graph

6733 Commits

Author SHA1 Message Date
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
rlar bdf6091da7 parser/inpgmod.c, #6/6, cleanup, introduce find_model_parameter() 2018-02-03 17:29:33 +01:00
rlar 45e98db44c parser/inpgmod.c, #5/6, cleanup, loop with a `IFparm *' 2018-02-03 17:29:32 +01:00
rlar b75aba17a4 parser/inpgmod.c, #4/6, cleanup, use a local `IFdevice *' 2018-02-03 17:29:32 +01:00
rlar 63df147cdb parser/inpgmod.c, #3/6, cleanup, local variables 2018-02-03 17:29:32 +01:00
rlar ac34d19c94 parser/inpgmod.c, #2/6, cleanup, fuse the if's 2018-02-03 17:29:32 +01:00
rlar edceabbb54 parser/inpgmod.c, #1/6, cleanup, search, break then process 2018-02-03 17:29:30 +01:00
rlar 6c71fef6f6 parser/inpgmod.c, create_model(), drop obfuscated 'txl' processing
Dependent on given R and L parameter values,
  "txl" models might be transformed to "cpl" models in INPdomodel().
This would cause a "unrecognized parameter" warning in create_model()
  when searching for the "txl" flag in the "cpl" model,
  which is avoided with some awkward extra processing in inpgmod.c

This commit removes this special processing
  by addition of an "alias" parameter "txl" to the
  "cpl" module parameter description CPLmPTable[] in "cpl.c"

Note,
  setModelParm() is a no-op for "cpl" and "txl"
  see case CPL_MOD_R in
    function CPLmParam()
  and case TXL_MOD_R in
    function TXLmParam()
2018-02-03 15:55:22 +01:00
rlar aa27c8969c parser/inpgmod.c, fix an almost bug, (level=...)
When 'level' is a valid model parameter,
  then it was processed like any other parameter,
but additionally the
  `if (strcmp(parm, "level") == 0)'
invoked INPgetValue() a second time.

This special processing is meant to allow "level" for all models
  whether they make use of it or not.

The excess invocation of INPgetValue() didn't cause harm,
  merely because the next token after the "level=number"
almost necessarily is a string (the beginning "name=" of the next assignment)
thus not a parse-able number,
thus the second INPgetValue() didn't modify the 'line' pointer.

To sanitise the code invoke the "level" skipping only if "level"
  is not recognised as a valid model parameter.
2018-02-03 15:39:20 +01:00
rlar 668123ae44 analysis/cktpname.c, #4/4, cleanup 2018-02-03 13:17:17 +01:00
rlar 30550370fb analysis/cktpname.c, #3/4, cleanup obfuscated loop termination 2018-02-03 13:16:40 +01:00
rlar d85ceb85cb analysis/cktpname.c, #2/4, cleanup, use a local `IFparm *' 2018-02-03 13:16:12 +01:00
rlar 1d60387617 analysis/cktpname.c, #1/4, cleanup, use a local `IFdevice *' 2018-02-03 13:16:01 +01:00
rlar fbc1f37b36 mif/mifdelete.c, fix commit: xspice, implement "CALLBACK"
MIFdelete() might be called with third arg being NULL,
  searching for the instance to be deleted by name only.
Need to invoke the callback in this case too.
2018-02-03 12:20:23 +01:00
rlar e311096429 gendef.h, get rid of awkward counted GENnode macros 2018-02-03 11:46:24 +01:00
rlar 018a2d0e2f devices/*, unify, add missing instance struct member 'GENstate'
to the generic part of all instance structs, even when actually unused.
see GENstate in "gendefs.h"
2018-02-03 11:46:24 +01:00
rlar 9f68d8cd68 devices/*, fix spelling of some struct members 2018-02-03 09:46:13 +01:00
rlar f53384da70 devices/*, USE_OMP, cleanup 'InstanceArray' usage
store 'InstanceArray' in the very first module only,
  NULL it in any other.

FREE() it in every module to treat them all the same in XXXdestroy()
2018-02-02 23:03:55 +01:00
rlar 93b62297d8 devices/mos6, add missing files mos6del.c and mos6mdel.c
this is a plain copy from mos3
2018-02-02 22:53:43 +01:00
rlar fb6b4adaa5 devices/bsimsoi/b4soidest.c, fix commit: "OpenMP for B4SOI version 4.3.1"
> commit 39c98ad798
> Date:   Fri Jul 2 09:35:05 2010 +0000
>
>     OpenMP for B4SOI version 4.3.1
2018-02-02 22:35:59 +01:00
rlar 3763f9914e devices/nbjt/nbjtdefs.h, fix commit: "mark end of struct GENmodel overlay"
> commit 3794c1eb20
> Date:   Sat Jun 22 18:40:48 2013 +0200
>
>     mark end of struct GENmodel overlay
2018-02-02 22:24:10 +01:00
rlar caf3115733 cleanup, emphasise CKTrhs being an array
when accessing slot [0]
2018-01-29 19:51:13 +01:00
Holger Vogt 560cb6e970 plotting/grid.c, bug fix, avoid string buffer overflow
Prevent a crash of example/FFT_test.cir.
Buffer 'buf' in function drawlingrid() has been too small.
Increase 'buf' size, and add some protection.

The example file examples/plot/test-small-plot.cir
shows the limits of plotting:
  difference in two numbers at digit 14 is plotted well.
                            at digit 15 is plotted with bugs.
                            at digit 16 is reduced to integer.

consider compiling with
  -O1 -D_FORTIFY_SOURCE=2
for gcc, and
  /GS
for visual studio.
2018-01-27 21:58:15 +01:00
rlar c892b2d460 analysis/acan.c, check for valid startfreq
an 'ac dec' or 'ac oct' can not have a startfreq <= 0
2018-01-20 10:55:26 +01:00
rlar c5d8ad792e analysis/acsetp.c, ac analysis, allow frequency=0 2018-01-15 19:04:52 +01:00
rlar 57a0a5dec0 devices/bjt/bjttemp.c, bug fix, capacity temperature dependency
Fix a very old bug in the implementation of the
  gummel-poon model formulas for the junction capacities.
  (already in spice3f4)
For unknown reasons, the same formulas in the
  diode mos1 mos2 mos6 jfet models
have been implemented correctly right from the beginning,
the typo was bjt specific.

Many Thanks for the concise and precise Bug Report
  provided by Schabo Rumanus on the ngspice-users mailing list
> To: ngspice-users@lists.sourceforge.net
> Subject: [Ngspice-users] Temperatursimulation von Sperrschichtkapazitäten

Many Thanks to Dietmar Warning for his thorough verification
  of this commit.
2017-12-20 18:02:13 +01:00
rlar f0159cbd0b numparam/spicenum.c, stripbraces(), bug fix
overwriting SPICE_DSTRING `dstr_p' may invalidate `s'

This bug was injected with the introduction of SPICE_DSTRING in :
> commit 76feebbbfa
> Date:   Thu Feb 25 21:43:03 2010 +0000
>     various bug fixes
2017-11-13 20:36:49 +01:00
rlar 84761c125f fix erfc() usage in cider
cider relied on our broken ngspice variant of erfc() which behaved as
  erfc_ngspice(x) = erfc(fabs(x))

Note:
  apart from cider, erfc is used in
    devices/ltra/ltramisc.c
      always with positive argument
  and
    src/frontend/spec.c
      again always with positive argument
Thus, the difference in implementation
 never mathered anywhere except in cider
2017-10-28 12:38:36 +02:00
rlar c900cc8824 drop ngspice internal implementation of erfc()
which these days is guaranteed to be provided by <math.h>

note,
  our own implementation was incorrect anyway.
  it evaluated to
    erfc_ngspice(x) = erfc(fabs(x))
2017-10-28 12:38:32 +02:00
rlar ca57447f6c fix commit "devices/bsim3v32: apply Area Calculation Method (ACM) to the bsim3v3.2.4 model"
which moved processing of several parameters into a new function
  ACM_SourceDrainResistances()
but did so incompletely.

As a consequence the matrix footprint was not correctly modified
 when source or drainresistance is zero

Thanks for the bug report by "Sto" in message
>  bug: mosfet models with deliberate NRD=0 (ngspice-27)
https://sourceforge.net/p/ngspice/discussion/133842/thread/fa39228d
2017-10-21 20:22:43 +02:00
Holger Vogt f868418d13 ACM_SourceDrainResistances(), fix misleading signature
This function does return resistance, not conductance.
2017-10-21 20:21:34 +02:00
rlar 57f3d35ddc devices/res, #6/6, rename variables back to their original names
strip the X in RESconductX, REScurrentX, RESacConductX
2017-10-21 19:05:28 +02:00
rlar 93ab0fb0e0 devices/res, #5/6, RESconduct, include RESm
Henceforward RESconduct (renamed to RESconductX) shall include factor RESm.
That's a mere rewrite and doesn't change functionality.
2017-10-21 19:05:28 +02:00
rlar afd5147f98 devices/res, #4/6, RESacConduct, include RESm
Henceforward RESacConduct (renamed to RESacConductX) shall include factor RESm.
That's a mere rewrite and doesn't change functionality.
2017-10-21 19:05:28 +02:00
rlar 6941c43673 devices/res, #3/6, RESacConduct, collect RESm
Reshape the sourcecode to emphasize the RESm * RESacConduct affiliation.
That's a mere rewrite and doesn't change functionality.
2017-10-21 19:05:28 +02:00
rlar 7edd241e96 devices/res, #2/6, RESconduct, collect RESm
Reshape the sourcecode to emphasize the RESm * RESconduct affiliation.
That's a mere rewrite and doesn't change functionality.
2017-10-21 19:05:28 +02:00
rlar 5b23f0c684 devices/res, #1/6, REScurrent, include RESm
Henceforward REScurrent (renamed to REScurrentX) shall include factor RESm.
That's a mere rewrite and doesn't change functionality.
2017-10-21 19:05:28 +02:00
rlar f73a353d6b devices/res/resnoise.c, cleanup using pow() 2017-10-21 19:05:28 +02:00
rlar abb07c4306 devices/res/restemp.c, RESupdate_conduct(), avoid excess warnings
This function is invoked several times during initialisation,
  possibly with yet incomplete model and instance parameter settings.
And it might be invoked many times during dc sweep.
2017-10-21 19:05:28 +02:00
rlar cffab98882 devices/res/resparam.c, bug fix, alter resistance not honoured when resuming a transient simulation
When "alter" is invoked after a break-point stopped a transient simulation,
then it might be necessary to update RESconductance
before continuing the transient simulation.

Thanks for the bug report to An Zou
in message "alter resistor value" on the ngspice-users forum
https://sourceforge.net/p/ngspice/discussion/133842/thread/33ce6855/
2017-10-21 19:05:28 +02:00
rlar 0e1294b3b5 devices/res/resparam.c, whitespace and parenthesis 2017-10-21 19:05:27 +02:00
rlar 0a48e6f2a7 devices/res, introduce RESupdate_conduct()
which will be usefull later
2017-10-21 19:05:27 +02:00
rlar 0af576a7d8 devices/res/resask.c, bug fix, set and query of RESresist and RESacResist shall comute
Note:
  RESresist and RESacResist are device parameters
     they do not reflect effective resistance when "ask"'ed
     (don't reflect tc1, tc2, tce, m, scale, temp ...)
  RESconduct and RESacConduct are "query-only" parameters
     these report the effective conductance when "ask"'ed
     (including tc1, tc2, tce, m, scale, temp ...)
2017-10-21 19:05:27 +02:00
rlar 1c5e954b47 devices/res, bug fix, semantics of "short" and "narrow", aka "dlr" and "dw"
These need to be subtracted from both sides
2017-10-21 19:05:27 +02:00
Fabio Rossi 4c503c1e47 src/tclspice.c, bug fix, broken trimming of the "spice::" namespace
Due to a missing break in the for(;;) loop,
  causing the loop to walk beyond end of string argv[0],
  causing random behaviour.
2017-10-19 17:58:02 +02:00
rlar 91c60c28df whitespace change, avoid gcc warnings due to missleading indentation 2017-09-16 20:38:27 +02:00
h_vogt b3827f6488 gnuplot.c, correct the setting of limits in log plots 2017-09-16 20:37:24 +02:00
dwarning 2fd3c4d94f fix the still existing wrong array access in psd smooth routine 2017-09-05 11:28:14 +02:00
h_vogt ca3a9bb648 com_fft.c, correct scaling and filtering for PSD 2017-09-01 23:16:25 +02:00
dwarning 0ef666ea26 com_psd: Correct the special handling of dc and nyquist component in fftw branch 2017-08-26 17:20:19 +02:00
dwarning 2377d3a64f fix wrong write and read in not allocated memory 2017-08-22 11:53:20 +02:00
dwarning b8a9ca9df4 correct the fft scaling for real input and complex output vector 2017-08-16 21:35:41 +02:00
h_vogt 060e0037f8 main.c, add USERPROFILE to search path for .spiceinit
search sequence: current directory, HOME, USERPROFILE
2017-08-12 18:27:11 +02:00
h_vogt 3814201d13 Add function read_initialisation_file().
extend search path for .spiceinit, search sequence now is:
current directory, user HOME directory, user USERPROFILE directory
2017-08-12 18:03:54 +02:00
h_vogt 07ea6466ad configure option --enable-relpath
add relative path ../lib to spinit for codemodels
and search path in ivars.c, independently from
install path which has to be an absolute path
2017-08-12 17:37:19 +02:00
dwarning a1d27b4257 dio, introduce qd as an alias for diode charge to get the right unit in plotting 2017-08-03 17:03:10 +02:00
dwarning 14fc59b83d bjt, jfet, vbic, dio: allow plotting of small signal parameter like charges, capacitances and conductances in dc sweeps 2017-08-03 17:03:01 +02:00
rlar 0db861e4a6 device.c, bug fix commit "device.c, #8/19, use parent wordlist ..."
This commit did rely on the existence of a parent 'wordlist' element,
  usually guranteed by a leading "alter" or "altermod" command word.
But 'inp_evaluate_temper()' passes a wordlist without any parent word
  when invoking 'com_altermod()'
2017-07-30 12:17:43 +02:00
rlar 5542f2ec10 dio/diotemp.c, drop DIOgradingCoeff limit
Used to be limited to a maximum of 0.9
Varactors may need much larger values.

Thanks to Wang You for hinting to this ancient relict.
2017-07-29 19:15:40 +02:00
dwarning 998495c11b prevent wrong version selection if model parameter is given in exponential format 2017-07-13 09:25:04 +02:00
rlar 043d3b4f6d device.c, #19/19, whitespace 2017-07-06 17:56:23 +02:00
rlar aa50718573 device.c, #18/19, polish comments 2017-07-06 17:56:22 +02:00
rlar b4b32e2b93 device.c, #17/19, drop unused assignment to 'eqword' 2017-07-06 17:56:22 +02:00
rlar fac04193e5 device.c, #16/19, shrink scope of variable 'p' 2017-07-06 17:56:22 +02:00
rlar 3eda944db5 device.c, #15/19, make use of 'wl_find()' 2017-07-06 17:56:22 +02:00
rlar 20c303eb8b device.c, #14/19, drop variable 'wl2', can use 'wl' instead 2017-07-06 17:56:22 +02:00
rlar e8ebfb115e device.c, #13/19, drop artificial rewind to the beginning of the list 2017-07-06 17:56:22 +02:00
rlar 79cc996a93 device.c, #12/19, shrink scope of variable 'wlen' and 'maxelem' 2017-07-06 17:56:22 +02:00
rlar c2c4683b4b device.c, #11/19, shrink scope of variable 'wlin' 2017-07-06 17:56:22 +02:00
rlar b817ca8cf7 device.c, #10/19, drop unused assignment to 'wl2' 2017-07-06 17:56:21 +02:00
rlar 9085084ccb device.c, #9/19, drop variable 'rhs' 2017-07-06 17:56:21 +02:00
rlar 1ff0500117 device.c, #8/19, use parent wordlist to restore beginning of the list 2017-07-06 17:56:21 +02:00
rlar 01039f81a2 device.c, #7/19, use a local wordlist *wn 2017-07-06 17:56:21 +02:00
rlar 50dd15093e device.c, #6/19, this 'wl2' wont be used anywhere 2017-07-06 17:56:21 +02:00
rlar 26f7a0e04e device.c, #5/19, drop 'eqfound', equivalent to 'wl != NULL' 2017-07-06 17:56:21 +02:00
rlar 3f09ab6634 device.c, #4/19, loop wont be executed, and 'step' wont be used any more 2017-07-06 17:56:21 +02:00
rlar 3baaa57d18 device.c, #3/19, move some code up 2017-07-06 17:56:21 +02:00
rlar 670d87a589 device.c, #2/19, 'wl' will not be used any more 2017-07-06 17:56:21 +02:00
rlar 1eca384a94 device.c, #1/19, can 'break' here, because 'wl' is NULL 2017-07-06 17:56:04 +02:00
h_vogt 761f3915f5 device.c, 'alter', don't insert empty "" token
when entering ' =' or '= ' in interactive mode
2017-07-06 17:55:06 +02:00
h_vogt d06f39f67d device.c, bug #342, prevent crash when using 'alter'
#342 SegFault alter command
https://sourceforge.net/p/ngspice/bugs/342/
2017-07-06 17:55:02 +02:00
rlar 9ddd1d7d40 fix commit: inp2q.c, #18/23, rewrite, combine two 'for' loop's
which replaced a INPgetNetTok() by INPgetTok()
causing a bug when handling special node names
for example this case
  q1 /c /c 0 npnmodel
2017-07-05 21:09:30 +02:00
rlar 2b17f3292d inpcom.c, inp_add_control_section(), upside down for readability 2017-06-25 14:37:13 +02:00
rlar 76bbaf4ac3 inpcom.c, inp_sort_params(), use insert_deck() 2017-06-25 14:37:13 +02:00
rlar a26ec804cb inpcom.c, inp_reorder_params_subckt(), introduce insert_deck() 2017-06-25 14:37:13 +02:00
rlar c285602105 inpcom.c, inp_reorder_params_subckt(), reorder 2017-06-25 14:37:13 +02:00
rlar bc62407226 inpcom.c, drop unused artefact xx_new_line() 2017-06-25 13:40:01 +02:00
rlar 1afa04b2d1 inpcom.c, insert_new_line(), inline xx_new_line() 2017-06-25 13:39:56 +02:00
rlar 5c7c278c3d inpcom.c, inp_fix_subckt(), #4/4, drop redundant initialisations 2017-06-25 13:39:48 +02:00
rlar c3e2c920ef inpcom.c, inp_fix_subckt(), #3/4, drop 'last_param_card' 2017-06-25 13:39:41 +02:00
rlar 2aafc50608 inpcom.c, inp_fix_subckt(), #2/4, use insert_new_line() 2017-06-25 13:39:34 +02:00
rlar dda35ef2a5 inpcom.c, inp_fix_subckt(), #1/4, rewrite 'append' 2017-06-25 13:39:27 +02:00
rlar e75f48d91f inpcom.c, insert_new_line(), allow NULL head 2017-06-25 13:00:39 +02:00
rlar 5ff5839296 inpcom.c, inp_stitch_continuation_lines(), rewrite for the following commit 2017-06-25 12:58:50 +02:00
rlar 420c023f56 inpcom.c, introduce insert_new_line()
use it to replace this pattern
  foo = bar->li_next = xx_new_line(bar->li_next, ...);
with
  foo = insert_newline(bar, ...);
2017-06-25 12:57:18 +02:00
rlar 38183b6167 inpcom.c, expand_section_ref(), #7/7, cleanup 2017-06-25 12:10:01 +02:00
rlar dd155dd83e inpcom.c, expand_section_ref(), #6/7, drop 'rest' 2017-06-25 12:09:21 +02:00
rlar 0f8fb4cf51 inpcom.c, expand_section_ref(), #5/7, drop 'newl' 2017-06-25 12:04:16 +02:00
rlar a77db80a85 inpcom.c, expand_section_ref(), #4/7, drop 'cend', use 'c' instead 2017-06-25 12:03:39 +02:00
rlar 0c94a651ee inpcom.c, expand_section_ref(), #3/7, simplify 2017-06-25 12:02:26 +02:00
rlar 26d878748d inpcom.c, expand_section_ref(), #2/7, t == section_def ==> cend == c 2017-06-25 12:01:34 +02:00
rlar 7f2cf192b6 inpcom.c, expand_section_ref(), #1/7, cend != NULL === t != section_def 2017-06-25 12:00:07 +02:00
rlar a51c1aba2c inpcom.c, inp_read(), #2/2, rewrite xx_new_line() insertion
using the fact
  end->li_next === NULL
2017-06-24 22:03:03 +02:00
rlar 5c3dac41d9 inpcom.c, inp_read(), #1/2, rewrite 'append' to 'end' 2017-06-24 22:01:03 +02:00
rlar ed39305da0 inpcom.c, inp_add_series_resistor(), simplify xx_new_line() insertion 2017-06-24 20:30:04 +02:00
rlar 9eddd1d80f inpcom.c, inp_add_control_section(), #2/2, rewrite xx_new_line() insertion 2017-06-24 20:15:02 +02:00
rlar 4ad53f0de8 inpcom.c, inp_add_control_section(), #1/2, emphasise two assertions 2017-06-24 20:12:55 +02:00
rlar 4ff9c0c166 inpcom.c, inp_chk_for_multi_in_vcvs(), #6/6, drop 'model_card' 2017-06-24 19:44:35 +02:00
rlar d773b73f76 inpcom.c, inp_chk_for_multi_in_vcvs(), #5/6, drop 'next_card', deploy its value temporarily in the new line's li_next slot 2017-06-24 19:44:11 +02:00
rlar 3b55d2af40 inpcom.c, inp_chk_for_multi_in_vcvs(), #4/6, drop 'a_card', reuse the unused 'c' instead 2017-06-24 19:43:34 +02:00
rlar 634b012492 inpcom.c, inp_chk_for_multi_in_vcvs(), #3/6, xx_new_line() shall fill the li_next slot 2017-06-24 19:40:48 +02:00
rlar e9e9e5d55e inpcom.c, inp_chk_for_multi_in_vcvs(), #2/6, move code downwards 2017-06-24 19:40:38 +02:00
rlar c83b0544de inpcom.c, inp_chk_for_multi_in_vcvs(), #1/6, skip lines 2017-06-24 19:40:27 +02:00
rlar e81560de1a inpcom.c, drop the local 'new_line' variable 2017-06-24 19:11:22 +02:00
rlar b21b4170b2 inpcom.c, simplify the insertion of new lines/decks quite a bit 2017-06-24 19:11:21 +02:00
rlar 2972953336 inpcom.c, reorder initialisation
initialise param_beg and param_end before they will be used,
  instead of "afterwards" in preparation for the next following usage.
and move the "comment out" up some lines, think that way:
  comment out original line, append new line, ...
2017-06-24 18:16:48 +02:00
h_vogt 5d82d1b04a misccoms.c, com_quit(), don't free memory, unless shared ngspice
Traversing all linked memory structures to free their memory
  can be a somewhat lengthy business, especially in xspice,
  which is not worth the effort when we simply want to exit()
Long delays have been reported in certain cases.

For developers and for the usage of such tools as valgrind,
  we still free all the memory if 'set ngdebug' is given.
2017-06-24 17:55:26 +02:00
rlar b2621174d3 inpgmod.c, plug a memory hole
Reported and fixed by Marek Bielik in message:
  Subject: [Ngspice-devel] Memory leaks fix
  Date: Tue, 18 Apr 2017 16:16:21 +0000
2017-06-24 17:49:07 +02:00
h_vogt 7489a37973 inpgval.c, inpdpar.c, beautify the code 2017-06-06 17:05:22 +02:00
h_vogt fa6e21dd3a inpgval.c, INPgetValue(), use INPgetNetTok() instead of INPgetTok()
To fix a bug reported by Clyde Shappee in
  Subject: Problem with pole zero analysis and net names
  https://sourceforge.net/p/ngspice/discussion/127605/thread/14338e7e/

When using node names with a leading slash '/'
  on the "pz" analysis command line.
2017-06-06 16:51:32 +02:00
rlar a6a3d884ee fix commit "mifsetup.c, MIFunsetup(), #1/3 delete broken code"
which silently dropped the
  here->initialized = MIF_FALSE
aspect of the MIFunsetup() function

which caused segfault in testcase
  examples/memristor/memristor_x.sp
2017-06-06 16:42:32 +02:00
Tim Edwards fd79197fc0 xspice/icm/digital, introduce d_genlut
a digital n-input x m-output look-up table gate
2017-05-01 22:11:24 +02:00
Tim Edwards 8ae3b84c7c xspice/icm/digital, introduce d_lut
a digital n-input look-up table gate
2017-05-01 22:11:04 +02:00
h_vogt 37fe5308d3 xspice/icm/table, introduce table2d/table3d
which allows to model devices based upon linear interpolation
2017-04-30 17:00:15 +02:00
rlar a7cc37b2e2 ifparm, fix numdev too 2017-04-19 19:18:13 +02:00
h_vogt cc8fb86411 diotemp.c, set lower limit of saturation current 'is' to epsmin 2017-04-19 18:57:20 +02:00
h_vogt c82ee9d949 introduce option "epsmin"
To define a minimum argument for some log() function invocations.
(most notably for the diode saturation current 'is')
2017-04-19 18:56:00 +02:00
dwarning 78cc48575b prevent warnings for double declared variables 2017-04-17 20:53:30 +02:00
rlar 2f329bd8b4 N_MXVLNTH, drop noise variable name limitation 2017-04-15 17:21:24 +02:00
h_vogt 306ada7dd0 inpcom.c, get_model_type(), use gettok_noparens() to extract model type
Takes care of model descriptions in parentheses like
  d(...)
2017-04-12 22:00:07 +02:00
h_vogt 1ffb957e6c inpcom.c, inp_fix_subckt_multiplier(), cleanup, using strchr() 2017-04-12 21:48:13 +02:00
rlar 2f1219811e src/spicelib/devices/*/*set.c, XXXunsetup(), reset local node variables unconditionally
and use a more robust test for local node numbers.

That is, transform this pattern :
  if (here->Node && ...) {
     CKTdltNNum(ckt, here->Node);
     here->Node = 0;
  }
into this :
  if (here->Node > 0 && ...)
     CKTdltNNum(ckt, here->Node);
  here->Node = 0;

The change of "!= 0" ==> "> 0" accounts for rare cases where "Node"
   might have been set to -1, (meaning "unconnected")
The unconditional execution of the zero assignment is for those cases
  where "Node" might have been assigned to some external or other local Node.
If so, the variable would not be set to zero, confusing the "guarding" if's
  in the corresponding XXXsetup() routine.

The Pattern to follow is:
  1) unset and delete *all* local Nodes in XXXunsetup()
  2) allocate all of them again in a re-invocation of XXXsetup(),
       exactly the same way as in the very first invocation.
2017-04-12 21:34:05 +02:00
rlar 00c743c37d src/spicelib/devices/*/*def*.h, declare external node variables const
for almost all other external nodes (notable exception "txl")
src/spicelib/devices/*/*def*.h, declare external node variables const

1) The compiler shall emit an error message if we still mess around
     with external node numbers.
2) To mark which elements of the instance struct are meant to be set
     externally when parsing the netlist

These "external" node variables are exclusively set via the
  overlay struct GENinstance, member GENnode[]

We shall not mess around with these "external" node variables
  because it would get rather difficult to avoid bugs considering
  re-invocation of the XXXsetup() routine.
This gets interesting for devices with optional ports,
  which get copied around depending on the amount of connected ports.
2017-04-12 21:34:02 +02:00
rlar 0e9576cb34 src/spicelib/devices/*/*set.c, missing CKTdltNNum() invocations, complex cases
All locally created nodes (CKTmk..() invocations in XXXsetup())
  must be deleted in XXXunsetup()

Otherwise CKTmk..() invocations during a following CKTsetup()
  will re-emit still used node numbers,
  thus accidentally shorting nodes.

This patch fixes the complex cases,
  which are external node variables (ports of the instance),
  which might be moved over to other external node variables
  to cope with optional port connections.
This is fixed by copying the node numbers to local shadow variables
  to avoid messing with the external nodes.
Otherwise a following CKTsetup() might again meddle with the external
  node variables, at least causing considerable confusion, probably causing
  hard to find bugs.
2017-04-12 21:34:00 +02:00
rlar c0921250b7 src/spicelib/devices/*/*set.c, missing CKTdltNNum() invocations, medium cases
All locally created nodes (CKTmk..() invocations in XXXsetup())
  must be deleted in XXXunsetup()

Otherwise CKTmk..() invocations during a following CKTsetup()
  will re-emit still used node numbers,
  thus accidentally shorting nodes.

This patch fixes a little bit more complex cases,
  which are local node variables which will start with value 0
  and eventually be set with the result of a CKTmk..() invocations,
  but might as well receive a node number from another node variable.
Here CKTdltNNum() must not be invoked if the node number is merely
  a copy from another node variable.
2017-04-12 21:33:59 +02:00
rlar 1fd14fa2ee src/spicelib/devices/*/*set.c, missing CKTdltNNum() invocations, simple cases
All locally created nodes (CKTmk..() invocations in XXXsetup())
  must be deleted in XXXunsetup()

Otherwise CKTmk..() invocations during a following CKTsetup()
  will re-emit still used node numbers,
  thus accidentally shorting nodes.

This patch fixes the simple cases,
  which are local node variables which will start with value 0
  and eventually be set with the result of a CKTmk..() invocation.
More complex cases evolve, if such a local variable might receive
  a node number which origins from another node, or the netlist itself.
2017-04-12 21:33:58 +02:00
rlar 0c86adf9af src/spicelib/devices/*/*set.c, XXXunsetup(), sort CKTdltNNum() invocations
Invoke CKTdltNNum() in reverse order of local node creation in XXXsetup()

This fixes a bug at least in mesa and hfet1,
  where already destroyed node variables have still been accessed
  in the guarding 'if' of a later CKTdltNNum() stanza.
Invoking them in revers order easily prevents such bugs,
  and improves readability.
2017-04-12 21:33:50 +02:00
rlar 7afb798a6f check for illegal DEVsetup() DEVunsetup() patterns.
Consider the following silent contracts:
1)
 CKTsetup() invocations must be separated by a CKTunsetup() invocation
 But CKTsetup() has an internal flag,
   which will prevent re-invocation of DEVsetup()
 But DEVsetup() will be called during sensitivity analysis,
   bypassing this precaution. It is fatal if this will
   cause another node allocation (CKTmk..()).
   This commit tries to detect such cases.
   (Note: many DEVsetup routines (all ?) have their CKTmk..() invocations
      guarded to avoid reallocation of local nodes,
      see commit f7f454c0a1
        bug fix, fix the guard for device generated internal nodes (via CKTmkVolt())
   )
   FIXME:
     DEVsetup() is seriously obfuscated by these guards.
     If would be far better, if the sensitivity analysis
       wouldn't sidestep into DEVsetup()
     consider a device local variant of the CKTisSetup flag
2)
 DEVunsetup() must delete all, each and every,
   local allocated node in DEVsetup()
 Otherwise CKTmk..() invocations in a following CKTsetup() will
   return duplicate node numbers, effectively shorting device nodes.
 This commit tries to detect incomplete CKTdltNNum() invocations.
3)
  DEVunsetup() must not delete a netlist node.
  This can easily happen in those devices which have optional ports,
    which have code in DEVsetup() which copies node numbers to
    local node variables.
  This commit tries to detect such errors.
2017-04-12 21:32:51 +02:00
h_vogt 69b235531e sharedspice.c, introduce csh variable "sharedmode"
to reflect whether running as shared library
2017-04-12 21:22:22 +02:00
h_vogt 0bf381e01d cpitf.c, for Windows, introduce csh variable "win_console"
to reflect whether this .exe is a "console" build
2017-04-12 21:11:13 +02:00
h_vogt 670880086f cpitf.c, MS Visual Studio, introduce csh variable "pg_config"
reflecting .exe compilation for
  32/64 bit
  with/without NGDEBUG
2017-04-12 21:01:57 +02:00
h_vogt d7a1899210 runcoms.c, rawfile.c, include filename in the 'ASCII/binary raw file' printout 2017-04-12 20:45:51 +02:00
rlar 926ba4baaf xspice/icm/analog/file_source/cfunc.mod, use CALLBACK
to free() locally allocated memory and fclose() a local filestream
2017-04-12 20:14:47 +02:00
rlar 58874cc65e xspice, implement "CALLBACK"
Allow to register a callback function in the cfunc.mod files,
  which will be invoked in MIFdestroy.
Usefull to "free" memory which has been allocated locally in a cfunc.mod file.
2017-04-12 20:02:35 +02:00
mhx 5f0f54761a xspice, analog/file_source, bug fix
The source code did not consider the possibility
  of more than one "tran" analysis invocations.

see "Bewildering problem with filesource block while sweeping"
https://sourceforge.net/p/ngspice/discussion/133842/thread/52949e23/
2017-04-12 20:01:14 +02:00
rlar 4872580221 mifsetup.c, MIFunsetup(), #3/3 now invoke CKTdltNNum() 2017-04-12 18:41:07 +02:00
rlar 9154f83c37 mifsetup.c, MIFunsetup(), #2/3 copy paste from MIFsetup() 2017-04-12 18:38:26 +02:00
rlar c68a0313bd mifsetup.c, MIFunsetup(), #1/3 delete broken code 2017-04-12 18:38:25 +02:00
dwarning 48262e5c0a extend safe operation area check (SOA) to polarity check for mosfets by additional parameters 2017-04-11 21:31:54 +02:00
rlar 46ab21dca9 inpcom.c, is_a_modelname(), don't accept "1E2" 2017-04-09 20:19:35 +02:00
h_vogt 847a09fd37 inpcom.c, get_number_terminals(), ignore "save" and "print" when CIDER 2017-04-09 18:33:12 +02:00
h_vogt e5d70d0821 gnuplot.c, bug fix, allow gnuplot with MINGW 2017-04-09 17:53:40 +02:00
rlar ccfcc056ad inpcom.c, bug fix, allow leading '_' in parameter identifiers 2017-04-09 15:38:15 +02:00
rlar c6896cf338 accept .para shortcut for .param 2017-04-09 15:37:46 +02:00
rlar 900bed550d string.c, #6/6, use skip_ws() and skip_back_ws() 2017-04-09 15:35:44 +02:00
rlar 0da47c644b string.c, #5/6, cleanup 2017-04-09 15:35:41 +02:00
rlar 5b23b54769 string.c, #4/6, cleanup token fetching 2017-04-09 15:35:38 +02:00
rlar c6a3438408 string.c, #3/6, cleanup 'return' 2017-04-09 15:35:35 +02:00
rlar ed13e8a15a string.c, #2/7, drop 'register' 2017-04-09 15:35:32 +02:00
rlar d48bec757c string.c, #1/6, whitespace 2017-04-09 15:35:29 +02:00
rlar fb1c6fc123 ifparm, #16/16, isrc.c, non grouped alias entry, change "c" from IP to IOPPR 2017-04-09 15:29:44 +02:00
rlar 762314b893 ifparm, #15/16, ind.c, missing IF_AC|IF_PRINCIPAL in alias entry, use IOPAPR 2017-04-09 15:29:43 +02:00
rlar d32a32bdc8 ifparm, #14/16, res.c, missing IF_ORQUERY|IF_REDUNDANT, introduce IOPQOR 2017-04-09 15:29:42 +02:00
rlar cefb65507f ifparm, #13/16, res.c, missing IF_SETQUERY in an alias entry, introduce IOPQR 2017-04-09 15:29:41 +02:00
rlar 8d3acddc7b ifparm, #12/16, res.c, missing IF_PRINCIPAL in an alias entry, introduce IOPPR 2017-04-09 15:29:40 +02:00
rlar 614eebe944 ifparm, #11/16, res.c, missing IF_CHKQUERY for some alias entries, introduce IOPZR 2017-04-09 15:29:40 +02:00
rlar ff00855397 ifparm, #10/16, jfet2.c, missing IF_REDUNDANT for some aliases, introduce PARAMR 2017-04-09 15:29:39 +02:00
rlar cee466b35e ifparm, #9/16, mes.c, "m" is an alias of "area", use IOPUR 2017-04-09 15:29:38 +02:00
rlar f0e2b43940 ifparm, #8/16, excess IF_REDUNDANT for some aliases, use IOP 2017-04-09 15:29:37 +02:00
rlar 102a6b7c77 ifparm, #7/16, missing IF_UNINTERESTING for some aliases, introduce IOPUR 2017-04-09 15:29:36 +02:00
rlar 4fc33eb656 ifparm, #6/16, missing IF_NONSENSE for some aliases, introduce IOPXR 2017-04-09 15:29:35 +02:00
rlar b56c2a2504 ifparm, #5/16, missing IF_AC for some aliases, introduce IOPAR 2017-04-09 15:29:34 +02:00
rlar eac26d741c ifparm, #4/16, missing IF_REDUNDANT for some aliases, introduce IOPAPR 2017-04-09 15:29:33 +02:00
rlar 445860f79a ifparm, #3/16, missing IF_REDUNDANT for some aliases, use IOPR 2017-04-09 15:29:32 +02:00
dwarning 115b52a899 ifparm, #2/16, missing IF_REDUNDANT, duplicates and descriptions 2017-04-09 15:29:30 +02:00
dwarning e0fcdc7457 ifparm, #1/16, missing IF_REDUNDANT for vth0/vtho in bsim models 2017-04-09 15:23:15 +02:00
rlar 1e6b809af8 introduce command "check_ifparm" to check consistency of the device IFparm sets
For developing purpose only, and bound to HAVE_TSEARCH, HAVE_TDESTROY

IFparm descriptors must obey certain contracts,
  1) aliases must be grouped together with their associated main descriptor,
       and all must have flag IF_REDUNDANT set
  2) there shall be no duplicated .id fields except for aliases.
  3) aliased entries shall have consistent .dataType fields

check_ifparm will traverse all IFparm sets and report violations
2017-04-09 14:40:51 +02:00
h_vogt cf9dbff890 inpcom.c, cleanup, use strchr() 2017-04-09 14:14:45 +02:00
rlar 2df8f433f8 inp.c, inp_parse_temper(), rewrite, using search_idenifier and find_assignment
try to make it more robust with regard to
  '!=' '<=' '=='         don't misinterpret as '='
  "atemperaticvariable"  don't misinterpret as 'temper'
  multiple temper in one expression
2017-04-09 14:14:36 +02:00
rlar 511389ad10 inpcom.c, introduce find_back_assignment() 2017-04-09 14:14:06 +02:00
rlar 5238f0b1cb inpcom.c, find_assignment(), const'ify and declare extern 2017-04-09 14:12:22 +02:00
rlar 4c44027cd2 inp.c, inp_parse_temper(), cleanup 2017-04-09 14:12:13 +02:00
rlar 2809ccaa13 shrink scope of expr_w_temper 2017-04-09 14:06:27 +02:00
rlar 872ceeedc7 inp_temper_compat(), return expr_w_temper 2017-04-09 14:06:15 +02:00
rlar 2c35eebb0b invoke in_parse_temper_trees() and inp_evaluate_temper() unconditionally 2017-04-09 14:06:02 +02:00
rlar e35429a222 inpcom.c, introduce rem_tlist() 2017-04-09 14:03:11 +02:00
rlar c600312d01 deploy devtlist/modtlist in struct circ 2017-04-09 13:59:53 +02:00
rlar 2a50316304 inp_parse_temper(), add modtlist_p/devtlist_p arguments 2017-04-09 13:59:46 +02:00
rlar f78d8e21f0 inp_parse_temper_trees(), add struct circ argument 2017-04-09 13:59:38 +02:00
rlar f2f2b3b09a inp_evaluate_temper(), add struct circ argument 2017-04-09 13:49:43 +02:00
rlar fa13e422cd inpcom.c, bug fix, always reset expr_w_temper 2017-04-09 13:49:32 +02:00
rlar 5513d8bdf3 inpcom.c, bug fix, expr_w_temper missing reset 2017-04-09 13:49:22 +02:00
rlar c920946c73 inp.c, bug fix, need to reset modtlist/devtlist unconditionally 2017-04-09 13:49:13 +02:00
rlar 12de713ff5 inp.c, bug fix, commit "allow 'temper' keyword in .param, .model and device instance lines ..."
don't overwrite struct pt_temper.expression,
  to allow free'ing this string.
2017-04-09 13:49:05 +02:00
h_vogt 648de2a001 cktdojob.c, add missing evaluation of TEMPER after new temperature is set
This is relevant for model and device parameters containing TEMPER.
2017-04-09 13:48:55 +02:00
h_vogt 67e06bb4ac winmain.c, bug fix, #315 ngspice under windows 10 shows exception on quit
https://sourceforge.net/p/ngspice/bugs/315/

longjmp() creates segfault under Windows 10 (VS and MINGW)
somewhere when MainWindowProc() is processing the WM_CLOSE message.

Instead of raising SIGINT, directly call cp_doquit().
return 0 if "askquit" is set and the user declines to "quit".
This continues the simulation, if still active.
2017-04-09 12:46:38 +02:00
dwarning 33c7740884 bsim4 model update according berkeley release - disclaimer change 2017-03-31 15:01:30 +02:00
dwarning 3f0096fd46 bsim4 model update according berkeley release - code change 2017-03-31 14:48:14 +02:00
rlar ab409ad62e protect vec_free() and free_pnode() macro for use in non braced blocks
if ()
  vec_free()
2017-03-25 19:54:40 +01:00
rlar c7811a76df ngspice/fteext.h, whitespace and spelling 2017-03-25 19:41:32 +01:00
rlar cc15853b4f ngspice/ftedefs.h, whitespace and spelling 2017-03-25 19:11:33 +01:00
h_vogt d84387d449 CIDER, use controlled_exit(1) instead of exit(1) 2017-03-25 18:44:00 +01:00
rlar 2142cfdcce subckt.c, cleanup 2017-03-25 18:17:08 +01:00
rlar 9b01dbae95 subckt.c, numnodes(), #4/4, drop 'buf' 2017-03-25 18:17:07 +01:00
rlar 66b8b3de54 subckt.c, numnodes(), #3/4, rename argument 'name' --> 'line' 2017-03-25 18:17:04 +01:00
rlar 7b6070e6b9 subckt.c, numnodes(), #2/4, cleanup 2017-03-25 18:00:43 +01:00
rlar b18c06c441 subckt.c, numnodes(), #1/4, cleanup 2017-03-25 18:00:41 +01:00
rlar 33788f7052 remove excessive inp_evaluate_temper() prototypes 2017-03-22 21:47:43 +01:00
rlar 0fb21eaf4a subckt.c, translate(), #8/8 whitespace and comments 2017-03-22 21:25:46 +01:00
rlar f19a6c6390 subckt.c, translate(), #7/8 cleanup 2017-03-22 21:25:46 +01:00
rlar 49947e0279 subckt.c, translate(), #6/8 cleanup 2017-03-22 21:25:46 +01:00
rlar 2a4c34c401 subckt.c, translate(), #5/8 trailing 's' is never used 2017-03-22 21:25:46 +01:00
rlar 7169ad4bfa subckt.c, translate(), #4/8 don't append trailing whitespace 2017-03-22 21:25:46 +01:00
rlar 1f31f73295 subckt.c, translate(), #3/8 simplify 2017-03-22 21:25:45 +01:00
rlar e40485b8a3 subckt.c, translate(), #2/8 cleanup 2017-03-22 21:25:45 +01:00
rlar 476c41f436 subckt.c, translate(), #1/8 cleanup 2017-03-22 21:25:45 +01:00
rlar 405c6f6f02 subckt.c, introduce translate_mod_name() 2017-03-22 21:25:45 +01:00
rlar db213fd8d2 subckt.c, devmodtranslate(), dupplicate code from above
and drop a redundant piece
2017-03-22 21:25:45 +01:00
rlar c653161666 subckt.c, introduce translate_inst_name()
to abstract the instance name translation during netlist flattening
2017-03-22 21:25:45 +01:00
rlar a54a535dd5 subckt.c, introduce translate_node_name() 2017-03-22 21:25:45 +01:00
rlar bab59844ff subckt.c, emphasize instance_name translation
When translating an instance_name in a subcircuit instance 'xfoo'
undconditionally express the exception for 'x' instances, which is:
  x42 --> xsub.x42
but for all others the first char (the devtype) is prepended
  r42 --> r.xsub.r42
2017-03-22 21:25:45 +01:00
rlar e3b3cc502a subckt.c, translate(), emphasize instance_name translation 2017-03-22 21:25:45 +01:00
rlar a03a57c9f9 subckt.c, emphasize token separator insertion 2017-03-22 21:25:44 +01:00
rlar 6b78ed4367 subckt.c, devmodtranslate(), rewrite using bxx_ facility 2017-03-22 21:25:44 +01:00
rlar 4d69002144 subckt.c, translate(), rewrite using bxx facility 2017-03-22 21:25:39 +01:00
rlar 13b6daae2f subckt.c, translate(), cleanup while() loop 2017-03-22 20:53:22 +01:00
rlar a5dd826d19 subckt.c, finishLine(), #9/9, unconditionally transform instance name in i() expressions 2017-03-22 20:53:14 +01:00
rlar dc092c4ebc subckt.c, finishLine(), #8/9, fuse two if's with the same conditional expr 2017-03-22 20:52:10 +01:00
rlar 99d788cd12 subckt.c, finishLine(), #7/9, drop condition which is always true 2017-03-22 20:50:59 +01:00
rlar 253cf5b75a subckt.c, finishLine(), #6/9, drop condition which is always false 2017-03-22 20:50:38 +01:00
rlar ff4805c023 subckt.c, finishLine(), #5/9, move/duplicate code behind if/else into the if/else 2017-03-22 20:49:53 +01:00
rlar 735e7700ce subckt.c, finishline(), #4/9, reorder 2017-03-21 20:27:20 +01:00
rlar 8ab28df4ec subckt.c, finishline(), #3/9, here *src === '(' 2017-03-21 20:27:19 +01:00
rlar 5d3896c388 subckt.c, finishline(), #2/9, rewrite 2017-03-21 20:27:18 +01:00
rlar 0502e83fba subckt.c, finishline(), #1/9, trivial cleanup 2017-03-21 20:27:17 +01:00
rlar f12ff5464e inpptree.c, PTdifferentiate(), cleanup, use a #define
to express the expressions arguments more readable
2017-03-19 21:06:49 +01:00
rlar d696aa8781 niconv.c, NIconvTest(), NaN in CKTrhs denotes non-convergence
emit a warning message, but only if ft_ngdebug is set
2017-03-19 20:38:41 +01:00
rlar dc6e1cb064 use strchr() instead of strstr() 2017-03-19 20:24:49 +01:00
rlar bd50814677 drop 'depreciated_skip..()' 2017-03-19 20:13:11 +01:00
rlar 7a42510cc0 const'ify some 'skip'ing functions 2017-03-19 20:12:25 +01:00
rlar 45ad60b738 rename gettok_nc() --> nexttok(), and functionalize it 2017-03-19 20:11:01 +01:00
rlar f338dfe27e subckt.c, undo a bogous hunk from commit "beautify code", Dec 16 2011 2017-03-19 20:07:34 +01:00
rlar f9019a5576 devices/*/*ld.c, bug fix, missing assignment to 'model' 2017-03-19 19:47:25 +01:00
mhx efb8214945 fix spelling, "too much" versus "too many" 2017-03-18 20:49:28 +01:00
rlar 889aaebfd7 inp2m.c, #7/7, whitepace cleanup 2017-03-18 20:44:21 +01:00
rlar 576e522d38 inp2m.c, #6/7, reorder code 2017-03-18 20:44:13 +01:00
rlar 73e76fd88a inp2m.c, #5/7, drop nname[] 2017-03-18 20:44:04 +01:00
rlar 74145c53a6 inp2m.c, #4/7, move code up into the for loop 2017-03-18 20:43:55 +01:00
rlar 5a95487ad7 inp2m.c, #3/7, simpify, move code down into the for loop 2017-03-18 20:43:46 +01:00
rlar 788c8f7067 inp2m.c, #2/7, simplify, move code down into for loop 2017-03-18 20:43:38 +01:00
rlar bef3fd1dd5 inp2m.c, #1/7, insist on a valid model, don't default to something
Emit an error message when unable to identify a valid modelname token.

If a default model is needed, then create one explicitly:
  m1 1 2 3 4 mosdefault
  .model mosdefault mos1()
2017-03-18 20:43:19 +01:00
rlar 80ef8b308d inp2m.c, do not restrict binning to four nodes
until now, for unknown reasons,
  the search for binned modelnames was restricted to
  instances with less than five nodes.
2017-03-18 20:18:11 +01:00
rlar 50c0424225 inp2q.c, inp2m.c, plug a memory leak 2017-03-18 20:15:39 +01:00
Francesco Lannutti 43f24d6f22 rewrite cktsens.c in terms of the 'SMP' matrix interface 2017-03-17 18:22:36 +01:00
rlar fb4f462388 SMPnewMatrix(), add 'size' to the function arguments 2017-03-17 18:12:48 +01:00
rlar 07d89b5fcd devices/**, unify structure member variables, ptr -> Ptr 2017-03-17 17:42:58 +01:00
rlar a6cb9d0d88 cplsetup.c, polish VECTOR_ALLOC and MATRIX_ALLOC
explicitly express the object type to be allocated
2017-03-17 17:37:24 +01:00
rlar 8c09761e6b adms, polish autogen.sh and configure.ac
Allow to override the admsXml executable when invoking
  autogen.sh and configure.ac

ADMSXML=/foo/bar/baz/admsXml ./autogen.sh --adms
ADMSXML=/foo/bar/baz/admsXml ./configure --enable-adms
alternatively (and more advertised)
./configure ADMSXML=/foo/bar/baz/admsXml --enable-adms

The generated Makefiles remember the given path.
A relative path doesn't make sense of course.
2017-03-12 19:34:37 +01:00
rlar 3ea412e7cd bug fix for commit "inp2q.c, #17/23, rewrite, using a 'for' loop" 2017-03-12 17:57:27 +01:00
rlar c3a92e2bb3 xspice, cleanup, move typedef over to the other ones 2017-03-12 12:18:09 +01:00
rlar 987952e57e adms/admst/ngspiceMODULEsetup.c.xml, adms, implement DEVunsetup()
Which is needed to release the allocated circuit nodes in
  the corresponding adms generated DEVsetup() routine.
This is required when invoking CKTsetup() more than once
  without an intervening "reset".
2017-03-12 10:43:32 +01:00
rlar 6ccccbe7c4 adms/admst/ngspiceMODULE.c.xml, fix the port name table
which will be exported from the model code to "spice" via
  struct IFdevice.terms
  struct IFdevice.numNames
  struct IFdevice.termNames
2017-03-12 10:41:52 +01:00
rlar ba6955a1aa inp2q.c, sanitise optional ports processing
Tie ports 4 and up to ground, iff not connected.

Actually, I think the model's DEVsetup routine should do this business,
  we should pass -1 to denote the fact of being unconnected
2017-03-11 21:11:32 +01:00
rlar 3ce3424a9c inp2q.c, #23/23, whitespace 2017-03-11 20:27:48 +01:00
rlar 9ad1a3033b inp2q.c, #22/23, drop #ifdef, model_numnodes() does care about this 2017-03-11 20:27:48 +01:00
rlar ac77e5b020 inp2q.c, #21/23, drop nname[] and model, use local 'token' instead 2017-03-11 20:27:47 +01:00
rlar 25fa9a4454 inp2q.c, #20/23, insist on a valid model, don't default to something
If a default model is needed, then create one explicitly:
 q1 1 2 3 npndefault
 .model npndefault npn()

Note:
  This code was buggy anyway because the last token,
    which turned out not to be a valid model name,
    was silently swallowed.
  Thus PARSECALL() didn't parse the whole thing.
2017-03-11 20:27:47 +01:00
rlar b85a07c62c inp2q.c, #19/23, rewrite, move code into the 'for' loop 2017-03-11 20:27:47 +01:00
rlar b1ccdd2184 inp2q.c, #18/23, rewrite, combine two 'for' loop's 2017-03-11 20:27:47 +01:00
rlar 807115c145 inp2q.c, #17/23, rewrite, using a 'for' loop 2017-03-11 20:27:47 +01:00
rlar 03d3e2ea12 inp2q.c, #16/23, emit a message and give up, if we couldn't find the modelname token
Thats a functional change of ngspice.

So far we did cook up a "default" model when we didn't find a model token.
But this was buggy anyway, because in such cases we silently dropped
  a token from beeing processed by PARSECALL()
Now, we emit a message, and skip this line alltogether.
2017-03-11 20:27:47 +01:00
rlar 83fb9353ef inp2q.c, #15/23, rewrite, fall into an empty 'else' body when !ADMS 2017-03-11 20:27:47 +01:00
rlar 0bf0021a63 inp2q.c, #14/23, rewrite, assign model a bit later when recognised 2017-03-11 20:27:47 +01:00
rlar ef37e92338 inp2q.c, #13/23, move code down 2017-03-11 20:27:47 +01:00
rlar d2d9bffed0 inp2q.c, #12/23, move code down
Note; here i==4 and nodeflag still was 4
2017-03-11 20:27:46 +01:00
rlar c8b1d18289 inp2q.c, #11/23, move code down
Note: here i==3 and nodeflag==4
2017-03-11 20:27:46 +01:00
rlar c5ce68728f inp2q.c, #10/23, use i to prepare for a loop 2017-03-11 20:27:46 +01:00
rlar a21a2fd1b0 inp2q.c, #9/23, drop some TRACE code 2017-03-11 20:27:46 +01:00
rlar 16c00730e4 inp2q.c, #8/23, use a 'for' loop
Note: the range of nodeflag still is {4,5}
2017-03-11 20:27:46 +01:00
rlar ffc943dfff inp2q.c, #7/23, use an array 2017-03-11 20:27:46 +01:00
rlar c82a9dd87e inp2q.c, #6/23, transform boolean expression
Note: both values range over {4,5}
Thus, this is a functional invariant transformation
2017-03-11 20:27:46 +01:00
rlar 27d93293f9 inp2q.c, #5/23, rewrite using a new function model_numnodes() 2017-03-11 20:27:46 +01:00
rlar b0fe181f12 inp2q.c, #4/23, transform boolean expression 2017-03-11 20:27:45 +01:00
rlar 042916ae88 inp2q.c, #3/23, renumber 'nodeflag'
range over {4,5} instead of {0,1}
2017-03-11 20:27:45 +01:00
rlar 9abcaa88ae inp2q.c, #2/23, parenthesises and linewrap 2017-03-11 20:27:42 +01:00
rlar c37ce079eb inp2q.c, #1/23, rewrite, early 'exit' and 'return' 2017-03-11 19:58:58 +01:00
rlar 40ca7d6db3 inp2m.c, #9/9c, cleanup 2017-03-07 21:54:42 +01:00
rlar eecd940af8 inp2m.c, #8/9c, drop valid_numnodes() 2017-03-07 21:54:33 +01:00
rlar 6edd684020 inp2m.c, #7/9c, rewrite valid_numnodes() using model_numnodes() 2017-03-07 21:54:23 +01:00
rlar 09fbc0ee97 inp2m.c, #6/9c, now fix model_numnodes()
to prevent instance struct storage beeing overwritten.
2017-03-07 21:54:13 +01:00
rlar 54f6bd8d56 inp2m.c, #5/9c, rewrite 2017-03-07 21:54:00 +01:00
rlar 01b75e08ab inp2m.c, #4/9c, rewrite using model_numnodes() 2017-03-07 21:53:50 +01:00
rlar 396441e1ea inp2m.c, #3/9c, abstraction, introduce model_numnodes()
Note:
  This commit does not change behaviour in any way,
    yet one can instantly see some sickness now.
  Some of the models definitely do not have 7 nodes,
  Actually we would like to fetch the number of terminals from
    struct IFdevice, slot terms or slot numNames
  But it turns out several models publish bogus values.
  For example "B4SOI", which has 7 nodes, but claims to have 8
2017-03-07 21:53:37 +01:00
rlar 3bb68fbd7a inp2m.c, #2/9c, rewrite using GENnode[] 2017-03-07 21:53:26 +01:00
rlar 81b5278674 inp2m.c, #1/9c, rename 'nodeflag' 2017-03-07 21:53:16 +01:00
rlar c89e7c8818 inp2m.c, #15/15b, collapse remaining code into a for loop 2017-03-05 17:23:20 +01:00
rlar 85236c08e6 inp2m.c, #14/15b, cleanup, drop empty blocks 2017-03-05 17:23:12 +01:00
rlar 8fa3afa4ae inp2m.c, #13/15b, rewrite, move common code to the end 2017-03-05 17:23:07 +01:00
rlar 3d6a2e2422 inp2m.c, #12/15b, unify, add code which won't be executed at all
actually, this most certainly unveils a bug in the original code,
  lacking invocation of INPgetModBin() when optional extra nodes come
  into play.
2017-03-05 17:23:03 +01:00
rlar 99136a16e7 inp2m.c, #11/15b, rewrite, use array expressions 2017-03-05 17:22:57 +01:00
rlar 7eb6006461 inp2m.c, #10/15b, use 'nodeflag' instead of literal values 2017-03-05 17:22:51 +01:00
rlar 7ab64775b8 inp2m.c, #9/15b, rewrite, use arrays for 'node' and 'mname' 2017-03-05 17:22:40 +01:00
rlar 395939d2f4 inp2m.c, #8/15b, unify, add two invocations without any effect 2017-03-05 17:22:02 +01:00
rlar 55c9c3a73b inp2m.c, #7/15b, cleanup some braces 2017-03-05 17:22:01 +01:00
rlar 7a1b65f045 inp2m.c, #6/15b, abstraction, introduce valid_numnodes() 2017-03-05 17:21:59 +01:00
rlar cff00524c2 inp2m.c, #5/15b, express some facts in comments for the following commits 2017-03-05 16:47:51 +01:00
rlar 0a95935e46 inp2m.c, #4/15b, unify code slightly 2017-03-05 16:47:14 +01:00
rlar f7b3f40c70 inp2m.c, #3/15b, set 'save' a little sooner 2017-03-05 16:46:39 +01:00
rlar 40c632f8a7 inp2m.c, #2/15b, drop TRACE code 2017-03-05 16:45:40 +01:00
rlar f9213e3fe4 inp2m.c, #1/15b, drop comments 2017-03-05 16:45:23 +01:00
rlar 6fde9353ea inp2m.c, #7/7, whitespace 2017-03-04 22:09:15 +01:00
rlar 11572fe9d0 inp2m.c, #6/7, polish comments 2017-03-04 19:16:11 +01:00
rlar f66d37463f inp2m.c, #5/7, renumber `nodeflag' 2017-03-04 19:16:11 +01:00
rlar 6a275a6bd9 inp2m.c, #4/7, rewrite 2017-03-04 19:16:11 +01:00
rlar 08b798c485 inp2m.c, #3/7, line wraps 2017-03-04 19:16:11 +01:00
rlar f23876e30c inp2m.c, #2/7, cleanup braces 2017-03-04 19:16:10 +01:00
rlar 80f58e98a8 inp2m.c, #1/7, cleanup comparisons 2017-03-04 19:16:10 +01:00
rlar a2347a28d6 inp2*.c, cleanup, drop redundant initialisation
which can be dropped to the recently fixed INPgetMod(), see
  inpgmod.c, INPgetMod(), bug fix, missing 'model' assignment

Note:
  there have been INPgetMod() invocations without initialisation,
    causing access to non-initialised memory with the unfixed INPgetMod()
2017-03-04 19:15:55 +01:00
rlar 56b2342df3 inpgmod.c, #15/15, whitespace 2017-03-04 18:47:19 +01:00
rlar fccdea429c inpgmod.c, #14/15, cleanup 2017-03-04 18:45:27 +01:00
rlar 0245f304ff inpgmod.c, #13/15, shortcut #if CIDER 2017-03-04 18:45:26 +01:00
rlar a8ffd52c42 inpgmod.c, #12/15, cleanup braces 2017-03-04 18:45:24 +01:00
rlar 627ed98464 inpgmod.c, #11/15, reduce scope and rewrite 2017-03-04 18:11:20 +01:00
rlar 66976d492e inpgmod.c, #10/15, reorder 'extern's 2017-03-04 18:11:14 +01:00
rlar 19e36dd4cb inpgmod.c, #9/15, drop trailing whitespace in messages 2017-03-04 18:11:13 +01:00
rlar 370420d00e inpgmod.c, #8/15, commute boolean expressions 2017-03-04 18:11:11 +01:00
rlar 4842cd39a7 inpgmod.c, #7/15, reduce scope and rewrite 2017-03-04 18:11:06 +01:00
rlar 3212b18115 inpgmod.c, #6/15, simplify return of boolean expressions 2017-03-04 18:11:05 +01:00
rlar 6ee483ed1d inpgmod.c, #5/15, simplify tprintf usage 2017-03-04 18:11:03 +01:00
rlar b329fd56fc inpgmod.c, #4/15, unify 'return' statements 2017-03-04 18:11:02 +01:00
rlar cdc8fbd192 inpgmod.c, #3/15, line wraps 2017-03-04 18:11:00 +01:00
rlar b0537a7e96 inpgmod.c, #2/15, polish comments 2017-03-04 18:10:57 +01:00
rlar 6cdd306fea inpgmod.c, #1/15, cleanup comparisons 2017-03-04 18:10:50 +01:00
rlar 5905ed26fa inpgmod.c, INPgetMod(), bug fix, missing 'model' assignment
'model' is a return value, and must always be assigned to.
NULL denotes the error case.
2017-03-04 17:16:03 +01:00
rlar c3275241a5 ckti2nod.c, cktbindnode.c, minor cleanup 2017-03-04 16:05:08 +01:00
rlar 239780ebef cleanup, use an array for struct GENinstance.GENnode 2017-03-04 16:04:32 +01:00
h_vogt 4eb32ab566 com_sysinfo.c, add recent Windows versions to info printout 2017-02-22 19:36:38 +01:00
h_vogt 7c06cb2d12 don't mess with WINVER
not necessairy for current Windows versions
2017-02-22 19:36:37 +01:00
h_vogt 78ea2e1523 winmain.c, remove of fcn 'read' in Windows 2017-02-22 19:36:34 +01:00
h_vogt 31dca54eba input.c, don't use read() in __MINGW32__ 2017-02-22 19:28:22 +01:00
rlar d9e7ab2759 input.c, simplify #ifdef for the broken visual studio _read()
If we have _MSC_VER so we have either CONSOLE HAS_WINGUI or SHARED_MODULE
If we have SHARED_MODULE, then we most certainly don't need
  the unbuffered read(), which isn't unbuffered on _MSC_VER anyway.
Thus _MSC_VER is sufficient.
2017-02-22 19:26:48 +01:00
rlar 1475df2aa4 input.c, try to work around microsofts broken _read()
concerning the visual sudio variant of the "console" build.

Their _read() returns 0 when a linfeed is read.
Ironically the linefeed seems to be stored into the buffer nontheless.

Because the filehandle is in linebuffered mode anyway,
  (the read won't return up until the terminating newline is entered)
we can just as well use getc(), which doesn't seem to suffer
  from the same problem in their implementation.
2017-02-22 19:25:01 +01:00
rlar 2bafe98f17 winmain.c, etc, cleanup 2017-02-22 18:50:40 +01:00
rlar 90a205d36d winmain.c, etc, whitespace cleanup 2017-02-22 18:50:03 +01:00
rlar 3a9ace82bb winmain.c, etc, cleanup, rewrite obfuscated symbols
substitute in the whole source code:

  "__stream"       -->    "stream"
  "__pos"          -->    "pos"
  "__s"            -->    "s"
  "__n"            -->    "n"
  "__c"            -->    "c"
  "__format"       -->    "format"
  "__ptr"          -->    "ptr"
  "__size"         -->    "size"
  "__path"         -->    "path"
  "__mode"         -->    "mode"
  "__offset"       -->    "offset"
  "__whence"       -->    "whence"
  "__arglist"      -->    "arglist"
  "__buf"          -->    "buf"
  "__fp"           -->    "fp"

  "f_c_l_o_s_e"    -->    "win_x_fclose"
  "f_e_o_f"        -->    "win_x_feof"
  "f_e_r_r_o_r"    -->    "win_x_ferror"
  "f_f_l_u_s_h"    -->    "win_x_fflush"
  "fg_e_t_c"       -->    "win_x_fgetc"
  "f_g_e_t_p_o_s"  -->    "win_x_fgetpos"
  "fg_e_t_s"       -->    "win_x_fgets"
  "fp_r_i_n_t_f"   -->    "win_x_fprintf"
  "fp_u_t_c"       -->    "win_x_fputc"
  "fp_u_t_char"    -->    "win_x_fputchar"
  "fp_u_t_s"       -->    "win_x_fputs"
  "f_r_e_a_d"      -->    "win_x_fread"
  "f_r_e_o_p_e_n"  -->    "win_x_freopen"
  "fs_c_a_n_f"     -->    "win_x_fscanf"
  "f_s_e_e_k"      -->    "win_x_fseek"
  "f_s_e_t_p_o_s"  -->    "win_x_fsetpos"
  "f_t_e_l_l"      -->    "win_x_ftell"
  "f_w_r_i_t_e"    -->    "win_x_fwrite"
  "g_e_t_c"        -->    "win_x_getc"
  "g_e_t_char"     -->    "win_x_getchar"
  "g_e_t_s"        -->    "win_x_gets"
  "p_e_r_r_o_r"    -->    "win_x_perror"
  "p_r_i_n_t_f"    -->    "win_x_printf"
  "p_u_t_c"        -->    "win_x_putc"
  "p_u_t_char"     -->    "win_x_putchar"
  "p_u_t_s"        -->    "win_x_puts"
  "r_e_a_d"        -->    "win_x_read"
  "s_c_a_n_f"      -->    "win_x_scanf"
  "ung_e_t_c"      -->    "win_x_ungetc"
  "vfp_r_i_n_t_f"  -->    "win_x_vfprintf"
  "vfs_c_a_n_f"    -->    "win_x_vfscanf"
  "vp_r_i_n_t_f"   -->    "win_x_vprintf"
  "vs_c_a_n_f"     -->    "win_x_vscanf"
2017-02-10 19:50:42 +01:00
rlar 93d040703d winmain.c, drop artefact "fgetchar", cleanup/emphasise disabled "freopen" 2017-02-10 18:44:44 +01:00
rlar 69537a7899 winmain.c, fs_c_a_n_f(), bug fix, and cleanup "minimise" 2017-02-09 22:06:07 +01:00
rlar b5ccfca24b implement option 'indverbosity' to control check of inductive systems
default is 2, maximum verbosity

option indverbosity=1
  can be used to prevent check for
    "incomplete set of couplings"

option indverbosity=0
  can be used to avoid the check altogether

set indverbosity=INTEGER
  or
.option indverbosity=INTEGER
  works as well
2017-01-02 20:03:25 +01:00
rlar 05ee2e0182 check for missing and duplicate K instances 2017-01-02 20:03:17 +01:00
Francesco Lannutti bf542f64d8 check for viable mutual inductor coefficients 2017-01-02 20:00:38 +01:00
rlar fc32837b44 muttemp.c, allow negative inductance 2016-12-03 20:32:26 +01:00
rlar 681903492b devices/ind/*, whitespace 2016-12-03 20:32:08 +01:00
rlar 24aee8bf2a devices/ind/*, cleanup 2016-12-03 20:28:06 +01:00
Francesco Lannutti 0c5196e773 signal_handler.c, ft_sigintr(), exit after three SIGINT requests 2016-11-01 20:33:13 +01:00
rlar 4778b48592 inpcom.c, inp_fix_inst_calls_for_numparam(), drop redundant condition `num_subckt_params == 0'
found_mult_param() can already cope with that
2016-11-01 11:56:48 +01:00
dwarning 24dbbc393d remove the ancient nobjthack option to fake 3-terminal bjt's 2016-11-01 11:56:48 +01:00
dwarning 6827495a75 correct the comment for 5-terminal bjt's in get_number_terminals 2016-11-01 11:56:48 +01:00
dwarning 1e880deff4 allow 5-terminal bjt's in subckt expansion 2016-11-01 11:56:48 +01:00
rlar 52a1a58e14 wlist.c, wl_find(), avoid crash when `string' argument is NULL 2016-11-01 11:56:47 +01:00
h_vogt e4e24f74e6 breakp2.c, copynode(), prevent segfault if missing ')'
invoking 'save' with an erronous node, for example
  save v(thing
This can happen unexpectedly for long 'save' lines,
  which will silently be truncated.
2016-11-01 11:56:25 +01:00
rlar 7fc6609821 breakp2.c, settrace(), cleanup #2/2 2016-11-01 11:06:45 +01:00
rlar 004e49aabf breakp2.c, settrace(), cleanup #1/2
"save" command,
  reduce complexity from O(2) to O(1)
2016-11-01 11:05:59 +01:00
rlar 939555115d variables, cp_vprint, fix a memory leak 2016-10-15 15:57:59 +02:00
rlar bc325b17c5 variables, lift plot_cur->pl_env up to the invoker of cp_usrvars() 2016-10-15 15:57:54 +02:00
rlar e0db4aa665 variables, cp_vprint(), reorder for similarity 2016-10-15 15:57:52 +02:00
rlar a33876ff59 variables, variables, cp_getvar, rewrite 2016-10-15 15:57:50 +02:00
rlar 97c5e1567f variables, cp_getvar(), beware of retval == NULL 2016-10-15 15:57:48 +02:00
rlar 20b666e2d5 variables, clean up 2016-10-15 15:57:45 +02:00
rlar b2fb4e20bf variables, drop 'found', use identity found == (*p != NULL) 2016-10-15 15:57:43 +02:00
rlar 0784f76e51 variables, cleanup the for loops 2016-10-15 15:57:40 +02:00
rlar e39119c1c8 variables, use identity v == *p (and u == *p) 2016-10-15 15:57:38 +02:00
rlar d14ee053d7 variables, use a pointer to the anchor of the variable instead of 'lv' 2016-10-15 15:57:35 +02:00
rlar b13125ac84 variables, explicit processing of ft_curckt->ci_vars, drop uv2 2016-10-15 15:57:33 +02:00
rlar 7483ff9d8c variables, cp_remvar(), cleanup 2016-10-15 15:57:30 +02:00
rlar 485fba7548 variables, add some comments, add explicit case US_NOSIMVAR 2016-10-15 15:57:28 +02:00
rlar 97cdaae19f variables, cp_usrvars(), be more explicit
lift uv2 return value up to the invoker of cp_usrvars()
2016-10-15 15:57:26 +02:00
rlar 596599492e variables, drop redundant tfree(v->va_name), rely on free_struct_variable() 2016-10-15 15:57:23 +02:00
h_vogt fe24b3e6dd variable.c, remove memory leaks 2016-10-15 15:57:19 +02:00
rlar ac336c9920 options.c, cleanup inp_getoptsc() 2016-10-15 15:06:20 +02:00
h_vogt 6a0a6071a0 gettok_nc(&line): like gettok(), move pointer beyond next token in line, but without returning a string, without TMALLOC. Replaces constructs like tfree(gettok(&line)). 2016-10-15 15:06:20 +02:00
h_vogt c198f878d3 inpcom.c, bug fix in inp_chk_for_multi_in_vcvs() 2016-10-15 15:06:20 +02:00
rlar e89a5dd5b4 cktop.c, #14/14, cleanup 2016-10-15 15:06:20 +02:00
rlar b3a0f15c09 cktop.c, #13/14, cleanup 2016-10-15 15:06:20 +02:00
rlar 65596ce76c cktop.c, #12/14, cleanup 2016-10-15 15:06:20 +02:00
rlar 8d843ecec5 cktop.c, #11/14, cleanup 2016-10-15 15:06:19 +02:00
rlar 64fadb90cc cktop.c, #10/14, whitespace 2016-10-15 15:06:19 +02:00
rlar 3041936663 cktop.c, #9/14, shortcut 2016-10-15 15:06:19 +02:00
rlar a446d1e145 cktop.c, #8/14, early leave 2016-10-15 15:06:19 +02:00
rlar 0482f57bb7 cktop.c, #7/14, invert a trailing "if" 2016-10-15 15:06:19 +02:00
rlar 761e556ac2 cktop.c, #6/14, simplify loop termination 2016-10-15 15:06:19 +02:00
rlar eea4d016ec cktop.c, #5/14, simplify loop termination 2016-10-15 15:06:19 +02:00
rlar e2f4c2ec9f cktop.c, #4/14, shrink scope of some locals 2016-10-15 15:06:19 +02:00
rlar eb1c8e92bc cktop.c, #3/14, combine two `if' bodies 2016-10-15 15:06:19 +02:00
rlar ec1e1114e8 cktop.c, #2/14, remove a redundant assignment 2016-10-15 15:06:18 +02:00
rlar f0e3bc0025 cktop.c, #1/14, cleanup 2016-10-15 15:06:18 +02:00
rlar b4119b94e3 xspice, cm.h, swallow warnings 2016-10-15 15:06:18 +02:00
rlar 99e864b6bc graf.c, drop an excess cast 2016-10-15 15:06:18 +02:00
rlar 9c2733db48 macros.h, cleanup SGN() macro 2016-10-15 15:06:18 +02:00
rlar 034188cb43 dctrcurv.c, simplify 2016-10-15 15:06:18 +02:00
rlar 4c2e4d0c2f drop SIGN(), SIGN(1.0,x) --> SGN(x) 2016-10-15 15:06:18 +02:00
rlar ea5ad6b0e7 drop DC_ABS() and FTEcabs() 2016-10-15 15:06:18 +02:00
rlar 15f2c67968 use M_PI 2016-10-15 15:06:17 +02:00
rlar 9dcf62e1cd drop home grown mathematical constants 2016-10-15 15:06:17 +02:00
rlar cbf31c50c2 multi_line.h, drop some excess macros 2016-10-15 15:06:17 +02:00
rlar 8b98b9b350 use 'fabs()' 2016-10-15 15:06:17 +02:00
rlar aca1b3a374 use 'abs()' 2016-10-15 15:06:17 +02:00
h_vogt ae80067fef cmath2.c, new function stddev to calculate the standard deviation of all elements of a vector 2016-10-15 15:06:17 +02:00
h_vogt 594db31ebc cmath2.c, whitespace cleanup 2016-10-15 15:06:17 +02:00
rlar b8b6677b85 cmath2.c, drop some excess NG_IGNORE() 2016-10-15 15:06:17 +02:00
h_vogt 2ab3b82696 cmath2.c, cleanup 2016-10-15 15:06:17 +02:00
rlar 2e35329678 cmath2.c, cleanup min/max operations 2016-10-15 15:06:16 +02:00
h_vogt 0d50547ac1 commands.c: allow 10000 tokens for 'echo' and 'wrdata' 2016-10-15 15:06:16 +02:00
rlar 0d1b4d54c0 **/Makefile.am, fix "make dist" 2016-10-15 15:06:16 +02:00
rlar ceed247131 src/Makefile.am, bug #327, "fix install path for include files"
install in $includedir/ngspice
which is by default $prefix/include/ngspice

Thanks to Maciej Suminski who reported the issue in
  #327 Header files are installed  in /usr/share/ngspice/include/ngspice
  https://sourceforge.net/p/ngspice/bugs/327/
2016-10-15 15:06:16 +02:00
h_vogt 6f609abc27 x11.c, fix bug #330, rename csh variable font -> xfont
reported by graahnul.grom in
  #330 setting xfont in .spiceinit has no effect
  https://sourceforge.net/p/ngspice/bugs/330/
2016-10-15 15:06:16 +02:00
rlar 30be67b960 analysis/sensaskq.c, fix ancient bug, setting instead of asking 'deftol'
This is of no consequence,
  neither 'deftol' nor 'SENS_DEFTOL' is actually used somewhere.
2016-10-15 15:06:16 +02:00
rlar d32968bdaa variable.h, reduce visibility of auxiliary struct xxx to variable.c 2016-10-15 15:06:16 +02:00
rlar b302dbe975 inp.c, cleanup using new function `line_nconc()' 2016-10-15 15:06:16 +02:00
h_vogt c28c5d307a inp.c, remove bug with handling of options: options stemming from a command file are kept, options from sourced circuit are removed with ckt 2016-10-15 15:06:03 +02:00
h_vogt 81e1e6fa32 inp.c, inpcom.c, treat files starting with '*ng_script' as command files 2016-10-15 12:59:16 +02:00
h_vogt 6535558f9e inp.c, plug memory leak 2016-10-15 12:59:13 +02:00
rlar ebbcc2d982 frontend/inpcom.c, inp_expand_macro_in_str(), shrink scope of some locals 2016-10-15 12:59:01 +02:00
rlar 6ee2088e67 frontend/inpcom.c, expand_section_ref(), rename local variables 2016-10-15 12:58:59 +02:00
rlar 00e571dc00 frontend/inpcom.c, declare search_identifier() non static 2016-10-15 12:58:56 +02:00
h_vogt c0d5d054ab gnuplot.c, ft_gnuplot(), suppress generating the .eps and .png file
when the given output file name starts with "np_"
2016-10-15 12:58:29 +02:00
h_vogt 42ac9a2859 gnuplot.c, ft_writesimple(), upgrade command 'wrdata'
- remove a bug to allow printing of vectors with differing scale lengths
- add option 'numdgt' to specify the width of the numbers printed
- add variable wr_singlescale
  use 'set wr_singlescale' to print the scale vector only once
  (vectors need to have equal scale lengths)
- add variable wr_vecnames
  use 'set wr_vecnames' to print the vector names to the first row
2016-10-15 12:57:46 +02:00
h_vogt fef2e1439d gnuplot.c, ft_writesimple(), command 'wrdata', use the given filename literally 2016-10-15 12:43:19 +02:00
h_vogt bbd7edad72 xspice, two new commands, edisplay and eprvcd
'edisplay' will show a list of all event nodes
'eprvcd' will print all event nodes in vcd format

usage: eprvcd a0 a1 a2 b0 b1 b2 clk > myvcd.vcd
2016-08-15 19:24:11 +02:00
h_vogt 71e02fd0a0 com_linarize(), support load'ed vectors
if there is no circuit loaded then command 'linearize'
  will take time data from transient analysis vector.
(tstart, tstop, tstep)
2016-08-15 11:32:01 +02:00
h_vogt 9f62057973 introduce include file "ngspice/randnumb.h" 2016-08-15 11:30:26 +02:00
rlar c4cd2270ed com_history.c, static declaration for 'cp_hprint()' 2016-08-15 11:27:15 +02:00
rlar 6156ebd930 fteext.h, remove prototype for nonexistant 'zigset()' 2016-08-15 11:27:03 +02:00
rlar 78efbcbff8 dctran.c, remove unused variable 'del_before' 2016-08-15 11:27:00 +02:00
h_vogt 33b11f9598 comments improved 2016-08-15 11:26:55 +02:00
h_vogt 27053b877f devices/asrc, remove memory leak 2016-07-30 21:14:29 +02:00
rlar b92b25950e devices/asrc, rewrite asrc_vals, asrc_derivs allocation 2016-07-30 21:10:36 +02:00
rlar 4d79617cf1 spicelib/devcies/*dest.c, rewrite DEVdestroy() functions 2016-07-30 21:10:32 +02:00
rlar d9e0ae3504 parser/glob.c, bug fix, access to already freed memory 2016-07-30 21:04:11 +02:00
rlar a5817192e1 ni/niiter.c, #5/5, whitespace 2016-07-30 21:03:55 +02:00
rlar 266e6da24b ni/niiter.c, #4/5, cleanup 2016-07-30 21:03:49 +02:00
rlar dda415a0e3 ni/niiter.c, #3/5, use `copy()' 2016-07-30 21:03:29 +02:00
rlar 86bb88b546 ni/niiter.c, #2/5, reduce scope 2016-07-30 21:03:19 +02:00
rlar 2978621931 ni/niiter.c, #1/5, cleanup 2016-07-30 21:03:00 +02:00
rlar 3715947529 dctrcurv.c, #7/7, cleanup 2016-07-30 21:02:35 +02:00
rlar 1cdd68f787 dctrcurv.c, #6/7, use the fact 'i' being 0 2016-07-30 21:02:31 +02:00
rlar 9b75fcb9ce dctrcurv.c, #5/7, cleanup while loop 2016-07-30 21:02:26 +02:00
rlar 437bc36a8f dctrcurv.c, #4/7, polish comments 2016-07-30 21:02:21 +02:00
rlar f77485b081 dctrcurv.c, #3/7, express the value of 'i' more verbosely 2016-07-30 21:02:17 +02:00
rlar b43a98e0c9 dctrcurv.c, #2/7, use 'j' here for simplicity 2016-07-30 21:02:12 +02:00
rlar 8baf4f435f dctrcurv.c, #1/7, whitespace cleanup 2016-07-30 21:02:07 +02:00
rlar 5b42d09618 unify, use memcpy for CKTstate copy operations 2016-07-30 21:00:29 +02:00
rlar d298d5cc2f use memset() instead of deprecated bzero() 2016-07-30 20:58:33 +02:00
rlar 141ed61ec8 use memcpy() instead of deprecated bcopy() 2016-07-30 20:58:19 +02:00
h_vogt 9ab2960e87 frontend/measure.c, remove memory leak 2016-07-30 20:56:32 +02:00
h_vogt 4047a794e7 bsim3v3.24: add OMP support
model is still used by commercial (e.g. X-fab) libraries
2016-07-30 20:18:07 +02:00
h_vogt 151fed6084 bsim3v3.24: add model parameter lmlt (Channel length scaling) 2016-07-30 20:18:01 +02:00
h_vogt af53cbb415 bsim4, bug fix (when USE_OMP), uninitialised variable `here->BSIM4_27' 2016-07-30 20:00:11 +02:00
h_vogt f22e8dd970 b4v5dest.c, b4v6dest.c, remove memory leak 2016-07-30 12:19:15 +02:00
h_vogt f997203c6d add OMP support to BSIM4.5 model 2016-07-30 12:19:05 +02:00
h_vogt c74ad9b3ee control.c, remove memory leaks 2016-07-28 21:25:05 +02:00
rlar c0513ed573 inp.c, rewrite inp_savecurrents() 2016-07-26 20:18:33 +02:00
h_vogt 893157b11f inp.c, inp_savecurrents(), remove a memory leak 2016-07-20 20:02:21 +02:00
h_vogt 29cb659235 runcoms2.c, com_remcirc(), remove a memory leak 2016-07-20 20:02:18 +02:00
h_vogt da92a2483e inpcom.c, inp_expand_macro_in_str(), remove a memory leak 2016-07-20 20:02:16 +02:00
rlar 88ee1f9196 com_option.c, com_option(), cleanup, rename variables 2016-07-20 20:02:14 +02:00
h_vogt fa9eb77c0a com_option.c, com_option(), remove a memory leak 2016-07-20 20:02:12 +02:00
h_vogt 3c2c6e8cde vectors.c, vec_get(), remove a memory leak 2016-07-20 20:02:10 +02:00
h_vogt 1ef05dc51b inpcom.c, free_function(), remove a memory leak 2016-07-20 18:09:38 +02:00
h_vogt fca8ab3146 cmath4.c, cx_deriv(), remove a memory leak 2016-07-20 18:09:18 +02:00
rlar 51fa006c63 INPparseNumMod(), #14/14, whitespace cleanup 2016-07-17 18:28:23 +02:00
rlar 0b1c79172c INPparseNumMod(), #13/14, invert 'if' statement 2016-07-17 18:26:48 +02:00
rlar aa5afccf15 INPparseNumMod(), #12/14, use 'info' instead of 'lastType'
to signify having read a cardName
2016-07-17 18:26:41 +02:00
rlar c4d39d66de INPparseNumMod(), #11/14, remove unused 'cardType' 2016-07-17 18:26:27 +02:00
rlar 521fd16c11 INPparseNumMod(), #10/14, don't fall through into the 'default:'
instead, duplicate the code of the 'default:' and break
2016-07-17 18:26:21 +02:00
rlar 6b305744d9 INPparseNumMod(), #9/14, invert the 'if' statement 2016-07-17 18:26:16 +02:00
rlar 1483e2df9a INPparseNumMod(), #8/14, move the 'default:' body out of the 'switch'
this body is inevitable, as there is no other break out of the 'switch'
2016-07-17 18:25:44 +02:00
rlar 1a9bcf6b33 INPparseNumMod(), #7/14, use 'lastType' instead of the identical 'cardType'
there is no further access to cardType
thus can drop the reduntandant assignments to cardType
2016-07-17 18:25:41 +02:00
rlar 110f16b361 INPparseNumMod(), #6/14, again, assign 'lastType' sooner
in the block in-between those two positions
  there is no access to lastType
  there is no 'continue'
  there is no 'break' out of the enclosing switch
thus the assignment is inevitable

there is one position where cardType is modified,
  need to assign to lastType there too to keep it in sync
2016-07-17 18:25:29 +02:00
rlar 18d6679c02 INPparseNumMod(), #5/14, use 'lastType' instead of the identical 'cardType' 2016-07-17 18:25:26 +02:00
rlar 11f3907139 INPparseNumMod(), #4/14, assign 'lastType' sooner
in the block in-between those two positions
  there is no access to lastType or cardType
  there is no 'continue'
  there is no 'break' out of the enclosing 'switch'
thus the assignment is inevitable
2016-07-17 18:25:20 +02:00
rlar 7862a4f59f INPparseNumMod(), #3/14, `continue' the loop instead of
'break'ing out of the `switch'

this is equivalent because the 'switch' is the last statement in the loop body
2016-07-17 18:24:35 +02:00
rlar c1c7b5305e INPparseNumMod(), #2/14, transform the `while' loop into a `for' loop
there was no 'continue' for this loop
there was no 'break' out of this loop
there was no assignment to txtCard, thus txtCard can't be NULL
2016-07-17 18:24:30 +02:00
rlar e824cbd193 INPparseNumMod(), #1/14, return sooner
setting txtCard to 0 and cardType to E_MISSING (which is < 0)
caused the following `if (cardType >= 0)' to be skipped
  and then broke out of the enclosing 'while' loop
in this case, there where no other statements executed
2016-07-17 18:24:20 +02:00
h_vogt 77380219d8 breakp2.c, prevent crash in `save' command if no circuit is loaded 2016-07-17 18:12:53 +02:00
rlar 34f8841805 cpl/cplsetup.c, cleanup 2016-07-17 11:49:42 +02:00
h_vogt 7ea4e99842 numparam/general.h, remove redundant memory management functions 2016-07-17 11:45:22 +02:00
rlar a6f530b95c USE_OMP, cleanup initialisation of local variable `model' 2016-07-17 11:36:47 +02:00
rlar 5b2fa579f1 USE_OMP, rename variables, `good' --> `error'
to express the actual meaning of these variables
2016-07-17 11:35:58 +02:00
rlar fddbb7d9eb USE_OMP, fix type of local variables `idx' and `InstCount' 2016-07-17 11:32:56 +02:00
rlar 994bec7859 declare free() / realloc() arguments `const void *'
to avoid extra casting when freeing `const' strings
2016-07-17 11:19:34 +02:00
h_vogt 6a7895fbc1 frontend/options.c, fix memory leak (pl_name, pl_title, pl_date) 2016-07-17 11:12:24 +02:00
rlar 1c565a1a89 frontend/rawfile.c, raw_write(), fix memory ownership for pl_title and pl_date
avoid assigning cloned strings
  to pl_date/pl_title fields of multiple plots

avoid excess allocation
2016-07-17 11:12:22 +02:00
h_vogt 236b99f2b1 cktdest.c, xspice, set g_mif_info.ckt = NULL
when destroying/remcirc'ing a circuit

to avoid a crash in EVTfindvec()
  which might try to access fields in the destroyed CKTcircuit

( excercise: tran, remcirc, load rawfile, plot something_nonexistant )
2016-07-17 10:57:49 +02:00
h_vogt f66e76fb5f implement option 'xmu' to control trapezoidal integration method
default is 0.5

option xmu=0.49
  can be used to add some damping to reduce trap ringing

set xmu=0.49
  or
.option xmu=0.49
  works as well
2016-07-16 15:21:27 +02:00
Francesco Lannutti ef0dcfe5f2 avoid bison dependency `version >= 2.7' 2016-07-09 20:58:17 +02:00
Francesco Lannutti 99a20162d5 bsimsoi/b4soiset.c, bug fix, don't allocate `B4SOIEbPtr' twice 2016-06-14 19:38:43 +02:00
h_vogt b14e7cb040 sharedspice.c, remove meory leaks 2016-05-28 16:52:50 +02:00
rlar 4c60783e4d xspice, implement EVTdest() to fix xspice memory leaks 2016-05-07 15:50:34 +02:00
rlar af93d79675 ngspice/mifparse.h, ngspice/mifcmdat.t, reduce scope of these include files 2016-05-07 15:44:50 +02:00
rlar 97cc400efb ngspice/evt.h, ngspice/enh.t, reduce scope of these include files 2016-05-07 15:36:43 +02:00
h_vogt efcd8584f1 error.c, ft_sperror(), memory leak, free memory returned by `if_errstring()' 2016-04-03 18:50:28 +02:00
rlar 5611ca4f10 harmonise all incarnations of `if_errstring()' to return malloced memory 2016-04-03 18:44:48 +02:00
h_vogt 50bd157349 parser/inppas3.c, fix memory leak 2016-04-03 11:26:41 +02:00
h_vogt ffee2a6b5f parser/inppas3.c, fix memory ownership
`INPgetTok()' creates `nodename' which is then committed to `INPtermInsert()'
2016-04-03 11:26:40 +02:00
rlar ddf01dbe3f parser/inppas3.c, shrink scope of local variable `name' 2016-04-03 11:26:38 +02:00
rlar cff23b8d38 fix commit "ngspice.h, cm.h, cleanup NAN defines" 2016-04-02 18:01:17 +02:00
rlar d58fd306f3 input.c, inchar(), cleanup 2016-04-01 20:05:37 +02:00
rlar 1aab43dd1a xspice/cmpp/*.l, flex file cleanup and use %option noinput, nounput 2016-04-01 19:36:51 +02:00
h_vogt 9154ab103a inp2dot.c, dot_tran(), fix a memory leak 2016-04-01 19:36:36 +02:00
h_vogt 0443a2690c glob.c, brac1(), fix a memory leak 2016-04-01 18:25:10 +02:00
h_vogt 841f2846fe plotit.c, properly free a reversed wordlist 2016-04-01 18:05:40 +02:00
rlar 5299f8cdb6 ngspice.h, cm.h, cleanup NAN defines 2016-04-01 18:03:38 +02:00
h_vogt 8480898399 frontend/variable.c, remove memory leak 2016-04-01 17:40:17 +02:00
rlar ac726f0cf4 struct variable, #18/18, clean 2016-04-01 17:39:53 +02:00
rlar a6cd5eea45 struct variable, #17/18, clean 2016-04-01 17:39:22 +02:00
rlar af81e6810e struct variable, #16/18, drop intermediate variable 2016-04-01 17:37:27 +02:00
rlar 212121d373 struct variable, #15/18, rewrite in terms of `var_alloc_xxx()' (do-3) 2016-04-01 17:36:57 +02:00
rlar 57f56f53a6 struct variable, #14/18, introduce `var_alloc_xxx()' 2016-04-01 17:34:55 +02:00
rlar bf5acda362 struct variable, #13/18, reorder var_alloc() invocation 2016-04-01 17:34:25 +02:00
rlar eb53b4d703 struct variable, #12/18, rewrite in terms of `var_alloc()' (do-2) 2016-04-01 17:34:03 +02:00
rlar 8691368a81 struct variable, #11/18, introduce `var_alloc()' 2016-04-01 17:32:36 +02:00
rlar 68042b3d1b struct variable, #10/18, rewrite in terms of `var_set_xxx()' (do-1) 2016-04-01 17:32:12 +02:00
rlar bbbd531d8d struct variable, #9/18, introduce `var_set_xxx()' 2016-04-01 17:29:58 +02:00
rlar cc3a124120 struct variable, #8/18, collect struct variable operations 2016-04-01 17:29:36 +02:00
rlar 41b5f17906 struct variable, #7/18, reorder struct variable operations 2016-04-01 17:28:57 +02:00
rlar f4f0ae3f61 struct variable, #6/18, collect struct variable operations 2016-04-01 17:27:29 +02:00
rlar e0ae0bcff1 struct variable, #5/18, reorder struct variable initialisation 2016-04-01 17:26:51 +02:00
rlar b748f2d6d0 struct variable, #4/18, shrink scope of local variables 2016-04-01 17:26:22 +02:00
rlar 830b4f443f struct variable, #3/18, cleanup struct variable field initialisation 2016-04-01 17:25:46 +02:00
rlar 01a0449420 struct variable, #2/18, reorder struct variable field initialisation 2016-04-01 17:24:50 +02:00
rlar cb4c07b7f0 struct variable, #1/18, cleanup for loops 2016-04-01 17:23:14 +02:00
rlar a9aca09320 frontend/ftesopt.c, getFTEstat(), collect struct variable operations 2016-04-01 17:22:13 +02:00
rlar cdf2b69a38 frontend/ftesopt.c, getFTEstat(), prepare for rewrite 2016-04-01 17:22:12 +02:00
rlar 1d15f6bfce fix struct variable initialisation 2016-04-01 17:22:07 +02:00
rlar 698cbe20dd frontend/options.c, fix `cp_enqvar(char *word)', missing `copy()' 2016-04-01 17:22:05 +02:00
rlar 81bf9fb9ba frontend/ftesopt.c, ft_getstat(), cleanup 2016-04-01 17:22:02 +02:00
rlar 371bbf487b frontend/ftesopt.c, getFTEstat(), include struct variable initialisation 2016-04-01 17:22:00 +02:00
rlar 53531da715 frontend/ftesopt.c, getFTEstat(), add `next' to the function arguments 2016-04-01 17:21:59 +02:00
rlar a98dde245c frontend/ftesopt.c, shrink scope of local variables 2016-04-01 17:21:58 +02:00
rlar 413ae5784c frontend/ftesopt.c, ft_getstat(), cleanup for loop variable consing 2016-04-01 17:21:56 +02:00
rlar 44de319c34 frontend/ftesopt.c, getFTEstat(), cleanup signature 2016-04-01 17:21:55 +02:00
rlar a8d96c0d17 frontend/ftesopt.c, getFTEstat(), cleanup signature 2016-04-01 17:21:53 +02:00
h_vogt e60f2f63e1 frontend/cpitf.c, cp_istrue(), cleanup comments 2016-03-26 22:48:49 +01:00
h_vogt f52a12a95a cktsetup.c, invoke `SetAnalyse("Device Setup",...)' only once 2016-03-26 22:24:54 +01:00
h_vogt 494a58cca9 main.c, add variable 'batchmode'
which is set when command line option `-b' is active
2016-03-26 22:14:11 +01:00
h_vogt 8b709a394f cpitf.c, cp_istrue(), avoid surplus Warning Message when an `if' condition expands to nothing
When in expression
  if $var ...
the variable `var' was undefined, then
ngspice printed a surplus warning message
>  Warning: NULL arithmetic expression
in addition to the error message
>  Error: var: no such variable.

ngspice continues to process the conditional construct
  and evaluates the condition as "FALSE"
2016-03-26 21:58:39 +01:00
rlar 059f2b6c0d fix garbage collection of vectors returned by ft_evaluate() 2016-03-26 18:48:50 +01:00
rlar 9652cc46c8 plotting/graf.c, cleanup 2016-03-23 17:04:55 +01:00
h_vogt c332b33d23 parser/lexical.c, #10/10, add some comments 2016-03-22 15:51:58 +01:00
rlar a551f87652 parser/lexical.c, #9/10, use dynamic buffer allocation 2016-03-22 15:51:48 +01:00
rlar 2d480637c9 parser/lexical.c, #8/10, use a struct to store the buffer state 2016-03-22 15:51:36 +01:00
rlar 615b8a4598 parser/lexical.c, #7/10, use `copy_substring()' 2016-03-22 15:51:13 +01:00
rlar 9a7e915a9f parser/lexical.c, #6/10, cleanup 2016-03-22 15:51:04 +01:00
rlar 8f09c35c5a parser/lexical.c, #5/10, change buf/linebuf usage
properly '\0' terminate the buffers where needed
instead of an unspecific bzero() invocation
2016-03-22 15:50:52 +01:00
rlar b7f3dbc0fe parser/lexical.c, #4/10, rename `cw' --> `wlist_tail' 2016-03-22 15:50:48 +01:00
rlar 4cabf8fa6c parser/lexical.c, #3/10, move the `wlist' and `cw' resetting
to the label `nloop'
2016-03-22 15:50:09 +01:00
rlar a0f5111436 parser/lexical.c, #2/10, move the `wlist' and `cw' resetting
nearer to the `goto nloop'
2016-03-22 15:50:03 +01:00
rlar a2af93685f parser/lexical.c, #1/10, this condition is allways true 2016-03-22 15:26:33 +01:00
rlar 521db88eff frontend/rawfile.c, use "stringskip.h" 2016-03-22 15:26:28 +01:00
rlar f3e61b838e frontend/inpcom.c, use "stringskip.h" 2016-03-22 15:26:21 +01:00
rlar 5e04924890 cleanup `skip_ws()' usage 2016-03-22 15:26:11 +01:00
rlar b1d8b99018 skip-ws, #6/6, rename to match inpcom.c 2016-03-22 15:26:10 +01:00
rlar 22875d056b skip-ws, #5/6, use functional style 2016-03-22 15:26:09 +01:00
rlar d12679fccd skip-ws, #4/6, drop `TEMPORARY_SKIP_WS_X0'
use TEMPORARY_SKIP_WS_X1 instead of TEMPORARY_SKIP_WS_X0
2016-03-22 15:26:08 +01:00
rlar a86f2068c8 skip-ws, #3/6, use TEMPORARY macros, obj-invariant 2016-03-22 15:26:06 +01:00
rlar 6d1171ad6f skip-ws, #2/6, introduce "ngspice/stringskip.h"
with some temporary macros to skip whitespace
2016-03-22 15:26:05 +01:00
rlar 1ad65120d5 skip-ws, #1/6, prepare for rewrite, obj-invariant 2016-03-22 15:26:04 +01:00
rlar deeb06b063 inpcom.c, inline and rename the `skip' family, depreciate some of them 2016-03-22 15:26:02 +01:00
rlar 88983b079b numparam/spicenum.c, prevent memory access beyond end of string 2016-03-22 15:25:47 +01:00
rlar 1578348fdf frontend/inp.c, inp_evaluate_temper(), fix memory hole 2016-03-22 15:25:43 +01:00
rlar cc8f84ab84 frontend/inp.c, inp_parse_temper(), bug fix, prevent multiple free'ed memory 2016-03-22 15:25:39 +01:00
rlar c9ee5a4501 frontend/inp.c, inp_parse_temper(), rewrite linked list insertion 2016-03-22 15:25:33 +01:00
rlar f9794431c3 xspice/icm/digital/d_osc/cfunc.mod, swallow a warning 2016-03-22 15:24:53 +01:00
rlar 297c1e90b6 xspice/icm/digital/d_state/cfunc.mod, swallow warnings
current state and next_state are denoted by integers,
  though parsed with a parser written for double values.
2016-03-22 15:24:45 +01:00
rlar 2b0c60dadf xspice/ipc/ipcsockets.c, choke some warnings
Fixme, this code is simply broken,
nobody seems to use it.
One would need to change the socket protocol (message length)
  in agreement with the users of the protocol.

For the time beeing,
  just suffocate the warnings in a way which does not change
  the broken behaviour of this code.
2016-03-22 15:24:41 +01:00
rlar 20aaa3973a frontend/trannoise/wallace.c, avoid warnings
drop unused `s' and `cob'
chage type of `coa', which is used exclusively in `unsigned int' context
2016-03-22 15:24:31 +01:00
rlar 4b5669a51c frontend/resource.c, fix bizarre time mathematics 2016-03-22 15:24:25 +01:00
rlar 36064b624a frontend/resource.c, rename time variables to denote their actual units 2016-03-22 15:24:20 +01:00
rlar 1125b293e3 frontend/resource.c, bug fix, lastusec actually denotes milliseconds 2016-03-22 15:23:53 +01:00
rlar 03630efb8c remove ancient artefact `#ifdef ipsc' 2016-03-22 15:23:46 +01:00
rlar 40a0cea0d2 swap some `SWAP' arguments for readability 2016-03-22 15:23:05 +01:00
rlar bd0bc3038b use `SWAP' macro 2016-03-22 13:04:13 +01:00
rlar b36385e333 improve `SWAP' macro 2016-03-22 13:03:59 +01:00
rlar f84d2d4e44 misc/wlist.c, minor cleanup 2016-03-22 11:22:53 +01:00
rlar 273be42cfd improve `ABORT' macro 2016-03-21 21:22:26 +01:00
rlar 6fe937f931 drop unused `SWAPINT' macro 2016-03-21 21:22:23 +01:00
rlar 6342bec8ec everywhere, drop `MALLOC()' and `REALLOC()' 2016-03-21 21:22:15 +01:00
rlar 4c1c95e20f everywhere, use `TMALLOC()' instead of `alloc()' 2016-03-21 21:22:07 +01:00
h_vogt 7d8e287fa3 enable backquote substitution for Visual Studio console apps 2016-03-09 20:24:37 +01:00
h_vogt 25264b3980 memory.h: hrealloc not used anywhere 2016-03-09 20:24:37 +01:00
rlar d0897fd0c4 src/spicelib/parser/inpptree.c, bug fix, B expression of kind `max(0,expr)'
identified and reported by Marcel Hendrix,
expressions of this kind could trigger a segmentation violation.

PTdifferentiate() roughly evaluates to
  ternary_fcn(ge0(0-expr), 0, PTdifferentate(expr))
and mkb() optimizes
  0 - expr --> unary_minus(expr)

IFeval() invokes PTeval() for the derivative too,
PTeval() looks at the incorrect tree->funcnum
  and tries to PTeval for a second argument which is not there,
     (unary_minus does not have a second argument)
  causing a segmentation fault.
2016-03-09 20:24:37 +01:00
rlar 0932120a7f special cases of the char variants of the <ctype.h> family 2016-03-09 20:24:36 +01:00
rlar 726d0be34c use char variants of the <ctype.h> toxxxx() family 2016-03-09 20:24:36 +01:00
rlar 71a7c3459b use char variants of the <ctype.h> isxxxx() family 2016-03-09 20:24:36 +01:00
rlar d0c5a495ca ngspice.h, cm.h, cmpp.h, introduce char variants of the <ctype.h> family 2016-03-09 20:24:36 +01:00
rlar 07aba2e2ae frontend/variable.c, used `isalnum()' instead of homegrown `isalphanum()' 2016-03-09 20:24:36 +01:00
rlar 7a51ead0a5 frontend/inpcom.c, char argument for `identifier_char()' 2016-03-09 20:24:36 +01:00
rlar ea0cd17974 numparam/xpressn.c, fix a warning 2016-03-09 20:24:36 +01:00
rlar 1a257cd55a frontend/breakp.c, cleanup `dbfree1()' and `dbfree()' 2016-03-09 18:23:23 +01:00
rlar 8ce99a3c66 plotting/graf.c, bug fix, dbfree1() is wanted instead of dbfree() 2016-03-09 18:23:22 +01:00
mhx d97e12b1ab frontend/breakp.c, avoid segfault on/after "delete all" 2016-03-09 18:23:21 +01:00
rlar 6d356f439d autogen.sh, src/Makefile.am, fix a build problem
in autogen.sh:
  libtoolize generates m4/*.m4 files
  autoheader generates config.h.in
    but only when needed

Thus a second autogen.sh invocation generated new .m4 files
  but left config.h.in untouched with old timestamp

The makefiles did recognice this situation and tried to regenerate
  config.h.in and config.h
But the subdir src/include was not the first one in src/Makefile.am
  and thus this update did occure too late,
  causing further rebuilds in the next make invocation.

Avoid this with --force arguments to the autotools,
  and put src/include into the first position.
2016-03-09 18:23:20 +01:00
rlar d59b74471b xspice/icm, fix some warnings 2016-03-09 18:23:18 +01:00
h_vogt 51bc944def xspice/cmpp, compatibility with MS Visual Studio 2016-02-07 17:45:43 +01:00
h_vogt fc83bd099a miscoms.c, mscvars.c, spinit.in, variable 'askquit' instead of 'noaskquit' 2016-02-07 17:37:42 +01:00
h_vogt db0849d076 terminal.c, miscvars.c, variable 'moremode' instead of 'nomoremode', new default
the `more' pager is now disabled by default
2016-02-07 17:37:34 +01:00
h_vogt eef5a058d2 inp.c, disable command `edit' unless `interactive' has been set 2016-02-07 17:36:54 +01:00
h_vogt 888bcce829 spicenum.c, new variable `interactive'
when set enables interactive numparam error handling
2016-02-07 17:34:26 +01:00
h_vogt e6034b0e95 postcoms.c, change command `setplot'
`setplot'
  print a list of plots available
`setplot <plotname>'
  make <plotname> the current plot
`setplot new'
  create a new plot
2016-02-07 17:34:15 +01:00
h_vogt 5527325a67 runcoms.c, change command `setcirc'
`setcirc'
  print a list of circuits loaded
`setcirc <n>'
  switch to circuit number <n>
2016-02-07 17:34:08 +01:00
h_vogt a162ecec9f src/xspice/evt/evtprint.c, bug fix, avoid segfault
print an error message if no circuit has been loaded
2016-02-07 17:33:54 +01:00
h_vogt 9531318d8f src/frontend/commands.c, cleanup 2016-02-07 17:33:45 +01:00
rlar d07b76610b visualc/.gitignore, src/spinit.in, cleanup 2016-02-07 17:33:39 +01:00
h_vogt 85bfaaabef src/xspice/examples/io_types.deck, bug fix, instance name
instance `again' occured twice
2016-02-07 17:33:25 +01:00
rlar da5f86c50b spicelib/analysis/transetp.c, fix typo, `TST0P' -> `TSTOP' 2016-01-22 22:41:32 +01:00
h_vogt 356a262f7f cktdefs.h, some parameter descriptions added 2016-01-22 22:41:30 +01:00
rlar 885e7df8a5 xspice, introduce cm_message_printf() 2016-01-07 16:55:09 +01:00
h_vogt 137f8e9641 com_option.c, mif_inp2.c: remove memory leaks 2016-01-07 16:54:59 +01:00
Krzysztof Blaszkowski 03b47b3e34 src/frontend/outif.c, plotAddRealValue() etc, rallocate more coarsely
reallocate in chunks, instead of once per time step.
2016-01-07 09:05:00 +01:00
rlar 9d32a0a5a9 simplify complex assignments 2015-12-29 18:15:06 +01:00
Krzysztof Blaszkowski 2c63d0f6d3 frontend/outitf.c, #4/4, reorder, first do the work, then print 2015-12-29 14:58:19 +01:00
Krzysztof Blaszkowski e952014016 frontend/outitf.c, #3/4, abstraction, `&run->data[i]' --> `d' 2015-12-29 14:58:04 +01:00
Krzysztof Blaszkowski 7720ae936f frontend/outitf.c, #2/4, avoid repeated access to `run->numData' 2015-12-29 14:57:51 +01:00
Krzysztof Blaszkowski 6fa60faf7e frontend/outitf.c, #1/4, abstraction, introduce `OUTpD_memory()' 2015-12-29 14:57:42 +01:00
rlar df70661c3a dvec abstraction, #11/11, introduce `dvec_realloc()' 2015-12-28 20:34:42 +01:00
rlar c2a7821449 dvec abstraction, #10/11, introduce `dvec_trunc()' 2015-12-28 20:34:42 +01:00
rlar 3962453739 dvec abstraction, #9/11, introduce `dvec_free()' 2015-12-28 20:34:42 +01:00
rlar 8243696338 dvec abstraction, #8/11, upgrade `dvec_alloc()' 2015-12-28 20:34:42 +01:00
rlar fdae9b7c06 dvec abstraction, #7/11, emphasise `v_scale = NULL' initialisation 2015-12-28 20:34:42 +01:00
rlar 1304001739 dvec abstraction, #6/11, emphasise `v_plot = NULL' initialisation 2015-12-28 20:34:42 +01:00
rlar cea2664db0 dvec abstraction, #5/11, emphasise `v_numdims = 0' initialisation 2015-12-28 20:34:42 +01:00
rlar 8a4a37b5bb dvec abstraction, #4/11, emphasise `ZERO(dvec)' initialisation 2015-12-28 20:34:42 +01:00
rlar 908c650f72 dvec abstraction, #3/11, use `dvec_alloc()' 2015-12-28 20:34:42 +01:00
rlar 9d99a06bcd dvec abstraction, #2/11, introduce `dvec_alloc()' 2015-12-28 20:34:42 +01:00
rlar 08ad3f6ab5 dvec abstraction, #1/11, reorder 2015-12-28 20:34:42 +01:00
rlar 3ab568fcba frontend/device.c, com_alter_common(), #4/4 rename and reuse locals 2015-12-28 12:57:30 +01:00
rlar dcef3da677 frontend/device.c, com_alter_common(), #3/4 use `wl_cons()' 2015-12-28 12:57:29 +01:00
rlar 335a47f70a frontend/device.c, com_alter_common(), #2/4 shrink scope of locals 2015-12-28 12:57:28 +01:00
rlar a3e06831fd frontend/device.c, com_alter_common(), #1/4 rewrite for readability 2015-12-28 12:57:27 +01:00
rlar c442994a0a frontend/evaluate.c, apply_func(), reorder 2015-12-27 19:03:22 +01:00
rlar 814c51659e frontend/rawfile.c, raw_read(), reorder 2015-12-27 18:52:52 +01:00
h_vogt 88414a58ce frontend/control.c, bug fix, "#310 Command parser problem with wrdata"
make all commands (see manual 17.5) entered manually,
  with .control section or by script case insensitive.

generally in inpcom.c everything is converted to lowercase,
  but there are exceptions, e.g. "wrdata", which might be
  followed by arguments whose case needs to be preserved.
  (most notably filenames)

Thanks to Mathias Gebhardt, who reported this bug in
  #310 Command parser problem with wrdata
  http://sourceforge.net/p/ngspice/bugs/310/
2015-12-27 15:36:04 +01:00
Krzysztof Blaszkowski 0bfee6575b ngspice/dvec.h, struct member `v_rlength', improve comment 2015-12-27 12:58:52 +01:00
rlar 68bd883535 plotting/graf.c, collect related global variables in a struct 2015-12-27 12:08:48 +01:00
rlar c405d0ff86 plotting/graf.c, cleanup initialisation, `gr_init()' is in charge to do that 2015-12-27 12:08:44 +01:00
rlar 299849c0db plotting/gnuplot.c, ft_gnuplot(), bug fix, allow plotting a family of curves
in the vein of plotcurv.c, ft_graf()
2015-12-27 12:05:55 +01:00
rlar be3c60badd sharedspice.c, add prototype for `getisrcval()' 2015-12-27 12:03:34 +01:00
h_vogt 8ae0b53b9f sharedspice.c, fix `retval' parameter for `pthread_exit()' 2015-12-27 12:03:29 +01:00
rlar 1c1fa6b333 frontend/vectors.c, vec_mkfamily(), #6/6 reorder 2015-12-27 11:42:27 +01:00
rlar a3bf161f89 frontend/vectors.c, vec_mkfamily(), #5/6 fuse those two `for' loops 2015-12-27 11:42:26 +01:00
rlar f86d5c60e4 frontend/vectors.c, vec_mkfamily(), #4/6 drop `j', reuse `i' 2015-12-27 11:42:25 +01:00
rlar e52b85ac6c frontend/vectors.c, vec_mkfamily(), #3/6 earlier initialisation of `count[]' 2015-12-27 11:42:24 +01:00
rlar 83ac9c1d2d frontend/vectors.c, vec_mkfamily(), #2/6 rewrite v_link2 consing 2015-12-27 11:42:23 +01:00
rlar d4558079e3 frontend/vectors.c, vec_mkfamily(), #1/6 bug fix, set v_dims[] properly 2015-12-27 11:42:22 +01:00
rlar 5a678e38dc plotting/plotit.c, xtend(), #7/7 reorder 2015-12-27 11:21:46 +01:00
rlar 64d6a5d7c0 plotting/plotit.c, xtend(), #6/7 drop some local variables 2015-12-27 11:21:45 +01:00
rlar d1a68482a5 plotting/plotit.c, xtend(), #5/7 use `TREALLOC()' 2015-12-27 11:21:44 +01:00
rlar 64b43b0c68 plotting/plotit.c, xtend(), #4/7 support vector of zero length 2015-12-27 11:21:43 +01:00
rlar 7c6fc1343b plotting/plotit.c, xtend(), #3/7 complex assignment 2015-12-27 11:21:42 +01:00
rlar 13e649209c plotting/plotit.c, xtend(), #2/7 fix index `i' 2015-12-27 11:21:41 +01:00
rlar 83fc07e770 plotting/plotit.c, xtend(), #1/7 don't free already freed data 2015-12-27 11:21:40 +01:00
rlar c1b9f746a3 frontend/device.c, com_alter_common(), #10/11 whitespace 2015-12-26 19:00:12 +01:00
rlar 78a0f74bbc frontend/device.c, com_alter_common(), #9/11 useless allocation 2015-12-26 19:00:08 +01:00
rlar f04d6cffc2 frontend/device.c, com_alter_common(), #8/11 reorder 2015-12-26 19:00:04 +01:00
rlar 245ef2bbf1 frontend/device.c, com_alter_common(), #7/11 reorder 2015-12-26 19:00:00 +01:00
rlar 8fb0143043 frontend/device.c, com_alter_common(), #6/11 thats always true, drop `type' 2015-12-26 18:59:56 +01:00
rlar 88fa0bc8d2 frontend/device.c, com_alter_common(), #5/11 cleanup `i' usage 2015-12-26 18:59:52 +01:00
rlar 247767e3bf frontend/device.c, com_alter_common(), #4/11 rewrite while() loop 2015-12-26 18:59:48 +01:00
rlar 80b76ebeb2 frontend/device.c, com_alter_common(), #3/11 rewrite while() loop 2015-12-26 18:59:44 +01:00
rlar c284161949 frontend/device.c, com_alter_common(), #2/11 set `v_type' and `v_flags' too 2015-12-26 18:59:38 +01:00
rlar fd2329c7e9 frontend/device.c, com_alter_common(), #1/11 fix error return 2015-12-26 18:59:27 +01:00
h_vogt a18ac9c474 include/ngspice/cm.h, xspice, introduce NAN for visual studio 2015-12-23 14:04:23 +01:00
rlar 8e50275345 frontend/evaluate.c, apply_func(), reorder 2015-12-23 10:56:12 +01:00
rlar 6709ab900a frontend/outitf.c, plotInit(), reorder 2015-12-23 10:55:06 +01:00
rlar 08feced9b6 frontend/rawfile.c, raw_read(), reorder 2015-12-23 10:46:42 +01:00
rlar da5ebd8645 frontend/evaluate.c, doop(), emphasise `v_type' initialisation 2015-12-23 10:37:44 +01:00
rlar 9e353fbae8 frontend/rawfile.c, raw_read(), emphasise `v_type' initialisation 2015-12-23 10:37:41 +01:00
rlar 7bab434504 frontend/rawfile.c, fixdims(), turn `if' upside-down for readability 2015-12-23 10:33:53 +01:00
rlar 1b62c1f050 plotting/plotit.c, plotit(), `v_length' shall be updated (lpr device, asciiplot) 2015-12-23 10:30:47 +01:00
rlar d632e3314d frontend/parse.c, PP_mknnode(), reorder 2015-12-22 20:45:08 +01:00
rlar 30becb4509 frontend/vectors.c, vec_get(), #2/2 rewrite 2015-12-22 18:24:17 +01:00
rlar d360023e14 frontend/vectors.c, vec_get(), #1/2 drop unused allocation 2015-12-22 18:24:14 +01:00
rlar d37f18d777 misc/string.c, sprinkle some const'ness 2015-12-22 16:47:42 +01:00
rlar 9473ec575f drop some remaining `NEW*' macros, use TMALLOC instead 2015-12-19 19:39:29 +01:00
rlar 9546b178fb drop macro `NEW', use TMALLOC instead 2015-12-19 19:38:55 +01:00
rlar 9fde8e374a txl/txlsetup.c, avoid warning, drop static `GdC' and `RdL' 2015-12-17 21:59:37 +01:00
rlar cd7e77d21f src/frontend/inp.c, avoid warning, drop nested local `wl' 2015-12-17 21:45:18 +01:00
rlar d47f073550 txl/txlsetup.c, cpl/cplsetup.c, avoid warning, rename nested local `x1' 2015-12-17 20:48:59 +01:00
rlar 36aa107c0e src/spicelib/parser/inpptree.c, avoid warning, drop nested local `arg1' ... 2015-12-17 20:40:31 +01:00
rlar 0e0c2785a4 src/spicelib/analysis/dcpss.c, avoid warning, drop a nested local `i' 2015-12-17 20:35:11 +01:00
rlar 1aab57d17e src/spicelib/analysis/cktdisto.c, avoid warning, drop a nested local `size' 2015-12-17 20:31:53 +01:00
rlar 270f508b56 src/frontend/postsc.c, avoid warning, rename local variable `scale' 2015-12-17 19:50:49 +01:00
rlar 053a56e267 src/ciderlib/oned/onesetup.c, bug fix, access beyond array bounds 2015-12-17 18:51:21 +01:00
rlar c94d7153fd fix commit, "src/sharedspice.c, add vfprintf to interface for transferring ..." 2015-12-16 21:14:11 +01:00
h_vogt 1cd8bbf744 frontend/postcoms.c, add variable `width' to command "print line ..." 2015-12-16 20:12:01 +01:00
rlar 876086f768 fix commit "frontend/parse.c, bug fix, PPlex(.."dc1.@m1[vth][1]"..)"
which broke
  let something = foo[var]
notably used in
  examples/Monte_Carlo/MC_ring.sp
2015-12-16 19:17:41 +01:00
h_vogt 0b92d8cfe1 src/sharedspice.c, add vfprintf to interface for transferring messages 2015-12-15 22:16:47 +01:00
rlar 33487b7d68 src/sharedspice.c, add ATTRIBUTE_NORETURN to function `shared_exit()' declaration 2015-12-15 22:05:14 +01:00
rlar 8ec9e1a040 src/xspice/ipc/ipcstdio.c, fix ancient style function definition 2015-12-15 20:39:56 +01:00
h_vogt 23308f7fcf src/Makefile.am, libpsapi not required when linking shared ngspice,
prevents creating dll with actual libtool
2015-12-15 20:27:03 +01:00
rlar 9e237d700e txl/txlsetup.c, cpl/cplsetup.c, rename static variable `ndn' --> `ndn_btree' 2015-12-15 20:19:12 +01:00
rlar f56fae2915 frontend/com_ghelp.c, avoid unused variables 2015-12-15 20:08:31 +01:00
rlar a1439f5d4d plotting/plotit.c, rename local variable `j' --> `y_type' 2015-12-15 19:58:11 +01:00
rlar f97e4a2a35 plotting/plotit.c, cleanup search for common y_type 2015-12-15 19:57:12 +01:00
rlar 18426c755d harmonise `struct circ' variables, `ckt' --> `ci' 2015-12-15 18:36:59 +01:00
rlar f6716af635 frontend/ftesopt.c, rename local variable `ft_curckt' --> `ci'
to avoid compiler warning:
  'ft_curckt' hides global declaration
2015-12-15 18:36:45 +01:00
rlar f826ff82f8 introduce `ATTRIBUTE_NORETURN' for `controlled_exit()' and `sp_shutdown()' 2015-12-15 18:10:18 +01:00
h_vogt 84e31cae82 xspice/icm/digital/d_source/cfunc.mod, bug #301, increase MAX_STRING_SIZE for input file reading
Thats a workaround for a segmentation fault (buffer overrun)
  caused by too long lines in the input file for a xspice "d_source"

Thanks to Siddhant Saraf, who reported this in
  #301 d_source gives wrong error and then SIGSEGV (Address boundary error)
  http://sourceforge.net/p/ngspice/bugs/301/
2015-12-13 12:28:46 +01:00
h_vogt ab05d9df04 numparm/spicenum.c, rename local variable `cp_out' --> `fp'
to avoid a "hides global declaration" compiler warning
2015-12-13 12:24:38 +01:00
h_vogt f7d387005f numparam/spicenum.c, bug #300, exit gracefully upon numparam error (SHARED_MODULE)
Thanks to Sergii Baitala, who reported this in
  #300 Shared ngspice: ngspice hangs on getchar
  http://sourceforge.net/p/ngspice/bugs/300/
2015-12-13 11:46:11 +01:00
h_vogt 806fdfb029 vsrc/vsrcask.c, bug #299, add "nop" handler for VSRC_EXTERNAL in SHARED_MODULE
Avoid NAN error when executing "show all"

Thanks to Sergii Baitala, who reported this in
  #299 Shared ngspice: missed VSRC_EXTERNAL handler in VSRCask
  http://sourceforge.net/p/ngspice/bugs/299/
2015-12-13 11:46:09 +01:00
dwarning 7fb8368133 favor exponential temperatur equation if all parameters tc1, tc2 and tce are given 2015-11-22 10:43:42 +01:00
h_vogt df846346a1 visualc, cope with `bool' and `isnan()' in visual studio 2015
now they have isnan(),
  (presumably in math.h)

now they have a C99 `bool',
  (maybe even though not asked for with <stdbool.h>)
2015-11-15 15:09:27 +01:00
rlar 917ae030c9 src/sharedspice.c, fix #include style 2015-11-15 15:09:26 +01:00
rlar f33d9953b3 frontend/define.c, cleanup `ft_substdef()' 2015-11-13 20:17:18 +01:00
rlar 8f69a04833 frontend/define.c, cleanup `numargs()' 2015-11-13 20:17:17 +01:00
rlar 22d5a7124a frontend/define.c, abstraction, introduce `numargs()' 2015-11-13 20:17:16 +01:00
rlar 37979de65a frontend/define.c, trcopy(), rename `nn' --> `args' 2015-11-13 20:17:16 +01:00
rlar e99ba7478b frontend/define.c, trcopy(), rename `args' --> `arg_names' 2015-11-13 20:17:15 +01:00
rlar bc44be41ad frontend/define.c, ft_substdef(), rename `s' --> `arg_names' 2015-11-13 20:17:14 +01:00
rlar 045de93d3b frontend/define.c, cleanup `prtree1()' 2015-11-13 20:17:13 +01:00
rlar 83938330eb frontend/define.c, cleanup `prdefs()' 2015-11-13 20:17:13 +01:00
rlar e7c7e7052b frontend/define.c, cleanup `prtree()' 2015-11-13 20:17:12 +01:00
rlar 15f0f5f22f frontend/define.c, com_undefine(), rename `ludf' --> `prev_udf' 2015-11-13 20:17:11 +01:00
rlar 3be8335224 frontend/define.c, abstraction, use `strchr()' 2015-11-13 19:51:50 +01:00
rlar 501c0238d7 frontend/define.c, cleanup 2015-11-13 19:50:56 +01:00
rlar 29dde7206a frontend/parse.c, introduce `alloc_pnode()' 2015-11-12 18:32:39 +01:00
rlar 381a690cd8 frontend/define.c, ntharg(), bug fix, fix check for end of PT_OP_COMMA args list
ancient bug, yet not much of a consequence because there was already
  another check for correct arity of a function application.
("define"'ed function in the .control section)
2015-11-10 19:44:54 +01:00
rlar 5706fbd890 parser/inpptree-parser.y, bug fix, allow unary `+'
reported by Andy Fierman on the ngspice-users mailing list in message
  "Help to identify 'parameter value out of range or the wrong type' error please?"
2015-11-07 21:02:21 +01:00
rlar 97c1ec733a frontend/define.c, ntharg(), #15/15 whitespace and indentation 2015-11-07 20:26:54 +01:00
rlar a7f776872b frontend/define.c, ntharg(), #14/15 rewrite for(;;) loop 2015-11-07 20:26:45 +01:00
rlar 101b5ada81 frontend/define.c, ntharg(), #13/15 delay `num--' a bit 2015-11-07 20:26:36 +01:00
rlar 06b6237199 frontend/define.c, ntharg(), #12/15 delay `num--' a bit 2015-11-07 20:26:28 +01:00
rlar bd40bbd437 frontend/define.c, ntharg(), #11/15 `args' can't be NULL here 2015-11-07 20:26:18 +01:00
rlar cd0941367a frontend/define.c, ntharg(), #10/15 can move this up 2015-11-07 20:26:09 +01:00
rlar 3b6b71f680 frontend/define.c, ntharg(), #9/15 can move this up 2015-11-07 20:25:47 +01:00
rlar bc793fbf27 frontend/define.c, ntharg(), #8/15 this `if' condition can't be true 2015-11-07 20:25:27 +01:00
rlar e93327fdb7 frontend/define.c, ntharg(), #7/15 substitute tail of ntharg() for `break' 2015-11-07 20:25:20 +01:00
rlar e98bfc720f frontend/define.c, ntharg(), #6/15 rewrite while() --> for(;;) 2015-11-07 20:25:12 +01:00
rlar 67301b25fe frontend/define.c, ntharg(), #5/15 make use of `fact: num >= 1' 2015-11-07 20:25:04 +01:00
rlar f538b4dba3 frontend/define.c, ntharg(), #4/15 express some facts 2015-11-07 20:24:56 +01:00
rlar 71908ef194 frontend/define.c, ntharg(), #3/15 drop redundant `if', already guarded by `while' 2015-11-07 20:24:48 +01:00
rlar 8ac0329bd9 frontend/define.c, ntharg(), #2/15 minor cleanup 2015-11-07 20:24:39 +01:00
rlar f91f8c2a09 frontend/define.c, ntharg(), #1/15 drop `struct pnode *ptry', use `args' instead 2015-11-07 20:24:26 +01:00
rlar 600d289000 frontend/define.c, ntharg(), avoid segfault when out of `args'
return NULL instead
2015-11-07 20:15:53 +01:00
rlar b137930330 xpressn.c, formula(), #6/6 simplify 2015-11-07 19:11:54 +01:00
rlar a805fe6b56 xpressn.c, formula(), #5/6 whitespace and indentation 2015-11-07 19:10:25 +01:00
rlar 577352e6bb xpressn.c, formula(), #4/6 move around 2015-11-07 19:09:44 +01:00
rlar b156921ea0 xpressn.c, formula(), #3/6 refactor fetchid(), pass substring, include `upcase()' 2015-11-07 19:08:40 +01:00
rlar 1d9592c591 xpressn.c, formula(), #2/6 move dstring buildup out of `fetchid()' 2015-11-07 19:08:23 +01:00
rlar d6ce788539 xpressn.c, formula(), #1/6 upside-down an `if..else..' 2015-11-07 18:59:07 +01:00
rlar b447f26703 `E..table {expr} {pairs}', `G..', allow an optional `=' after `table' 2015-11-07 17:52:19 +01:00
rlar 7479e48f7a `E..value=', `G..value=', allow `=' being optional 2015-11-07 17:49:06 +01:00
rlar 28c0c96bbc devices/res, introduce TCE, exponential temperature coefficient 2015-11-02 19:25:43 +01:00
rlar 45117c94fd drop yyparse() prototypes, require bison >= 2.7 which emits them 2015-10-18 00:46:13 +02:00
rlar 76aedfae40 numparam/xpressn.c, cleanup `getidtype()' 2015-10-11 14:21:04 +02:00
rlar 813024678d numparam/xpressn.c, cleanup `fetchnumentry()' 2015-10-11 14:02:45 +02:00
rlar c9e8c7651f numparam/xpressn.c, cleanup `keyword()' 2015-10-11 11:56:35 +02:00
rlar 0390736faa xpressn.c, fetchid(), #15/15 cleanup 2015-10-10 20:20:45 +02:00
rlar ba9c7f060b xpressn.c, fetchid(), #14/15 rewrite 2015-10-10 20:20:45 +02:00
rlar ff74222538 xpressn.c, fetchid(), #13/15 local scope 2015-10-10 20:20:45 +02:00
rlar 9041bf93ca xpressn.c, fetchid(), #12/15 use fact 2015-10-10 20:20:45 +02:00
rlar c8020f4811 xpressn.c, fetchid(), #11/15 reorder 2015-10-10 20:20:44 +02:00
rlar 880b41bb7f xpressn.c, fetchid(), #10/15 rewrite 2015-10-10 20:20:44 +02:00
rlar 16b53e3784 xpressn.c, fetchid(), #9/15 reorder 2015-10-10 20:20:44 +02:00
rlar 3fea077ebe xpressn.c, fetchid(), #8/15 rewrite 2015-10-10 20:20:44 +02:00
rlar aa87d90ba9 xpressn.c, fetchid(), #7/15 use fact 2015-10-10 20:20:44 +02:00
rlar 9a69f79feb xpressn.c, fetchid(), #6/15 use fact 2015-10-10 20:20:44 +02:00
rlar 16496f8ff7 xpressn.c, fetchid(), #5/15 express some facts 2015-10-10 20:20:44 +02:00
rlar cc68d8fadb xpressn.c, fetchid(), #4/15 use fact 2015-10-10 20:20:44 +02:00
rlar e8fa81e382 xpressn.c, fetchid(), #3/15 express some facts 2015-10-10 20:20:44 +02:00
rlar 7142e0e1fc xpressn.c, fetchid(), #2/15 rename `iptr' --> `s' 2015-10-10 20:20:44 +02:00
rlar af0ba9bed5 xpressn.c, fetchid(), #1/15 swap arguments 2015-10-10 20:20:44 +02:00
rlar 0178dcd5f3 remove bison generated files from the repository
Their presence breaks automake rules when running
  in a separate build directory.
And when regenerated cause unwanted "changed files"
  in the repository.

As a consequence visual C compilation will fail.
It will still work with a "make dist" generated tar ball.
We need to upgrade the visual C project files
  to invoke bison and flex on windows,
or we have to provide these generated files
  in a visual C specific directory. (very annoying of course)
2015-10-10 20:14:50 +02:00
rlar 2f061b441e Makefile.am, fix dependency rules for bison generated files
which have been lost in commit
> Date:   Sun Jul 5 19:34:25 2015 +0200
>
>     polish bison/flex makefile rules
2015-10-10 20:04:27 +02:00
rlar a0a5e0f9c2 inpptree-parser.y, fix type of function `PTparse()' 2015-10-10 10:40:42 +02:00
dwarning 1b4aa22d0d Update some level and version entries for MOS models 2015-10-08 18:20:16 +02:00
rlar 73731bdf77 frontend/plotting/plotit.c, cleanup, reduce scope of `struct dvec *dv' 2015-10-04 15:38:27 +02:00
rlar a4c7dff570 frontend/define.c, rewrite `struct udfunc' insertion 2015-10-04 15:34:14 +02:00
rlar a5f933b3ec frontend/parse.c, bug fix, PPlex(.."dc1.@m1[vth][1]"..)
The whole string was lexed into only one TOK_STR
  instead of the actual (quasi) identifier "dc1.@m1[vth]"
2015-09-24 18:25:25 +02:00
rlar 192eeadb0b remove crufty comments which where used to support broken text editors 2015-09-24 18:23:54 +02:00
mhx a324d86878 inpcom.c, allow `temper' to be recognised when preceded by '=' 2015-08-16 20:20:50 +02:00
rlar 45bec4b8eb inpcom.c, strip braces in `inp_get_func_from_line()' 2015-08-16 19:56:12 +02:00
rlar 2ac726b265 inpcom.c, rename `struct function' member `macro' --> `body' 2015-08-16 19:56:10 +02:00
rlar dffcbddbba swallow `deprecated directive' warning emitted by newer bisons 2015-08-16 19:54:35 +02:00
rlar 2e023a6be7 inpcom.c, cleanup `inp_new_func()'
especially avoid local state in a function local static variable
2015-08-16 14:54:37 +02:00
rlar 56312b7872 inpcom.c, cleanup `inp_rem_func()' 2015-08-16 14:27:18 +02:00
rlar db9eb23b7d inpcom.c, bug fix, avoid segfault when `.ends' is missing 2015-08-15 17:05:00 +02:00
rlar 61724121aa res/restemp.c, bug fix, need to update `RESresist' in `REStemp()'
instead of `RESsetup()'
  to be effective when altering a resistor model parameter or when
  sweeping a resistor model parameter in a dc analysis.

see tests/regression/temper/temper-3.cir
2015-08-10 17:52:57 +02:00
rlar 5940bf9294 analysis/dctrcurv.c, bug fix, sweeping `temper' in a dc analysis
incorrect update of model parameters,
  need to `invoke CKTtemp()' *after* `inp_evaluate_temper()'

see tests/regression/temper/temper-2.cir
2015-08-10 17:52:54 +02:00
rlar fc6455ca99 inp.c, bug fix, `temper' in a model parameter, missing INPretrieve() invocation
The model name needs to be transformed into a `IFuid'
  before it can be searched for with `findModel()'

see tests/regression/temper/temper-1.cir
2015-08-10 17:52:21 +02:00
rlar 0c0bc4079f configure.ac, allow cross-compilation, especially for MinGW-w64
notably on debian gnu/linux with package `mingw-w64'
cross-compile a mingw 32bit windows executable with this incantation:

(compile "
  ./autogen.sh
  rm -rf tmp-build tmp-output
  mkdir -p tmp-build tmp-output
  ( cd tmp-build && ../configure \
      --build=$(../config.guess) \
      --host=i686-w64-mingw32 \
      --prefix='c:/spice' \
      --exec-prefix='c:/spice'\
      --with-windows --enable-xspice --enable-cider --disable-debug )
  LC_ALL=C make -C tmp-build -k -j6
  LC_ALL=C make -C tmp-build -k -j6 DESTDIR=$(pwd)/tmp-output/ install
  (cd 'tmp-output/c:/' && zip -r - .) > tmp-output.zip
")

compilation to Win64 works the same way, with
      --host=x86_64-w64-mingw32

The tmp-output.zip directory structure resembles the
  structure of our original sourceforge ngspice-26_140112.zip windows package
ready to be unzip'ed in c:/

Though the testfiles, examples and documentation is missing.
2015-07-06 21:08:05 +02:00
rlar 794df1066a update bison generated files 2015-07-05 20:26:59 +02:00
rlar 1c6efd9481 polish bison/flex makefile rules 2015-07-05 20:25:23 +02:00
rlar 74aaa72c39 src/xspice/icm/GNUmakefile.in, extend `make distclean' 2015-07-05 19:15:42 +02:00
rlar 9be4f753e6 remove redundant src/xspice/cmpp/ylwrap 2015-07-04 10:48:22 +02:00
rlar 39fdeb0c9a src/frontend/plotting/gnuplot.c, enforce "noenhanced text" mode
Contrary to older versions gnuplot 5 uses "enhanced text mode" per default.
The strings which we pass to gnuplot don't have "latex" semantics,
  thus consistently enforce "noenhanced text mode".

Add a function quote_gnuplot_string() to escape and quote strings
  in such a way that they will arrive in gnuplot unmodified.
2015-05-17 17:34:29 +02:00
Marcel Hendrix 02fe549be7 src/frontend/plotting/plotit.c, allow "plot xlog ylog" (equiv to "plot loglog") 2015-05-14 15:56:45 +02:00
rlar 5d19c99e94 src/frontend/outitf.c, bug fix, "resume" causing segment violation
introduced in commit
  "noisean, deliver results in V/sqrt(Hz) and A/sqrt(Hz)"

analysisPtr is NULL when beginPlot() is invoked to "resume"
2015-05-09 18:56:01 +02:00
rlar f4472f788e spicelib/parser/inpptree.c, bug fix, "#287 Shared library crashes on using non existing functions "
"remcirc" has the potential to invoke INPfreeTree() with a NULL IFparseTree

Thanks to Craggan, who reported this in:
  http://sourceforge.net/p/ngspice/bugs/287/
2015-05-04 20:17:28 +02:00
rlar 6ff1560487 frontend/cpitf.c, free a temporary vector which was left in `cp_istrue()'
reported by Marcel Hendrix.

Using conditional expressions within a .control sequence
  left some garbage vectors in the current plot.

For example

> let ix = 0
>
> while ix < 2
>   let ix = ix + 1
> end
>
> display

"display" reported a variable named "ix < 2"
which was an internal temporary value in said function `cp_istrue()'
2015-05-02 12:33:45 +02:00
rlar e609c7411d src/frontend/vectors.c, abstraction, introduce `vec_iszero()' 2015-05-02 12:27:35 +02:00
rlar 44425b1d0a fix commit "inpcom.c, comment_out_unused_subckt_models() #4/8, introduce `nlist_find()'"
which broke the search for binned models
2015-05-02 12:20:58 +02:00
rlar cab63eedd4 frontend/com_let.c, bug fix, "#302 Integer in Let Statement"
let 2foo = someexpression

was silently accepted, even though 2foo is an illegal identifier.
  (first letter is a digit)

This was especially irritating, since
  print 2foo
has a legal meaning, 2 femto oO, which is 2e-15
  (whatever Unit an oO might be)

Reported by Justin Fisher in
  http://sourceforge.net/p/ngspice/bugs/302/
2015-05-02 11:18:30 +02:00
rlar 7bc6374138 cleanup, use '\0' instead of 0 in char context 2015-05-02 10:24:54 +02:00
rlar 19e427e3a5 cleanup, use NULL instead of 0 in pointer context 2015-05-02 10:24:49 +02:00
rlar 6513aa5173 spicelib/devices, cleanup, 0 versus NULL in SPICEdev initialization 2015-05-02 10:24:45 +02:00
rlar 6bea757457 frontend/numparam, drop `sfix()' 2015-05-02 10:24:40 +02:00
rlar c3f851750c fix commit "devices/asrc, introduce `ASRCvars' with the indices of the controlling nodes/branches" 2015-04-24 21:45:54 +02:00
rlar 83a5c31e6f fix commit "devices/asrc, allocate `ASRCacValues' in ASRCsetup()" 2015-04-24 21:45:29 +02:00
rlar ab5cd17044 inpcom.c, workaround for "#307 define problems with the Modelname "mname" with Subcircuits"
a diode model named "1smb4148" could not be found
  because it was dropped in `comment_out_unused_subckt_models()'

as a work around the function
  is_a_modelname()
is extended to accept an additional pattern which does match "1smb4148"

Thanks to Martin who submitted the bug report here:
  http://sourceforge.net/p/ngspice/bugs/307/
2015-04-19 17:36:05 +02:00
rlar e4ba6eb602 inpcom.c, comment_out_unused_subckt_models() #8/8, drop `no_of_lines' 2015-04-19 17:07:42 +02:00
rlar 8379de8ddb inpcom.c, comment_out_unused_subckt_models() #7/8, allocation 2015-04-19 17:07:40 +02:00
rlar 341ee45314 inpcom.c, comment_out_unused_subckt_models() #6/8, cleanup 2015-04-19 17:07:10 +02:00
rlar e598da4706 inpcom.c, comment_out_unused_subckt_models() #5/8, introduce `nlist_adjoin()' 2015-04-19 16:58:30 +02:00
rlar 2e7b469cfe inpcom.c, comment_out_unused_subckt_models() #4/8, introduce `nlist_find()' 2015-04-19 16:58:11 +02:00
rlar d8807c00c4 inpcom.c, comment_out_unused_subckt_models() #3/8, drop ´tmp_cnt', `new_names[]' 2015-04-19 16:57:30 +02:00
rlar 5ec24f4ed0 inpcom.c, comment_out_unused_subckt_models() #2/8, cleanup 2015-04-19 16:56:18 +02:00
rlar d2e138c592 inpcom.c, comment_out_unused_subckt_models() #1/8, use a struct to collect data 2015-04-19 16:54:51 +02:00
rlar 84a945ca45 inpcom.c, comment_out_unused_subckt_models(), reduce scope of local variables 2015-04-18 22:03:19 +02:00
rlar a8d90775ca inpcom.c, get_subckts_for_subckt(), reduce scope of local variables 2015-04-18 21:56:07 +02:00
rlar e2dabb2e75 inpcom.c, introduce `is_a_modelname()' to encapsulate highly dubious code 2015-04-18 12:50:19 +02:00
Marcel Hendrix f9432cb3da frontend/com_measure2.c, bug fix for "meas AVG"
meas "AVG" did merely the average of the given values,
  without consideration of their spacing on the "scale" axis.

now use trapezoidal summing to calculate the AVG

note, there is "meas INTEG"
  which goes beyond trapezoidal summing
2015-04-16 21:20:20 +02:00
rlar 8be0829b9b frontend/breakp.c, bug fix, "#306 Deleting breakpoint causes Internal Error in status"
The "delete" command destroyed the whole list of stored breakpoints
  instead of just the specified one.

Thanks to "jpcgt", who reported this in
  "#306 Deleting breakpoint causes Internal Error in status"
  http://sourceforge.net/p/ngspice/bugs/306/
2015-04-16 19:58:58 +02:00
rlar 0b4bcf31f4 devices/res, bug fix, extend ac-resistance to the pz analysis 2015-04-15 19:52:36 +02:00
rlar b6b76ad035 devices/asrc, introduce `ASRCvars' with the indices of the controlling nodes/branches 2015-04-12 21:36:22 +02:00
rlar b4f1c1dda3 devices/asrc, allocate `ASRCacValues' in ASRCsetup() 2015-04-12 21:34:16 +02:00
rlar 232debc6ec drop `NEWN', use `TMALLOC' 2015-04-12 20:10:07 +02:00
rlar ad869c6d2d devices/asrc, rewrite #10/10, emphasise matrix for the two cases VSRC vs ISRC 2015-04-12 18:23:22 +02:00
rlar 66a0da8ab9 devices/asrc, rewrite #9/10, combine common code 2015-04-12 18:22:06 +02:00
rlar 704e50b62a devices/asrc, rewrite #8/10, cleanup and reorder 2015-04-12 18:18:20 +02:00
rlar 3a1c094682 devices/asrc, rewrite #7/10, allocate in one go 2015-04-12 18:18:14 +02:00
rlar b3860ac599 devices/asrc, rewrite #6/10, check for errors right at the beginning 2015-04-12 18:17:52 +02:00
rlar 1c53a425f0 devices/asrc, rewrite #5/10, combine common code 2015-04-12 18:17:46 +02:00
rlar 6ea1e1932d devices/asrc, rewrite #4/10, drop `ASRCcont_br' 2015-04-12 18:11:41 +02:00