Commit Graph

5432 Commits

Author SHA1 Message Date
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