Commit Graph

5751 Commits

Author SHA1 Message Date
Holger Vogt 510b1865b4 Re-sort wide char variable definitions.
add utf-8 ... utf-16 conversion.
Strings in history buffer shall remain utf-8.
History buffering is not yet working.
2020-03-15 08:51:07 +01:00
Holger Vogt 7a41921035 prevent crash if 'hardcopy' is given without parameters 2020-03-15 08:51:07 +01:00
Holger Vogt 6edb0eea41 re-organize PS color selection
Improve settings for PS image
Improve error messages
2020-03-15 08:51:07 +01:00
Holger Vogt 18f1e896f8 allow independent linewidth and gridwidth settings from within the .control section 2020-03-15 08:51:07 +01:00
Holger Vogt 7c0b72c387 prevent compiler warnings
enable short GUI interaction from within spfactor.c
2020-03-15 08:51:06 +01:00
Holger Vogt bd7b35541d Lengthy op calculations make the Win GUI unresposive.
A macro adds a short travel to the GUI fro0m within
the matrix ordering and factoring. Time overhead
during op is less than 0.5%.
2020-03-15 08:51:06 +01:00
Holger Vogt 3d009fef22 Variables xbrushwidth and gridwidth (to be set e.g. in
.spiceinit) allow setting separately the linewidths of the
graph (xbrushwidth) and the grid (gridwidth).
2020-03-15 08:51:06 +01:00
Holger Vogt c9edc6fcb3 Add function returning the true string length in pixels.
May be called from outside of x11.c.
2020-03-15 08:51:06 +01:00
Holger Vogt 10f0eea93e add gridwidth, xbrushwidth to postscript output 2020-03-15 08:51:06 +01:00
Holger Vogt ca7c77315a add missing üarameter to DevDrawLine for X11 and HPGL 2020-03-15 08:51:06 +01:00
Holger Vogt 8751092812 Enable separate linewidths for grids and graphs.
New variable gridwidth overrides xbrushwidth for graphs.
Fcn DevDrawLine() with boolean flag if grid is plotted.
Postscript, Gnuplot and X11 not (yet) supported.
2020-03-15 08:51:05 +01:00
Holger Vogt 7690b64571 add missing declaration of old_x11 2020-03-15 08:51:05 +01:00
h_vogt 7c3a305d43 add wide char for string i/o under Windows
add utf-8 systax check
2020-03-15 08:51:05 +01:00
h_vogt 22f4e8f82d return extended ascii as alpha 2020-03-15 08:51:05 +01:00
Holger Vogt 85142709fc For UNICODE use char in comparison to ' '
only as unsigned char
2020-03-15 08:51:05 +01:00
h_vogt 531c229b0e Add library xft for allowing text rotation.
Setting variabe 'old_x11' will retain previous behaviour.
2020-03-15 08:51:05 +01:00
h_vogt 0cdea87cb5 Add and ignore angle in fcn for text out 2020-03-15 08:51:05 +01:00
Holger Vogt 0dfe8a22ad add angle to allow text rotation 2020-03-15 08:51:04 +01:00
h_vogt 697facdc30 #define fopen newfopen
and header for MINGW and MS VS
2020-03-15 08:51:04 +01:00
h_vogt 9f272ea8f6 function newfopen to replace fopen
by reading wide char strings
2020-03-15 08:51:04 +01:00
Holger Vogt 59adfc1d68 add extended ascii and its selection
converter UTF-8 to ISO-8859-1/ISO-8859-15
2020-03-15 08:51:04 +01:00
Holger Vogt c4f641dad6 remove bracket left over from recent manual merge conflict resolution 2020-03-15 08:51:04 +01:00
h_vogt dbd0a5743a Enable utf-8 and UNICODE for string handling.
preprocessor flag EXT_ASC resets handling to old behaviour.
Add utf-16 wide char to all Windows string i/o.
Add translation between utf-8 and utf-16.
Add angle to fcn DevDrawText.
2020-03-15 08:51:04 +01:00
Holger Vogt 28c0fbf397 Zero fp, this fixes bug no #475 2020-03-15 08:51:04 +01:00
Jim Monte 93233fde2c Made descriptions of invalid interpolation cases more descriptive and fixed a memory leak 2020-03-15 08:51:04 +01:00
dwarning 740df722c7 partially revert commit b4bbcb149 for spec analysis functionality 2020-03-15 08:51:04 +01:00
dwarning 86d7963f32 more meaningful warning if vector can't interpolate 2020-03-15 08:51:03 +01:00
Holger Vogt 0ad7acadec remove unreachable code warning, add const 2020-03-15 08:51:03 +01:00
Holger Vogt c77da1870d Fixed compiler warnings related to const, unreachable code, and an empty translation unit. 2020-03-15 08:51:03 +01:00
Jim Monte 7084274344 Fixed incorrect type of variable ch_cur. It was from const char * but should have been const char. 2020-03-15 08:51:03 +01:00
Holger Vogt 5bd45c0451 make path to dstring.c independent from build directory 2020-03-15 08:51:03 +01:00
Holger Vogt 5bc9a320eb Revert "correct the path to dstring.c"
This reverts commit 28002be150.
2020-03-15 08:51:03 +01:00
Holger Vogt 89ea46e39a prevent false freeing of vector 2020-03-15 08:51:03 +01:00
dwarning 129b219ed2 correct the path to dstring.c 2020-03-15 08:51:03 +01:00
dwarning 4f75d56011 no wrapper cp_globmatch needed 2020-03-15 08:51:03 +01:00
Vogt e628fd8977 just use strcmp instead of wrapper function 2020-03-15 08:51:02 +01:00
Holger Vogt 5e76758e57 update to cmpp by J. Monte 2020-03-15 08:51:02 +01:00
Jim Monte 955dda749d Jim Monte's update to cmpp 2020-03-15 08:51:02 +01:00
Holger Vogt 375a92d788 Fix of buffer overrun in interpolation at endpoint of interval.
Made cfunc.mod for tables more modular.
Prevented buffer overrun when building file name.
Added error checking for allocation failures in many locations.
Made binary search for interpolation more efficient.
2020-03-15 08:51:02 +01:00
Jim Monte 92065ea41b fixed singluar/plural agreement in an error message generated by the let command 2020-03-15 08:51:02 +01:00
Jim Monte a53cd3a3e9 fixed path created by ngdirname in Windows. Also added const to parameters whose arguments do not change and fixed some potential buffer overruns. 2020-03-15 08:51:02 +01:00
Jim Monte 2d9110bf65 Add const to some parameters, made function static 2020-03-15 08:51:02 +01:00
Jim Monte 1867f5b727 Fix of buffer overrun in interpolation at endpoint of interval. Made cfunc.mod for tables more modular. Prevented buffer overrun when building file name. Added error checking for allocation failures in many locations. Made binary search for interpolation more efficient. 2020-03-15 08:51:02 +01:00
Jim Monte b4757f934b Added support for DSTRING in code modules with makefile builds 2020-03-15 08:51:02 +01:00
Jim Monte 190c7fb75c Clarified error message 2020-03-15 08:51:01 +01:00
Jim Monte ac49ccaf58 Fixed compile warning about signed/unsigned comparison. 2020-03-15 08:51:01 +01:00
Jim Monte d254b6c97e Gave structure defining Mif_Complex_t a name so that it could be forward referenced. 2020-03-15 08:51:01 +01:00
Jim Monte bfe660e57b Formatting and added comments 2020-03-15 08:51:01 +01:00
Jim Monte 082f36e794 Formatting 2020-03-15 08:51:01 +01:00
Jim Monte 2f8b7ab062 Minor fix to end-of-index processing of let command 2020-03-15 08:51:01 +01:00
Jim Monte b967caaabb File path built more efficiently and now allows an arbitrary length. Prevented strdup() of NULL if path too long. Similarly prevented fopen with a NULL file name. Added function to determine Windows absolute paths properly. Fixed numerous issues that were caused by including Windows system header due to conflicting names. Generally a CMPP_ prefix was added as a "namespace". Also used the standard C bool type instead of defining one. 2020-03-15 08:51:01 +01:00
Jim Monte 0c741bbde2 Rework of let command. Added support for slices as described in feature #69 and fixed several crashes and issues described in bugs #443, #444, #446, #447, and #448. 2020-03-15 08:51:01 +01:00
Jim Monte 7990a82f02 Formatting and comments added 2020-03-15 08:51:01 +01:00
Jim Monte 3a2a05f7b0 Removed unnecessary comparisons when lowercasing a string. 2020-03-15 08:51:01 +01:00
Jim Monte b767df3a7e Modified calculation to determine when memory is nearly exhausted. Also changed prototypes of memory reporting functions to match their definitions. 2020-03-15 08:51:00 +01:00
dwarning 93317c87a9 simplify beta derivation 2020-03-15 08:51:00 +01:00
dwarning e966ce5054 alternative temperature model for extrinsic resistances and subthreshold range 2020-03-15 08:51:00 +01:00
Holger Vogt ec1d655289 In VDMOS device, if instance parameter tnodeout is set,
check for exactly five nodes
2020-03-15 08:51:00 +01:00
Holger Vogt 643b0edc26 enable local or global statistical values for B source
pre_set statlocal
(or set statlocal in spinit or .spiceinit) will be setting a
different random number for evaluating the value of fcn agauss
etc. in each B line, e.g. if this line appears in a subcircuit,
all expanded B lines will have different values. If not set,
each B line will use the same random number for agauss evaluation.
2020-03-15 08:51:00 +01:00
Holger Vogt 1353a5de77 allow again single letter vector names 2020-03-15 08:51:00 +01:00
dwarning 0fb1c6a000 prevent program crash by misusing thermal model 2020-03-15 08:50:59 +01:00
dwarning 7d17b8f082 vdmos have no Cgb 2020-03-15 08:50:59 +01:00
dwarning 0362d63094 update vdmos with self-heating network and tj and tcase terminal 2020-03-15 08:50:59 +01:00
Holger Vogt f585807085 re-enable V source with parameter EXTERNAL
Fix bug #463
2020-03-15 08:50:59 +01:00
Holger Vogt b699c7fad8 add the PSPICE vswitch S_ST variant,
which resolves to the classical ngspice sw switch
2020-03-15 08:50:59 +01:00
Holger Vogt 9d53780992 allow vec_get to verify vectors if their names are quoted by "" 2020-03-15 08:50:59 +01:00
Holger Vogt 987cc0aa86 another preliminary patch for macOS 2020-03-15 08:50:58 +01:00
Holger Vogt 7680be7312 stub to enable compilation on macOS,
memory info for macOS is currently not available.
2020-03-15 08:50:58 +01:00
dwarning fa8a77343b format line with LF 2020-03-15 08:50:58 +01:00
Holger Vogt b7012065ae remove compiler warning by setting variables to 0 2020-03-15 08:50:58 +01:00
Holger Vogt a9f83f3445 remove two small memory leaks 2020-03-15 08:50:58 +01:00
Holger Vogt 58901fe898 remove spurious error message 2020-03-15 08:50:58 +01:00
Holger Vogt 7ae76f0f51 update to the .measure and meas error messages:
remove crash uipon buggy inputs
add buggy example input file
unify fcn returns: 0 is OK, 1 is bad
Improve on error message for bad syntax
2020-03-15 08:50:58 +01:00
Holger Vogt e9603dcdeb enable inp_dodeck() to return an error state,
if error, inp_spsource() will return error as well
2020-03-15 08:50:57 +01:00
Holger Vogt 651ba72344 return immediately if ckt is NULL 2020-03-15 08:50:57 +01:00
Holger Vogt 51f80abe00 if inp_spsource() returns with an error code, emit a message 2020-03-15 08:50:57 +01:00
Holger Vogt f9307d0beb enable returning inp_spsource() with an error code 2020-03-15 08:50:57 +01:00
Holger Vogt 0c74820821 enable PSPICE compatible ~(~v(9)&v(8)) 2020-03-15 08:50:57 +01:00
Holger Vogt 46adeb5eaa plug memory leaks for the 'plot' command 2020-03-15 08:50:57 +01:00
Holger Vogt 573b270b6d Give a better, modern name for this type of display 2020-03-15 08:50:57 +01:00
Holger Vogt b1be546939 User expects an empty input line, not a text that has to be deleted befopre writing 2020-03-15 08:50:57 +01:00
Holger Vogt 966b69090d use only TMALLOC and TREALLOC for memory allocation 2020-03-15 08:50:56 +01:00
Holger Vogt 53613f4e69 deprecated gets() -> fgets() 2020-03-15 08:50:56 +01:00
Holger Vogt 85e0a08cff error message even if pNAME is not defined 2020-03-15 08:50:56 +01:00
Holger Vogt 39ce1f77d2 patch provided by Vito (see
https://sourceforge.net/p/ngspice/discussion/133842/thread/31aa24261e/ )
2020-03-15 08:50:56 +01:00
Holger Vogt 09f829b863 Further improvement of error message im 'meas' 2020-03-15 08:50:56 +01:00
Holger Vogt 94d5ad312e Improve error messages for the 'meas' command. 2020-03-15 08:50:56 +01:00
Jim Monte d4088c896a Restored command arguments accidentally deleted. 2020-03-15 08:50:56 +01:00
Jim Monte 4b145ddf5e Added #include <stdio.h> to define FILE. 2020-03-15 08:50:55 +01:00
Jim Monte 06ebf80983 Modified search for init file so that it searches both <HOME> and <USERPROFILE> if both are defined. 2020-03-15 08:50:55 +01:00
Jim Monte 2068c4fffb Added -D/--define option to define a variable from the command line. 2020-03-15 08:50:55 +01:00
Jim Monte 372fe2a5e7 Opened binary files for writing using "wb" in all cases 2020-03-15 08:50:55 +01:00
Jim Monte 21f3eb74b8 Added basic help messages in addtion to reference to web pages 2020-03-15 08:50:55 +01:00
Jim Monte de4788cfe5 Added conjugate function conj(). 2020-03-15 08:50:55 +01:00
Jim Monte a7946474fa Additional freeing of device-dependent information for bug #419 and related bugs. 2020-03-15 08:50:55 +01:00
Jim Monte d3343b1791 Removed redundant macro 2020-03-15 08:50:55 +01:00
Jim Monte 0cf53a34b2 Fixed resolution of ~ to home directory. (Bug #405) Also fixed potential buffer overruns in glob expansion 2020-03-15 08:50:54 +01:00
Jim Monte ce5410d33f Fixed checking for redirection tokens 2020-03-15 08:50:54 +01:00
Jim Monte cec6a8edd3 Fixed access of freed memory when reporting an error. 2020-03-15 08:50:54 +01:00
Jim Monte 8141a634d7 Fixed several issues related to plotting and vector lifetimes and made ownership of vectors clearer. The issues in bugs 419, 423, 425, and 426 were related and were addressed here. 2020-03-15 08:50:54 +01:00
Jim Monte 57ffe1769f Fixed "phantom vector" issue with plots and crash when plots are resized. See bugs #419 and #423 for details. Also several parameters were changed from char * to const char * in the plotting functions. 2020-03-15 08:50:54 +01:00
Jim Monte 9d2c105942 Fixed bug with 255 card deck entered using circbyline 2020-03-15 08:50:54 +01:00
Jim Monte e1ec2a21dd Added error recovery when invalid foreach statement found 2020-03-15 08:50:54 +01:00
Jim Monte 690b7730fe Fixed memory leak when empty word found. 2020-03-15 08:50:54 +01:00
Jim Monte b120e7bd21 Fixed reporting of system information in Windows. 2020-03-15 08:50:53 +01:00
Jim Monte 271afc87cf Made UI more consistent when comments are entered. 2020-03-15 08:50:53 +01:00
Jim Monte 2df00ad8c9 Cleaned up defintions of macro constants 2020-03-15 08:50:53 +01:00
Jim Monte 2f3b9d0f2d Used Win32 function PathIsRelativeA() to identify an absolute path instead of checking the string since the system function may handle more cases (network shares, etc.). Also reviewed formatting that was done on inpcom.c by a code beautifier in an earlier commit. Nearly all of it was an improvement, but a few cases were reverted back to closer to the original form. One particular instance was comments where a list of steps was given one per line. 2020-03-15 08:50:53 +01:00
Jim Monte 70600258bb Made checking for single-character words faster. The testing now also uses less memory and works for 8-bit characters, which would have previously caused buffer overruns. It is also more modular and has additional documentation. 2020-03-15 08:50:53 +01:00
Jim Monte 92725594f3 Used the new capabilities of ft_numparse() to allow the creation of variables and list items of type CP_NUM 2020-03-15 08:50:53 +01:00
Jim Monte ad970ae4e7 Made cp_enqvar() mode modular by adding a separate function to handle the case of a vector. Lists are more efficiently handled by moving common comparisons out of the loop over elements. The first argument of cp_enqvar() is changed from char * to const char * since the name of the variable being found is not altered by the function. 2020-03-15 08:50:53 +01:00
Jim Monte 72801b1ab1 Fixed buffer resizing, made string utilities more modular, and added several new utilities, some which do not require a null termination, potentially avoiding the need to copy a string. Also some substring utilities using the Rabin-Karp algorithm were added. 2020-03-15 08:50:52 +01:00
Jim Monte f7951af50b Fixed locating vectors like V(node) 2020-03-15 08:50:52 +01:00
Jim Monte 81fa829b7d Fixed potential infinite loop (until memory is exhausted) and added several utility functions for processing strings. 2020-03-15 08:50:52 +01:00
Jim Monte 068df274bf Made ft_numparse() thread-safe (no internal static variables) and prepared to support ngspice variable type CP_NUM. 2020-03-15 08:50:52 +01:00
Holger Vogt 89411e2fe4 Fixed merge conflict. Also made readifile() static and removed an unnecessary string duplication there. 2020-03-15 08:50:52 +01:00
Jim Monte 873e4a8db0 Added no_histsubst option and related fixes 2020-03-15 08:50:52 +01:00
Jim Monte 4bd4a6e9be Fixed usage of new dstring functions. Also added const to some parameters that did not change. 2020-03-15 08:50:52 +01:00
Jim Monte 75d233c40d If the prompt variable was set to a value that is not a string, memory that has been freed would be used when displaying the command prompt. This could lead to strange prompts and possible access violations, although it may appear to work OK if the freed memory has not been modified. This issue is fixed. Some useless duplications of strings when defining variables are also removed. 2020-03-15 08:50:51 +01:00
Jim Monte b677ae1611 The check for the scale vector was not comparing the name in a case-insensitive manner, so unlet Yes would delete the default yes scale vector, for example. That issue was corrected. The code was also made more modular and descriptive regarding the check for the scale vector. Also, the warning now prints the scale vector as it is stored to make clear that vector names are not case sensitive. 2020-03-15 08:50:51 +01:00
Jim Monte b7d8c61cd9 Cleaned up code to locate a vector in a plot by name. The code was made more modular, and special names like allv are handled more efficiently 2020-03-15 08:50:51 +01:00
Jim Monte c7b95587de Fixed compiler warnings regarding type of argument passed 2020-03-15 08:50:51 +01:00
Jim Monte c368f32039 Added a macro R_MIN to define the minimum resistance value aS 0.01 and replaced the numeric value with the macro in the sourc code. 2020-03-15 08:50:51 +01:00
Jim Monte 89efe5aeae Dynamic string (dstring) rework 2020-03-15 08:50:51 +01:00
Holger Vogt 9452121954 Remove memory leaks in cmpp.
Two small ones (a few bytes) are still there, difficult to assess.
2020-03-15 08:50:51 +01:00
Holger Vogt 29b2799c22 plug a memory leak by CALLBACK,
deleting locally malloced memory
2020-03-15 08:50:51 +01:00
Holger Vogt e89a92f944 prevent referencing a NULL pointer
free the loc pointer and NULL its origin STATIC_VAR (locdata)
(that translates to mif_private->inst_var[0]->element[0].pvalue)
2020-03-15 08:50:51 +01:00
Holger Vogt 707936efe3 enable setting a variable from an input file
using the existing i/o redirection
2020-03-15 08:50:50 +01:00
Holger Vogt 05f02f3662 On Linux: allow calling gnuplot without invoking a terminal.
Reported by Terry Pilling
2020-03-15 08:50:50 +01:00
Holger Vogt 9238c0f9d4 prevent crash if 0 length vector is assessed 2019-11-30 11:43:29 +01:00
Holger Vogt ac65968595 allow 'dc TEMP 10 20 1' as well as 'dc temp 10 20 1' 2019-11-30 11:43:12 +01:00
Holger Vogt ee5f4cfc29 Replace B source pwl by XSPICE PWL Controlled Source
that has smooth rounded and differentiable corners.
This is used in the replacem,ent operation evaluating
Exxx n1 n2 TABLE {expression} = (x0, y0) (x1, y1) (x2, y2)
2019-11-30 11:42:00 +01:00
Holger Vogt b76fbf99fe Replace B source pwl by XSPICE PWL Controlled Source
that has smooth rounded and differentiable corners.
Microchip or On-Semi OpAmps that needed gmin and source
stepping for operating point calculation  now converge
without, others like MCP6001 that generally refused
to converge are o.k. now. Reason is the heavily used
Gxxx n1 n2 TABLE {expression} = (x0, y0) (x1, y1) (x2, y2)
from the OpAmp models.
2019-11-30 11:39:09 +01:00
Holger Vogt 917ea99758 enable system info for Windows 10,
exclude function not existing in older SDKs
2019-11-30 11:38:53 +01:00
Holger Vogt 6598225ec0 Replace deprecated GetVersionExA by version helper functions
Add new macro _MSC_PLATFORM_TOOLSET to check for toolset
2019-11-30 11:38:25 +01:00
Holger Vogt de9dfad0c9 remove VS 'assignment within conditional expression' warning 2019-11-30 11:38:11 +01:00
Holger Vogt 13a6e042f6 remove 'unreachable code' warning 2019-11-30 11:37:49 +01:00
Holger Vogt dc1ee5f11f remove 'potentially uninitialized' warning 2019-11-30 11:37:02 +01:00
Holger Vogt ceea40e012 Revert "enable compiling with readline for macOS"
This reverts commit 11df2b7719.
2019-11-30 11:36:09 +01:00
Holger Vogt 71917744a8 remove superfluous double parentheses 2019-11-30 11:35:56 +01:00
Holger Vogt 7983b0d16a macOS: Do not use deprecated finite, but isfinite 2019-11-30 11:35:44 +01:00
Holger Vogt fa58223204 update for Linux 2019-11-30 11:35:24 +01:00
Holger Vogt 5542729694 fix for macOS 2019-11-30 11:35:12 +01:00
Holger Vogt 67f6fda216 Complete redesign of memory monitoring in resource.c.
Acquiring memory size is done by four functions
getMemorySize, getAvailableMemorySize, getPeakRSS,
and getCurrentRSS.
Time data are still obtained without code modifications.
2019-11-30 11:34:58 +01:00
Holger Vogt 22b111d9c0 tabs to spaces 2019-11-30 11:34:48 +01:00
Holger Vogt 6cd2e245c4 Add resource info on memory used and available for macOS 2019-11-30 11:34:35 +01:00
Holger Vogt 42e99ec66c safeguard against crash if instance lines are incomplete 2019-11-30 11:33:04 +01:00
Holger Vogt 33985ae1e5 Make DEVNUM robust against double initialization. 2019-10-05 13:17:38 +02:00
Holger Vogt 2f396187fa Better indentation of message 2019-10-05 13:17:30 +02:00
Holger Vogt 0575481206 Better info in case of error
Initited by a patch from Bohdan Tkhir
2019-10-05 13:17:22 +02:00
Holger Vogt eb667118cf If there are no controls, just skip creating the controls thread. 2019-10-05 13:17:11 +02:00
Holger Vogt a4402f1da7 prevent potential false reads if 'controlswait' is set. 2019-10-05 13:16:40 +02:00
Holger Vogt 03c5870034 in ps compatibility mode: translate t_measured to tnom 2019-10-05 13:16:25 +02:00
Holger Vogt 552d587deb readability 2019-09-28 16:21:44 +02:00
Holger Vogt 976c949c86 avoid false warnings of model not found 2019-09-28 16:21:36 +02:00
Holger Vogt 8276ef7b58 correct typos found by linthian 2019-09-28 12:24:09 +02:00
Holger Vogt 840d00c4ca no actions if controls thread tid2 is not set 2019-09-28 12:01:09 +02:00
Mamoru TASAKA fa0fc7f131 tclspice: avoid get_plot function type conflict
re-name get_plot as get_plot_by_index
2019-09-28 12:01:04 +02:00
Holger Vogt 9e427a1a1e Better thread handling
Embed thread tid2 into tid1
Avoid spurious thread collisions
2019-09-28 12:00:57 +02:00
Holger Vogt 1085512be5 Do not start a spurious thread with empty controls 2019-09-28 12:00:48 +02:00
Holger Vogt 712014b6db Does crash with recent Linux openSUSE Tumbleweed
Not required by shared ngspice
2019-09-28 12:00:31 +02:00
Holger Vogt cf752bf730 Revert "encapsulate fcn calls to cp_evloop into a mutex"
This reverts commit 2426a037db.
2019-09-28 12:00:23 +02:00
Holger Vogt 92b237da3b Missing files in distribution
Correction to commit
Fix a build error on FreeBSD 12, bison 3.3.2, automake 1.16.1 and BSD make
2019-09-28 12:00:16 +02:00
Kevin Zheng 6f20ec9929 patch to simplify compile for FreeBSD 2019-09-28 12:00:05 +02:00
Holger Vogt 11df2b7719 enable compiling with readline for macOS
which has a very simple readline header only
2019-09-20 20:43:36 +02:00
Holger Vogt acd0c7156c return immediately if empty commands are sent 2019-09-20 19:22:47 +02:00
Holger Vogt 2426a037db encapsulate fcn calls to cp_evloop into a mutex
thus preventing thread collisions
2019-09-20 19:21:56 +02:00
Holger Vogt 191ad0a574 avoid warning about potentially undefined variable 2019-09-14 12:43:48 +02:00
Holger Vogt ec6d676920 Make CopyGraph safe against NULL argument.
Otherwise memcpy will fail.
2019-09-14 12:38:57 +02:00
Holger Vogt aa726c9864 Make ...search_identifier safe against NULL arguments
Otherwise strstr will fail
2019-09-14 11:30:20 +02:00
Holger Vogt 0071ad8569 If a subcircuit is defined more than once,
only read the first one, rename the others und thus discard them.
2019-09-14 11:28:32 +02:00
Holger Vogt 972785095f Avoid crash, and send error message when r,l,c
instance lines does not have enough tokens.
2019-09-14 11:28:07 +02:00
Holger Vogt f9deefe326 Skip '\r' when reading lines from a file 2019-09-14 11:27:23 +02:00
Holger Vogt 8fc1b70e93 Bug #424 now lower-casing whenh following the redirection token >
Re-order the code for defining exceptions for not lower casing
2019-09-14 11:27:13 +02:00
Holger Vogt cdc8d3d054 new_title may contain a \r, remove it 2019-09-14 11:26:52 +02:00
dwarning 134e92b78f vbic model implementation including self-heating effect 2019-09-14 11:26:10 +02:00
Holger Vogt 1c8992bf15 Enable the file input as search path for .include files
also for non-Wondows OSs
2019-09-14 11:25:34 +02:00
Holger Vogt 9543a5644c Improve handling of non-printable characters (esp. for Linux)
If there is an isolated non-printable character leading the line,
convert it to *.
In fact there are some, e.g. in device lib TL072.301 from TI.
2019-09-14 11:25:07 +02:00
Holger Vogt 88008af088 remove memory leaks 2019-09-14 11:24:34 +02:00
Holger Vogt afdd0fe85e comments added
White spaces according to clang format
2019-09-14 11:24:05 +02:00
Holger Vogt 4cf2b5e5ce remove commenting out unused .model lines
from comment_out_unused_subckt_models().
This now handled by inp_rem_unused_models()
taking appropriate scoping into account.
2019-09-14 11:23:40 +02:00
Holger Vogt 6669cbc17c add function inp_rem_unused_models().
checking for unused models now also removes models
that are out of scope.
2019-09-14 11:23:24 +02:00
rlar 9e729bc8ee bug fix, avoid segfault when instantiating a unknown subcircuit 2019-09-14 11:22:52 +02:00
rlar e2b3dffcff drop bogus_find_subckt, use a proper scoped search 2019-09-14 11:22:39 +02:00
rlar 96bb0dd941 inpcom.c, introduce inp_add_levels(), add scope to decks 2019-09-14 11:22:24 +02:00
Holger Vogt d901665517 enable 'res' as valid resistor model identifier 2019-09-14 11:21:53 +02:00
Holger Vogt 1adc3e559c inp_get_elem_ident(): enable VDMOS devices as identifier m 2019-09-14 11:21:16 +02:00
Holger Vogt 7f95e9d40c inp_get_elem_ident
model type as input, element identifier as output
2019-09-14 11:20:48 +02:00
Holger Vogt b0e750c3d2 Remove printing an empty line to stderr 2019-08-18 10:53:25 +02:00
Holger Vogt bc9a22e5f7 Make interface responsive during plotting,
prevent endless loop, probably because of full internal buffers
2019-08-18 10:52:46 +02:00
Holger Vogt 3ab2c6468c raise time for immediate output, to catch some more information 2019-08-18 10:52:36 +02:00
Holger Vogt 5a45fdbebb Skip name and node if searching for 'tc' in an
R, L, or C line. Thus a node name 'tc' would be allowed.
2019-08-18 10:52:21 +02:00
Holger Vogt 6a1b6ced18 Enable tc conversion also for L and C
Even is PSPICE manual does not mention this,
device model makers are using this option.
2019-08-18 10:51:57 +02:00
Holger Vogt 63b4cf05de Do not bail out if 'load file' command has unavailable file,
just post error message and continue
A fix to https://sourceforge.net/p/ngspice/discussion/127605/thread/986c04f22b/
by Clyde
2019-08-13 23:35:48 +02:00
Jim Monte 0fbff063b8 bug #408: prevent invalid data or crash by not reading beyond end of string 2019-08-13 23:35:17 +02:00
Holger Vogt 30565e45c4 Improve commant 2019-08-13 23:35:03 +02:00
AsamMich 9b28a951d2 Patch #83
Improve and complete command 'compose'
2019-08-13 23:34:48 +02:00
Holger Vogt ca5997b705 Change variable 'stepsizelimit', added in commit
c86f6265d ("relieve the step size limitation..." 2019-02-02)
to 'nostepsizelimit', thus keeping the limit, if not set.
Maximum step size is limited to tstep given by .tran tstep tstop <tstart <tmax>>.
May be overridden by giving 'set nostepsizelimit' to (tstop - tstart)/50.
Both may be overriden by setting tmax.
2019-08-13 23:34:40 +02:00
Holger Vogt fac46c0bfd Speed up the text output in Windows GUI:
The stream is pushed to the display only every 30 milliseconds.
For the first 200ms the stream is still pushed for every line.
2019-08-13 23:34:16 +02:00
Holger Vogt 6ac67c2285 make GUI more responsive. Prevent output freezing
if large data volumes are sent to the display
2019-08-13 23:33:59 +02:00
Holger Vogt 1b96b5a087 fix typos 2019-08-13 23:33:44 +02:00
Holger Vogt f1cf4103c0 If the comaptibility mode is PS, LTPS or LTPSA, '$' is treated as a valid
character, not a s end-of-line comment delimiter, except for that it is
located at the beginning of a line.
2019-08-13 23:33:37 +02:00
Holger Vogt 0b92a15ae8 safeguard against vectors with 0 length 2019-08-13 23:33:28 +02:00
Holger Vogt b27d0e701c allow very short version information with new options -v and -d 2019-08-13 23:33:15 +02:00
Holger Vogt 45e2155e57 Instead of the reverted commit
5542f2ec1 ("dio/diotemp.c, drop DIOgradingCoeff limit", 2017-07-18)
allow setting a new limit for the diode grading coefficient by
set DIOgradingCoeffMax=0.85
Default is 0.9
2019-08-13 23:32:55 +02:00
Holger Vogt db85dead58 Revert "dio/diotemp.c, drop DIOgradingCoeff limit"
This reverts commit 5542f2ec10.
2019-08-13 23:32:37 +02:00
Holger Vogt aad247621e raise warning only when params are on the .subckt line 2019-08-13 23:32:26 +02:00
Holger Vogt 01742eefef The PSPICE area token for a device instance may be not only a number,
but also a parametrized token like {tok}
2019-08-13 23:32:16 +02:00
Jim Monte 8ed7080227 [PATCH #70] Made parameter const and reduced excess allocation. 2019-08-13 23:32:01 +02:00
Jim Monte 3def275be4 [PATCH #76] Fixed access violation when iplot called without a circuit
loaded.
2019-08-13 23:31:54 +02:00
Jim Monte 978429018b [PATCH #73] Fixed crash when attempting to set a breakpoint without a
circuit loaded.
2019-08-13 23:31:46 +02:00
Jim Monte e208aab4cd [PATCH #69] Changed vector type from to the enum assigned to it. 2019-08-13 23:31:37 +02:00
Jim Monte 73379f4146 [PATCH #66] Removed definition of macro MAXWORDS since it is unused. 2019-08-13 23:31:28 +02:00
Jim Monte 4a26ea9847 [PATCH #64] Made shell command with no arguments functional for Windows. 2019-08-13 23:31:22 +02:00
Holger Vogt 9a904cb952 prevent crash upon wrong user input 2019-08-13 23:31:14 +02:00
Holger Vogt c50dfa2be8 prevent crash if function is called with NULL argument 2019-08-13 23:31:01 +02:00
Jim Monte 060c51d68a missing part of patch #56 2019-08-13 23:30:39 +02:00
Jim Monte e92e2c7362 [PATCH #62] Fixed buffer overrun. Reworked to not use dstring for more
efficient parsing.
2019-08-13 23:30:31 +02:00
Jim Monte 24a13736bd [PATCH #63] Fixed infinite loop when setscale is given as a command. 2019-08-13 23:30:20 +02:00
Jim Monte 031b722640 [PATCH #56-2] Added hist_info source and header files for new history API
and system DLL Shlwapi.dll to resolve PathIsRelative()
2019-08-13 23:30:12 +02:00
Jim Monte 3874916948 [PATCH #56] New history buffering 2019-08-13 23:30:05 +02:00
Jim Monte f086fd3bef [PATCH #61] Removed unnecessary check for null pointer. There would have
been several access violations before the check if it were invalid.
2019-08-13 23:29:55 +02:00
Jim Monte 1665b53b84 [PATCH #59] Made INP*Cat() functions more modular and efficient. Also
eliminated the possibility of a buffer overrun in INPstrCat() due to an error
 in the calling funciton.
2019-08-13 23:29:41 +02:00
Jim Monte 9e5b0e8f82 [PATCH #58] Made annotations of WinMain() agree with its prototype 2019-08-13 23:29:34 +02:00
Jim Monte 8f2677438b [PATCH #57] Fixed several issues with win_x_fread() 2019-08-13 23:29:27 +02:00
Holger Vogt f9a4800d86 [PATCH #55-2] Prevent reading from a NULL pointer 2019-08-13 23:29:20 +02:00
Jim Monte ea81da2b01 [PATCH #55-1] Fixed some compiler warnings added by Visual Studio 2019 2019-08-13 23:29:13 +02:00
Jim Monte ba60c4e8a9 [PATCH #54] Fixed bug with processing of user input when the user input
size equals or exceeds the allowed amount. A 1-byte buffer overrun resulted
 in incorrect processing of the buffer returned from the window supplying user
 input which lead to an infinite loop.
2019-08-13 23:29:06 +02:00
Jim Monte 74857e2527 [PATCH #53] Removed useless zeroing of a copy of a variable (twice) when
the original variable should be zeroed. Made cp_free_control static because
 it was only used in control.c and it was not defined in any header file.
 Added comments
2019-08-13 23:28:58 +02:00
Jim Monte 1c5176282b [PATCH #52] General cleanup of word list processing, such as adding
comments and const. Also added a new function wl_from_string() to convert a
 single word into a word list. This function can be useful when calling a
 function taking a single-word word list.
2019-08-13 23:28:49 +02:00
Jim Monte 10474a06a8 [PATCH #50] Ensured no buffer overrun for long namess and improved
efficiency of compare. Also made more modular.
2019-08-13 23:28:41 +02:00
Jim Monte c71d66a3bb [PATCH #49] Ensured no buffer overrun for long script strings and
improved efficiency of building string
2019-08-13 23:28:34 +02:00
Jim Monte 051b5e602d [PATCH #48] Fixed infinite loop and variation from documented behavior of
atodims()
2019-08-13 23:28:25 +02:00
Jim Monte 0fd5b0fd80 [PATCH #51] Added scrolling to input window 2019-08-13 23:28:16 +02:00
Holger Vogt 9a9b7c68d0 unify the numerical constants 2019-08-13 23:28:05 +02:00
Holger Vogt b9901a2569 [PATCH 47] Refactored ft_getnames() and used the new function in
com_let().
2019-08-13 23:27:49 +02:00
Holger Vogt afdf3ff710 Partially undo commit 016c558d7, 2019-05-01
If sacles for plotting differ, issue a warning.
Skip this plot command only, when strict_errorhandling is set.
2019-08-13 23:27:15 +02:00
Holger Vogt 8af1663bba Try to detect, if one wants to plot vectors with
different scale vectors into the same graph.
Issue a warning and skip the plot command.
2019-08-13 23:26:58 +02:00
Holger Vogt eb33388707 Update to patch #33, stdlib.h required on Linux for size_t 2019-08-13 23:20:48 +02:00
Jim Monte 451a88a2b0 [PATCH #46] Fixed uninitialized buffer in case of 0 dim for dimstring()
and prevented the compilation of unused functions. Also a comment was
 corrected.
2019-08-13 23:20:39 +02:00
Jim Monte 23703a32c0 [PATCH #45] Fixed uninitialized buffer in case of 0 dim and improved
efficiency in other cases.
2019-08-13 23:20:29 +02:00
Jim Monte b66412f517 [PATCH] Changed prototypes of some functions having parameters that
should not be changed to const and added assorted comments. Also two very
 minor efficiency improvements.
2019-08-13 23:20:21 +02:00
Jim Monte 0183964d6f [PATCH #41] Made constants agree across ngspice simulator. File const.h
is the source of the values with all other files referencing it.
2019-08-13 23:20:00 +02:00
Jim Monte 55b7626fa9 [PATCH #40] Fixed memory leaks under 3 different conditions when the
deftype command is used. Added more argument validation. Enhanced error
 reporting. Implemented facility to free allocations associated with
 user-defined types
2019-08-13 23:19:51 +02:00
Jim Monte 7dacfe5bda [PATCH #38] Fixed crash when composing a complex vector from a mix of
real and complex values. Also eliminated unnecessary test for element being
 real when composed vector is real.
2019-08-13 23:19:41 +02:00
Jim Monte f28709f410 [PATCH #37] Fixed crash when composing a complex scalar 2019-08-13 23:19:31 +02:00
Holger Vogt 7598bbe83b [PATCH 35] Fixed values of physical constants such as the speed of light 2019-08-13 23:19:13 +02:00
Jim Monte 86ed788025 [PATCH 6/6] Fixed Visual Studio C4456 compiler warnings related to
variable name hiding another variable and reduced scopes of arg and sarg
 variables in the process
2019-08-13 23:18:34 +02:00
Jim Monte 34c2df11bb [PATCH 5/6] Fixed formatting for consistent nesting level indentation 2019-08-13 23:18:24 +02:00
Jim Monte 93ae8b41ac [PATCH 4/6] Fixed Visual Studio C4456 compiler warning related to
variable name hiding another variable
2019-08-13 23:18:16 +02:00
Jim Monte d0f8c6896d [PATCH 3/6] Fixed Visual Studio C4389 compiler warnings related to
signed/unsigned mismatch
2019-08-13 23:18:07 +02:00
Jim Monte 3dea14e223 Fixed Visual Studio C4334 compiler warnings related to
32-bit vs 64-bit shifts
2019-08-13 23:17:55 +02:00
dwarning cf394a03d1 update to hicum version 2.40 2019-08-13 23:17:41 +02:00
Holger Vogt e6a05bda7d remove the token mfg=nfgname from each .model statement 2019-08-13 23:17:31 +02:00
Holger Vogt 61039c2736 add a new function gettok_model to consider {...} expressions
in VDMOS .model statements
2019-08-13 23:17:14 +02:00
Holger Vogt ad5ad8270f correct the temperature replacement in ps
TEMPER is in degrees °C
2019-08-13 23:17:02 +02:00
Kevin Zheng b4ee4e28d6 Fix a build error on FreeBSD 12, bison 3.3.2, automake 1.16.1 and BSD make
by dropping the rules to run bison and use automake's built-in rules instead
2019-08-13 23:16:49 +02:00
Holger Vogt bfe9e29580 If a in command set name="value" value is encapsulated in double quotes, it is always treated as a string variable. 2019-08-13 23:16:37 +02:00
Jim Monte 6bce493d25 Remove memory leak: If the check of the data fails, the data itself is leaked.
Signed-off-by: Holger Vogt <holger.vogt@uni-due.de>
2019-08-13 23:16:02 +02:00
Jim Monte 4afc5ed5b5 One of the links provided when the help command is executed returned a 404 not found error. This patch replaces that link with an HTML version of the ngspice manual.
Signed-off-by: Holger Vogt <holger.vogt@uni-due.de>
2019-08-13 23:15:27 +02:00
dwarning 657d4994b9 no fall-through by asking m value 2019-08-13 23:15:03 +02:00
Jim Monte 7e0dd64ce5 [PATCH 33 1/6] Fixed Visual Studio C4028 compiler warnings related to
mismatches between prototypes and function definitions

Signed-off-by: Holger Vogt <holger.vogt@uni-due.de>
2019-08-13 23:14:49 +02:00
Jim Monte 0ddd4a8456 Fixed excess buffer allocation and converted wordlist to string more efficiently
Signed-off-by: Holger Vogt <holger.vogt@uni-due.de>
2019-08-13 23:14:27 +02:00
dwarning ef79942782 Tnom is not a instance parameter 2019-08-13 22:57:02 +02:00
dwarning 6bcf3ac41c Tnom default inline with model specification 2019-08-13 22:56:50 +02:00
dwarning 033a290783 use a better place for model parameter defaulting 2019-08-13 22:56:38 +02:00
dwarning 360a3985e8 remove unused conductance variables 2019-08-13 22:56:29 +02:00
dwarning f42c513381 correct current contribution by gmin 2019-08-13 22:56:19 +02:00
dwarning 293f0afc2f remove unused variables 2019-08-13 22:55:34 +02:00
dwarning f90295f46a remove last remainder of unused sensitivity analysis 2019-08-13 22:55:25 +02:00
dwarning 2b60d56606 remove ancient, unused and untested sensitivity code 2019-08-13 22:55:12 +02:00
dwarning 7966aa36ae correct init for convergence test 2019-08-13 22:54:51 +02:00
Holger Vogt 3494e6b390 prevent crash
bug-395 reported by Bohdan Tkhir
2019-08-13 22:54:30 +02:00
Holger Vogt 7bb8049d2a fix bug no. 394, reported by Yurii Demchyna 2019-08-13 22:54:10 +02:00
dwarning a549776972 high current devices need lower limit of resistances - set to 10mOhm 2019-08-13 22:53:52 +02:00
Holger Vogt 31db4228f5 fix a typo, correct writing to files under Linux 2019-08-13 22:53:41 +02:00
Holger Vogt 52584312c3 delete the plt and data files after writing eps or png
(only if gnuplot_terminal is set to eps/quit of png/quit)
2019-08-13 22:53:32 +02:00
Holger Vogt 8efa08602a no plotting, only saving to file
if gnuplot_terminal is eps/quit or png/quit
2019-08-13 22:53:24 +02:00
Holger Vogt 601dfbd781 sprintf -> snprintf: prevent buffer overflow 2019-08-13 22:53:13 +02:00
Holger Vogt ec4625eda6 redo gnuplot_terminal: Do not save eps/png automatically
none      1: do not print an eps or png file (default)
png       2: print png file, keep command window open
png/quit  3: print png file, quit command window
eps       4: print eps file, keep command window open
eps/quit  5: print eps file, quit command window
2019-08-13 22:53:00 +02:00
Holger Vogt 2344e3d012 patch no. 30 by astx:
don't show command window if gnuplot_terminal is set to png/quit
2019-08-13 22:52:49 +02:00
Holger Vogt e937adc372 remove bug 388: enable plot unit W for plotting @q1[p] 2019-08-13 22:52:41 +02:00
Holger Vogt 4f8fd19309 Allow " around netnames for .plot and .print commands.
This enables characters like - / + in netnames, e.g.
.print tran v("/jk-flip-flop-1/q")
2019-08-13 22:52:08 +02:00
Holger Vogt 5b21caae98 correct the command name to 'setcs' 2019-08-13 22:51:48 +02:00
h_vogt a0d87048e6 command.c, inpcom.c, add command 'setcs': like command 'set',
but case sensitive, and thus keeping upper or lower case
of subsequently following variable name and other letters.
2019-08-13 22:51:36 +02:00
dwarning d03df9d326 correct entry for vdmos bulk diode in acload 2019-08-13 22:49:39 +02:00
Holger Vogt 198fea0db4 -rm -> rm, re-enable 'make uninstall' 2019-03-21 20:24:18 +01:00
Holger Vogt d4c3d9ceb2 relieve the step size limitation (formerly set to TSTEP in tran simulation).
However not all examples will do without, thus the variable 'stepsizelimit'
is set in spinit. Unset it in .spiceinit to get the new behavior.
Of course then you might add the limit by setting TMAX in the tran command.
2019-03-21 20:22:42 +01:00
Holger Vogt b4559327de do not use the current plot, but try to get the plot set in arg... 2019-03-21 20:20:56 +01:00
Holger Vogt 9ee359b1e9 beautify code with astyle 2019-03-21 20:20:37 +01:00
Holger Vogt 1fb2a04f79 use fcn plot_get 2019-03-21 20:20:28 +01:00
Holger Vogt c1b54a5978 return vector located in plot type given by 'name',
not just from the current plot
2019-03-21 20:20:00 +01:00
Holger Vogt 40411197e0 add function get_plot(name) to return address of named plot 2019-03-21 20:17:21 +01:00
Holger Vogt a89e5db571 creating a linearized cutout of the original vector
by defining the vectors lin-tstart, lin-tstop, and lin-tstep
before issuing the 'linearize' command
2019-03-21 20:13:27 +01:00
Holger Vogt 2d8b30aebe enable node names containing '-' in .ic and .nodeset statements 2019-03-21 16:13:43 +01:00
Holger Vogt 0bd3bbd333 clarify estmation of memeory size for output vectors 2019-03-21 16:13:24 +01:00
Holger Vogt b771ee9c60 don't print status output in dcpss.c, if norefvalue is set 2019-03-21 16:12:47 +01:00
Holger Vogt 9dd47e3029 Remove memory warning message in shared lib
False warning on some OSs, especially on Linux when loaded during runtime.
The caller then has to take care of memory available
2019-03-21 16:12:36 +01:00
Holger Vogt be6eca1dbb add 'option norefvalue' to suppress printing the reference value. 2019-03-21 16:07:12 +01:00
Holger Vogt 5cd23fae72 move adding 1 to meminit to the right place (needed only once) 2019-03-21 15:52:23 +01:00