Commit Graph

145 Commits

Author SHA1 Message Date
h_vogt c0bc0de4b5 prototype for controlled_exit() 2012-10-01 23:02:26 +02:00
rlar f52ae6eccd bug fix, invalid read when the title line is the empty 2012-09-30 18:38:36 +02:00
rlar fe1acd3757 src/frontend/** remove superfluous `return' invocations 2012-09-22 19:33:55 +02:00
rlar 7454a6d486 src/frontend/**, whitespace, indentation, ...
untabify
delete-trailing-whitespace
braces
...

checked for object file invariance on linux
2012-09-20 20:30:53 +02:00
rlar 3d7ab6a297 cleanup keyword databases on proram termination 2012-08-23 21:19:15 +02:00
rlar ef37252155 lexical, use wl_append_word() 2012-08-03 20:24:58 +02:00
rlar 62a4ee77d5 lexical #6/6, whitespace 2012-08-03 20:20:18 +02:00
rlar ea558fbc7f lexical #5/6, cleanup 2012-08-03 20:18:17 +02:00
rlar aa188c0766 lexical #4/6, parentheses and braces 2012-08-03 20:16:47 +02:00
rlar c73c0f4318 lexical #3/6, rewrite 2012-08-03 20:12:58 +02:00
rlar 5656203a6c lexical #2/6, linewrap 2012-08-03 20:12:19 +02:00
rlar 5d245c9dab lexical #1/6, cleanup 2012-08-03 20:09:34 +02:00
rlar 64d00a6b43 lexical #3/3, collapse append(NULL) into cp_ccom()
the sequence
   orig_wlist = wlist;
   append(NULL);
   cp_ccom(wlist, ...);
 is transformed.

 expressions to care about in cp_ccom()
    C1 :=  (wlist->wl_next != NULL)
    C2 :=  (wlist->wl_word != NULL)
    C3 :=  wl_length(wlist)

    D1 :=  (orig_wlist != NULL)
    D2 :=  (orig_wlist->wl_word != NULL)
    D3 :=  wl_length(orig_wlist);

 cases and their significance in cp_ccom():
    orig_wlist = NULL;
    wlist = wl_cons(NULL, NULL);
      C1 == false
      D1 == false
      C2,C3 dont care

    orig_wlist = wl_cons(E1, wl_cons(E2, ... wl_cons(En, NULL)))
    wlist = wl_cons(E1, wl_cons(E2, .... wl_cons(En, wl_cons(NULL, NULL))))
     C1 == true
     D1 == true
     C2 === D2
     C3 === D3 + 1
2012-08-02 18:55:54 +02:00
rlar fec5b00a0d lexical #2/3, fix memory leaks 2012-08-02 18:55:54 +02:00
rlar 042311d0c3 lexical #1/3, move append(NULL) invokations into position 2012-08-02 18:55:54 +02:00
rlar 1195498978 lexical #19/19, rewrite 2012-07-31 20:49:34 +02:00
rlar 5b67ecda79 lexical #18/19, rewrite
`cw' won't be looked at, thus the append + removal can be dropped
  `wl_word' is already NULL
2012-07-31 20:49:34 +02:00
rlar f990e517b5 lexical #17/19, rewrite 2012-07-31 20:49:34 +02:00
rlar fa9be4336a lexical #16/19, transform append --> append(word) 2012-07-31 20:49:34 +02:00
rlar 43a6d59c72 lexical #15/19, drop `delayed' which is never zero ... 2012-07-31 20:49:33 +02:00
rlar 47b5e9576d lexical #14/19, drop `delayed = 0' wherever its effect isn't visible
without effect, because we return or will overwrite it anyway
2012-07-31 20:49:33 +02:00
rlar 01df4e9437 lexical #13/19, delay `append'
delay its execution, until
    either `wlist' or `cw' will be accessed,
  or
    a return or goto nloop is inevitable
2012-07-31 20:49:33 +02:00
rlar cff6188fe3 lexical #12/19, use `append'
some `assumption' are no longer valid
2012-07-31 20:49:32 +02:00
rlar 5ad8382cf1 lexical #11/19, aproach `append' here 2012-07-31 20:49:32 +02:00
rlar d61f3c10a0 lexical #10/19, split off `append' from `newword' 2012-07-31 20:49:32 +02:00
rlar af0a0c2c03 lexical #9/19, aproach the `append'
cw has never been NULL here,
   because we used to survive an update of cw->wl_next here

wlist hasn't been NULL either,
  because there is no place where wlist becomes NULL without
  setting cw to NULL as well. yet cw isn't NULL (see above)
aproach the `append'
2012-07-31 20:49:31 +02:00
rlar 74cc38f67a lexical #8/19, express where `wlist' and `cw' start being != NULL 2012-07-31 20:49:31 +02:00
rlar 3cbc4b0773 lexical #7/19, express verbosely where `wlist' and `cw' are NULL 2012-07-31 20:49:31 +02:00
rlar ecb2eec279 lexical #6/19, express cp_ccom() property 2012-07-31 20:49:31 +02:00
rlar 3b575d5e3d lexical #5/19, collapse into `newword' 2012-07-31 20:49:30 +02:00
rlar 348dc2d7d1 lexical #4/19, the `else' can take that job (unconditionally) 2012-07-31 20:49:30 +02:00
rlar 80191f3d44 lexical #3/19, attach and instantly remove a NULL wl_word here
this modification is faithful iff cw != NULL  and  cw->wl_next == NULL
  cw != NULL because we have just survived an update of cw->wl_word
  cw->wl_next == NULL is witnessed by:
    1) cw either NULL or pointing to a wl_cons(,NULL)
    2) cw not being modified, and no wl_next being modified
    3) check of all function invocations with wlist/cw argument
         not to modify any wl_next slot
which are:
  1) cp_ccom(wlist, ...)
  2) wl_free() always followed by goto nloop, which does a cw = wl_cons(,NULL)

and cp_ccom() doesn't modify any wl_next slot

the first part of the patch is intentionally similar to newword
`i' and `buf' can be modified here, because we will inevitably `goto done'
attach and instantly remove a NULL wl_word here
2012-07-31 20:49:30 +02:00
rlar ddebb63425 lexical #2/19, rewrite the `else if' 2012-07-31 20:49:29 +02:00
rlar f2f43bcce7 lexical #1/19, use wl_cons 2012-07-31 20:49:29 +02:00
rlar f36772419a Revert "cleanup, use wl_cons()"
This reverts parts of commit 7a7250cdbd.
There is a cleaner way to rewrite lexical.c
2012-07-31 20:48:01 +02:00
rlar 7a7250cdbd cleanup, use wl_cons() 2012-07-27 21:50:05 +02:00
rlar 9655b9885a cleanup, use wl_cons(), wl_append_word() and wl_chop_rest() 2012-07-14 10:23:51 +02:00
rlar e1f8033f1c bug fix, incorrect update of a wordlist's wl_prev pointer 2012-07-12 18:49:01 +02:00
rlar cb0a48801d introduce AM_CFLAGS = $(STATIC) 2012-07-07 14:51:39 +02:00
rlar e396b15104 use type `struct ccom' 2012-02-07 17:45:41 +00:00
rlar cc7afb7abb drop (char*) cast in the third argument of ioctl() 2012-02-06 20:13:35 +00:00
rlar f285dd0aa8 use strchr() instead of index() 2012-02-06 17:46:33 +00:00
rlar afa1371746 #3/6 config.h --> ngspice/config.h, AM_CPPFLAGS 2011-12-27 12:05:51 +00:00
rlar 4ca58067a2 #2/6 config.h --> ngspice/config.h, #include's 2011-12-27 11:33:01 +00:00
rlar 0b5042e7da remove CVS `Id',`log' etc. keyword incantations 2011-12-13 19:57:45 +00:00
rlar 10346e055c #1/4 #include <ngspice/...> --> #include "ngspice/..." 2011-12-11 18:05:00 +00:00
rlar d26015586c #1/7 use a subdirectory "ngspice" for includes to create a uniq namespace 2011-08-20 17:27:09 +00:00
h_vogt 2c8d477f68 def of _read only for console app 2011-07-09 22:01:04 +00:00
h_vogt bf4f91cd90 add SSIZE_T 2011-07-04 22:03:16 +00:00
h_vogt 0a114e0057 add SSIZE_T 2011-07-04 22:00:18 +00:00
h_vogt 75ae33d0a3 typo line 30 size_t 2011-07-04 20:58:12 +00:00
h_vogt e6c86b4d98 explicit casting double -> int etc. 2011-06-11 17:07:38 +00:00
rlar 66289067ba rename variable class --> kw_class 2011-05-01 19:45:12 +00:00
rlar 23056573d8 code cleanup, drop NULL pointer casts 2011-04-28 15:59:36 +00:00
dwarning 3ab9e6d060 cvs ignore .libs 2010-12-12 09:42:47 +00:00
dwarning b964cf949c cvs ignore *.lo and *.la 2010-12-12 09:34:10 +00:00
rlar 05441d5823 Nr 5/5 (x = ...) == NULL , swallow warnings 2010-11-19 18:54:40 +00:00
rlar e6c30efe46 Nr 4/5 (x = ...) != NULL , swallow warnings 2010-11-19 18:52:44 +00:00
rlar abb87a6115 rename `IGNORE()' --> `NG_IGNORE()' 2010-11-16 20:38:24 +00:00
rlar 80286e0032 pour `IGNORE()' all over the source 2010-11-16 19:11:32 +00:00
rlar dbdd7dc741 tiny rewrite, type fixes 2010-11-06 17:29:28 +00:00
rlar dd34b783cf minor rewrite, a local variable type change 2010-11-06 17:12:13 +00:00
rlar 6e3bbd49ae casts, to make int <-> char conversions explicit 2010-11-02 17:31:19 +00:00
rlar b4ffca60c4 (int) casts for some `strlen()' expressions 2010-11-02 17:17:43 +00:00
rlar 7b3960506f wrap tmalloc MALLOC etc, into two macros TMALLOC and TREALLOC 2010-10-28 19:32:34 +00:00
rlar d7a9d71a1a remove prototypes, avoid redeclarations 2010-10-16 15:58:14 +00:00
rlar 1d62b41bfa collect cp_* prototypes / extern-declarations in "cpextern.h" 2010-10-09 12:49:34 +00:00
rlar a8c64094fc fix busy waiting loop, when using editline 2010-08-09 18:36:57 +00:00
rlar 4cdd842cd8 muffle compiler warnings 2010-07-24 18:51:06 +00:00
rlar d19476685a tiny fixes 2010-07-03 17:55:44 +00:00
rlar 3369d860b4 cast the return values of malloc() function calls 2010-07-01 19:52:23 +00:00
h_vogt 6874c454fc allow {$var} 2010-06-30 19:20:01 +00:00
rlar 5b5297ac2f remove abandoned prototypes 2010-06-25 17:23:40 +00:00
dwarning 586af63f36 changed the declarator to new format 2009-11-26 20:04:09 +00:00
h_vogt 1e5720a23f double array size in cp_lexer() 2009-04-12 18:06:13 +00:00
pnenzi 72482f964e Fixed segfaults when redirecting output < > -- Espice 2008-11-04 11:40:17 +00:00
pnenzi fa549df82a TCLSPICE IMPORT + libtool + measure2 command 2008-08-27 13:39:05 +00:00
pnenzi 7f6ad5c706 Updated to new automake standard. Replaced all INCLUDES with AM_CPPFLAGS 2008-08-24 17:12:50 +00:00
dwarning 37fffd911f functions used in this branch only 2007-11-14 20:23:15 +00:00
dwarning 41325622fd some clean-up's to come through MSC 2007-10-18 19:34:30 +00:00
sjborley 3a69282b3a Fixed memory leak in tilde expansion 2005-09-06 20:24:47 +00:00
sjborley 67ff1b3a83 Tidy up of the header files in src/frontend and sub-directories. Motivation is to remove extern declarations within .c files and place them in .h files. Added new header files where necessary (and adjusted makefile.am files where required) 2005-05-30 20:28:29 +00:00
pnenzi b03a70760b Applied Stuart's 12-03-2003 patch. Support for readline (disabled) and for node names in the form (x,y). 2004-01-10 21:39:36 +00:00
pnenzi 531fb3575a Applied Vera Patch to correct bugs in shell code and re-enabling interpolate command. 2003-12-25 17:30:36 +00:00
pnenzi 8686a73047 Added readline patch (support for command history). 2003-08-14 19:21:10 +00:00
pnenzi 8362dec274 Integrated code from tclspice, brorson xspice and Vera memleak. 2003-07-23 19:36:39 +00:00
pnenzi 937e3db647 Holger Vogt Windows port for Ngspice. 2002-01-03 22:44:21 +00:00
pnenzi 6696aac9e6 Updated changelogs 2001-12-14 18:42:56 +00:00
pnenzi 7583d1849e Applied another bunch of patches sent by CDHW (Charles D.H. Williams). The patches
are aimed to close some leaks in the parser.
2001-12-14 18:29:08 +00:00
pnenzi ccfdf80c2e Applied patches for BSD OSes 2000-11-13 19:30:00 +00:00
arno 9dd92c7315 * com_history, com_alias, parser/cshpar.c, parser/complete.c:
Applied patch by Michael Widlok.  It fixes command completion and
	history list.  In the process, Michael also fixed a memory leak.
2000-11-07 17:49:18 +00:00
pnenzi 19129762ad Added Glao Dezai's patches (some memory leaks fixes) 2000-10-26 17:02:12 +00:00
arno cc51f0e8db * src/main.c, src/multidec.c, src/proc2mod.c,
src/frontend/display.c, src/frontend/outitf.c,
	src/frontend/help/readhelp.c, src/frontend/help/x11disp.c,
	src/frontend/parser/complete.c, src/frontend/parser/glob.c,
	src/frontend/plotting/graf.c,
	src/frontend/plotting/graphdb.c,
	src/frontend/plotting/x11.c, src/include/graph.h,
	src/include/iferrmsg.h, src/include/ifsim.h,
	src/include/macros.h, src/maths/poly/polyfit.c,
	src/maths/sparse/spalloc.c, src/maths/sparse/spconfig.h,
	src/misc/alloc.c, src/misc/mktemp.c,
	src/spicelib/analysis/cktpzstr.c,
	src/spicelib/devices/bsim2/b2temp.c,
	src/spicelib/devices/bsim3/b3temp.c,
	src/spicelib/devices/bsim3v1/b3v1temp.c,
	src/spicelib/devices/bsim3v2/b3v2temp.c,
	src/spicelib/devices/bsim4/b4temp.c: replaced malloc
	realloc and free calls to use tmalloc trealloc and txfree.

	* tests/diffpair.out, tests/fourbitadder.out,
	tests/resistance/res_partition.out: Updated.
2000-10-14 13:16:53 +00:00
arno 8dc5eac0ee * TODO, doc/ngspice.texi: Small updates
* configure.in: New --enable-smoketest.

	* src/main.c
	src/ngspice.c src/frontend/outitf.c src/frontend/runcoms.c
	src/frontend/spiceif.c src/frontend/parser/numparse.c
	src/include/cktdefs.h src/include/fteext.h
	src/include/inpdefs.h src/include/jobdefs.h
	src/include/ngspice.h src/include/tskdefs.h
	src/spicelib/analysis/Makefile.am
	src/spicelib/analysis/acsetp.c
	src/spicelib/analysis/cktaskaq.c
	src/spicelib/analysis/cktdojob.c
	src/spicelib/analysis/cktnewan.c
	src/spicelib/analysis/cktsetap.c
	src/spicelib/analysis/cktsopt.c
	src/spicelib/analysis/ckttroub.c
	src/spicelib/analysis/dcosetp.c
	src/spicelib/analysis/dctsetp.c
	src/spicelib/analysis/dsetparm.c
	src/spicelib/analysis/nsetparm.c
	src/spicelib/analysis/pzsetp.c
	src/spicelib/analysis/senssetp.c
	src/spicelib/analysis/tfsetp.c
	src/spicelib/analysis/transetp.c
	src/spicelib/devices/bjt/bjtdset.h
	src/spicelib/devices/bjt/bjtext.h
	src/spicelib/devices/bjt/bjtsetup.c
	src/spicelib/devices/bsim2/b2set.c
	src/spicelib/devices/bsim3/b3acld.c
	src/spicelib/devices/bsim3/b3set.c
	src/spicelib/devices/bsim3/bsim3def.h
	src/spicelib/devices/csw/cswtrunc.c
	src/spicelib/devices/dio/diodset.c
	src/spicelib/devices/dio/dioinit.c
	src/spicelib/devices/jfet/jfetset.c
	src/spicelib/devices/mes/messetup.c
	src/spicelib/devices/mos1/mos1ask.c
	src/spicelib/devices/mos1/mos1set.c
	src/spicelib/devices/mos1/mos1temp.c
	src/spicelib/devices/mos3/mos3load.c
	src/spicelib/devices/mos6/mos6set.c
	src/spicelib/devices/sw/swtrunc.c
	src/spicelib/parser/inppas2.c src/spicelib/parser/inppas3.c
	src/spicelib/parser/inppas3.h: Paolo and I have integrated patches from Alan Gillespie
        <Alan.Gillespie@analog.com>.
2000-09-05 19:48:22 +00:00
arno b04989d760 * src/hlp/*: moved these files into src/frontend/help. The files
in this directory implement the help system for the frontend.

        * configure.in, src/Makefile.am, src/frontend/Makefile.am: Files
        affected by the move.
2000-07-21 18:25:47 +00:00