Commit Graph

5468 Commits

Author SHA1 Message Date
Holger Vogt 3f5f3afabf Further improvement of error message im 'meas' 2020-01-05 09:56:00 +01:00
Holger Vogt 13c5fd15b9 Improve error messages for the 'meas' command. 2020-01-05 00:05:20 +01:00
Jim Monte 24cc13feaf Restored command arguments accidentally deleted. 2020-01-04 15:49:12 +01:00
Jim Monte 36057d080e Added #include <stdio.h> to define FILE. 2020-01-04 15:30:38 +01:00
Jim Monte 2276431016 Modified search for init file so that it searches both <HOME> and <USERPROFILE> if both are defined. 2020-01-04 15:30:30 +01:00
Jim Monte c6319dd19e Added -D/--define option to define a variable from the command line. 2020-01-04 15:30:20 +01:00
Jim Monte d4b71500e2 Opened binary files for writing using "wb" in all cases 2020-01-04 15:30:11 +01:00
Jim Monte de7d292501 Added basic help messages in addtion to reference to web pages 2020-01-04 15:29:41 +01:00
Jim Monte 76cf00853c Added conjugate function conj(). 2020-01-04 15:29:13 +01:00
Jim Monte 7681f34664 Additional freeing of device-dependent information for bug #419 and related bugs. 2020-01-04 15:28:56 +01:00
Jim Monte c24b1e5f8c Removed redundant macro 2020-01-04 15:28:25 +01:00
Jim Monte f9e6664929 Fixed resolution of ~ to home directory. (Bug #405) Also fixed potential buffer overruns in glob expansion 2020-01-04 15:27:58 +01:00
Jim Monte 0bff1592c7 Fixed checking for redirection tokens 2020-01-04 15:26:59 +01:00
Jim Monte 1b43d16594 Fixed access of freed memory when reporting an error. 2020-01-04 15:26:29 +01:00
Jim Monte 503af6ac00 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-01-04 15:25:31 +01:00
Jim Monte 10415875f4 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-01-04 15:25:15 +01:00
Jim Monte 8021566265 Fixed bug with 255 card deck entered using circbyline 2020-01-04 15:24:41 +01:00
Jim Monte 9f89ab705a Added error recovery when invalid foreach statement found 2020-01-04 15:24:05 +01:00
Jim Monte 6f8635550a Fixed memory leak when empty word found. 2020-01-04 15:23:52 +01:00
Jim Monte 3982458005 Fixed reporting of system information in Windows. 2020-01-04 15:11:38 +01:00
Jim Monte a968c5c2fd Made UI more consistent when comments are entered. 2020-01-04 15:09:16 +01:00
Jim Monte 4f79916a3e Cleaned up defintions of macro constants 2020-01-04 15:05:06 +01:00
Jim Monte be8bd7b40e 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-01-04 15:04:49 +01:00
Jim Monte eddd2827ec 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-01-04 15:03:20 +01:00
Jim Monte 550d26b57a Used the new capabilities of ft_numparse() to allow the creation of variables and list items of type CP_NUM 2020-01-04 11:19:27 +01:00
Jim Monte 5a7257520d 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-01-04 11:19:21 +01:00
Jim Monte bb10b84045 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-01-04 11:19:16 +01:00
Jim Monte 814d1f07d6 Fixed locating vectors like V(node) 2020-01-04 11:19:08 +01:00
Jim Monte 713fad1664 Fixed potential infinite loop (until memory is exhausted) and added several utility functions for processing strings. 2020-01-04 11:18:37 +01:00
Jim Monte b4bbcb1497 Made ft_numparse() thread-safe (no internal static variables) and prepared to support ngspice variable type CP_NUM. 2020-01-04 11:17:54 +01:00
Holger Vogt 9bbde919e3 Fixed merge conflict. Also made readifile() static and removed an unnecessary string duplication there. 2020-01-04 11:17:45 +01:00
Jim Monte 4081013b13 Added no_histsubst option and related fixes 2020-01-04 11:09:14 +01:00
Jim Monte 3b5773fb84 Fixed usage of new dstring functions. Also added const to some parameters that did not change. 2020-01-04 11:03:45 +01:00
Jim Monte 70e6318915 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-01-04 10:24:44 +01:00
Jim Monte ada262488b 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-01-04 10:23:54 +01:00
Jim Monte ba29c514f9 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-01-04 10:23:39 +01:00
Jim Monte 8285bd107a Fixed compiler warnings regarding type of argument passed 2020-01-04 10:23:06 +01:00
Jim Monte e969a05411 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-01-04 10:22:50 +01:00
Jim Monte 9644f2ae4c Dynamic string (dstring) rework 2020-01-04 10:22:35 +01:00
Holger Vogt 146f94392d Remove memory leaks in cmpp.
Two small ones (a few bytes) are still there, difficult to assess.
2020-01-04 10:21:45 +01:00
Holger Vogt d864bd750c plug a memory leak by CALLBACK,
deleting locally malloced memory
2019-12-07 14:53:08 +01:00
Holger Vogt dd05e24677 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)
2019-12-02 21:33:31 +01:00
Holger Vogt 4a8e669562 enable setting a variable from an input file
using the existing i/o redirection
2019-11-29 23:55:13 +01:00
Holger Vogt 9a77d22444 prevent crash if 0 length vector is assessed 2019-11-27 23:31:22 +01:00
Holger Vogt 78c4a51d2a allow 'dc TEMP 10 20 1' as well as 'dc temp 10 20 1' 2019-11-27 00:31:24 +01:00
Holger Vogt b7bd59c22c On Linux: allow calling gnuplot without invoking a terminal.
Reported by Terry Pilling
2019-11-24 12:40:28 +01:00
Holger Vogt ae460934fa 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-09 23:10:28 +01:00
Holger Vogt 1afb290536 Revert "Replace B source pwl by XSPICE PWL Controlled Source"
This reverts commit cf653ef33a.
2019-11-09 23:08:50 +01:00
Holger Vogt cf653ef33a 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-09 22:39:22 +01:00
Holger Vogt 5b2a9474fa 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-09 16:26:36 +01:00
Holger Vogt 87ebe9540b enable system info for Windows 10,
exclude function not existing in older SDKs
2019-11-06 22:18:12 +01:00
Holger Vogt dcb9aa26fe Replace deprecated GetVersionExA by version helper functions
Add new macro _MSC_PLATFORM_TOOLSET to check for toolset
2019-11-03 14:39:52 +01:00
Holger Vogt 2ec1214fac remove VS 'assignment within conditional expression' warning 2019-11-03 11:50:28 +01:00
Holger Vogt b43f629d5e remove 'unreachable code' warning 2019-11-03 11:14:20 +01:00
Holger Vogt c2eb86f44f remove 'potentially uninitialized' warning 2019-11-03 11:10:44 +01:00
Holger Vogt 530f414469 Revert "enable compiling with readline for macOS"
This reverts commit 11df2b7719.
2019-10-26 16:18:29 +02:00
Holger Vogt aa49874dc2 remove superfluous double parentheses 2019-10-26 16:17:21 +02:00
Holger Vogt 6074d2528f macOS: Do not use deprecated finite, but isfinite 2019-10-26 16:02:01 +02:00
Holger Vogt e9d6228c44 update for Linux 2019-10-19 20:23:32 +02:00
Holger Vogt 1de5cae0d2 fix for macOS 2019-10-19 19:36:13 +02:00
Holger Vogt 4fa37979ae 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-10-19 18:45:52 +02:00
Holger Vogt 32b265c92a tabs to spaces 2019-10-19 11:17:42 +02:00
Holger Vogt 555cf2a8f4 Add resource info on memory used and available for macOS 2019-10-18 23:52:55 +02:00
Holger Vogt b7b4e3badb safeguard against crash if instance lines are incomplete 2019-10-18 23:29:51 +02:00
Holger Vogt 60a3298c2e Make DEVNUM robust against double initialization. 2019-10-05 11:28:17 +02:00
Holger Vogt e0448b4f37 Better indentation of message 2019-10-04 15:25:00 +02:00
Holger Vogt 2776d935ee Better info in case of error
Initited by a patch from Bohdan Tkhir
2019-10-04 15:21:47 +02:00
Holger Vogt 67ffc810a8 If there are no controls, just skip creating the controls thread. 2019-10-02 22:02:57 +02:00
Holger Vogt 5f4eb3ac61 prevent potential false reads if 'controlswait' is set. 2019-10-02 12:04:19 +02:00
Holger Vogt a45c4fad1d in ps compatibility mode: translate t_measured to tnom 2019-10-01 23:43:11 +02:00
Holger Vogt fd2e8612d8 readability 2019-09-28 16:19:27 +02:00
Holger Vogt cb025a98a8 avoid false warnings of model not found 2019-09-28 16:17:03 +02:00
Holger Vogt ec2d885494 correct typos found by linthian 2019-09-28 12:25:18 +02:00
Holger Vogt 518913dd0b no actions if controls thread tid2 is not set 2019-09-25 22:29:37 +02:00
Mamoru TASAKA a38a6ac698 tclspice: avoid get_plot function type conflict
re-name get_plot as get_plot_by_index
2019-09-25 10:25:31 +02:00
Holger Vogt ef33e183f5 Better thread handling
Embed thread tid2 into tid1
Avoid spurious thread collisions
2019-09-25 10:13:37 +02:00
Holger Vogt 4f7b93f3a5 Do not start a spurious thread with empty controls 2019-09-25 10:12:36 +02:00
Holger Vogt 5c8b795064 Does crash with recent Linux openSUSE Tumbleweed
Not required by shared ngspice
2019-09-25 10:12:03 +02:00
Holger Vogt 1c282bbeb7 Revert "encapsulate fcn calls to cp_evloop into a mutex"
This reverts commit 2426a037db.
2019-09-25 09:12:02 +02:00
Holger Vogt 980f8a74b9 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-22 15:51:20 +02:00
Kevin Zheng f502d0974e patch to simplify compile for FreeBSD 2019-09-22 10:42:21 +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