Commit Graph

4498 Commits

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