12003-07-08  Stefan Jones <stefan.jones@multigig.com>
2	* quote.c: return the pointer to the start of malloced
3	memory so it can be freeded
4
52003-05-02  Stuart Brorson <SDB@cloud9.net>
6 	*  Major changes in subckt.c to handle POLY attributes in
7 	dependent sources.  Added new case to switch in "translate" to
8 	handle E, F, G, H sources.  Many other fixes.
9
10 	*  Moved location of call to ENHtranslate_poly in inp.c.  This was
11 	necessary to correctly process POLY attributes and the associated
12 	netlists and voltage sources.
13
142003-04-10  Stuart Brorson <sdb@cloud9.net>
15	* modified inp_readall (inpcom.c) to ignore blank
16	  lines terminated by \r\n *and * \n.  This fixes problems
17	  associated with importing files from Windozeland.
18	* Added explanatory comments to many modules.
19
202002-01-03  Paolo Nenzi <p.nenzi@ieee.org>
21
22	* wdisp: added an entire directory containing windows frontend code
23	  (Holger Vogt patch). Files in wdsip: ftegraf.h, makedefs, Makefile.am,
24	   windisp.c and winprint.c.
25
26	* Makefile.am: Windows code compilation rules added to makefile.
27
28	* display.c, outitf.c, rawfile.c, resource.c, runcoms.c: added
29	  defines for Windows (Holger Vogt patch).
30
31
322001-12-14  Paolo Nenzi <p.nenzi@ieee.org>
33
34	* control.c, control.h, com_cdump.c, com_cdump.h, variable.c, variable.h:
35	  Patched the code with the one contributed by Charles Williams. The patches
36	  addresses some memory leaks.
37
382001-11-25  Emmanuel Rouat  <emmanuel.rouat@wanadoo.fr>
39
40	* circuits.h: transfered definition of structure 'circ' to ftedefs.h
41
422001-02-07  Paolo Nenzi <p.nenzi@ieee.org>
43
44	* outitf.c: From a message Alan sento to the mailing list:
45	---------- Forwarded message ----------
46	Date: Tue, 6 Feb 2001 11:11:56 -0000
47	From: "Gillespie, Alan" <Alan.Gillespie@analog.com>
48	Reply-To: ng-spice-devel@ieee.ing.uniroma1.it
49	To: "Ng-Spice-Devel (E-mail)" <ng-spice-devel@ieee.ing.uniroma1.it>
50	Subject: [ng-spice-devel] Reference variable update in interactive mode
51
52
53	I've tweaked outitf.c so that the reference variable value
54	is updated to the screen in interactive mode. I forgot to
55	save the old version first, though, so I couldn't do a diff,
56	so I'm just attaching the whole new outitf.c file. Also, I've
57	updated the documentation as follows :-
58
59
60
61	Modifications to "outitf.c"
62	---------------------------
63
64	A number of modifications have been applied to outitf.c in
65	order to achieve the following "improvements" :-
66
67	    1) Spice3, by default, saved all node voltages, including
68	       nodes internal to the devices. These extra nodes add
69	       dramatically to the amount of data saved, but don't add
70	       significantly to the useful information about the circuit.
71	       So, instead of saving these nodes, a "hack" has been
72	       introduced which checks a new spice option, and either
73	       discards the internal node, or saves some device currents
74	       instead.
75
76	   2) During long simulations, spice would sit "staring back
77	      blankly", giving no clue as to how well the simulation
78	      was, or wasn't, proceeding. In order to give a little
79	      more feedback, another "hack", in the data writing routine,
80	      writes the value of the reference variable to the error
81	      stream, which is usually the screen. In order to minimize
82	      the CPU time "wasted" doing this, the routine will only
83	      reprint the value if more than a quarter of a second since
84	      the last screen update. The result is that this feedback
85	      adds no significant extra time to performance of the
86	      simulation.
87
88	  3) The original file writing routines used to write each data
89	     value to the file individually. A buffering scheme was added,
90	     which collects each row of data in a buffer, and the writes
91	     the whole buffer in one call. This gave a significant
92	     performance improvement (up to 20%) on HPUX, with all currents
93	     saved in large circuits, although there was no significant
94	     difference on Windows 95. The improvement has not been
95	     measured on Linux.
96
97	  4) A check was added to make sure the file write was successful.
98	     Spice3 could easily fill the hard disk, but would continue to
99	     churn away, producing no more useful data. Now it will exit
100	     gracefully. I can't remember why I thought this was important,
101	     but at least it means that a PC with power management will be
102	     able to power down after  a long overnight simulation has
103	     ceased to produce any more useful data.
104
105     Changes
106     -------
107	The routine beginPlot is called at the beginning of the simulation
108	to select which nodes and variables will be saved. The first
109	modification is at the point where it checks the "save" list. This
110	is the list of tokens attached to the .save lines read from the
111	spice source file. The routine now checks for "allv" and "alli"
112	as well as "all". "allv" is treated as a synonym for "all". If
113	"all" or "allv" is found, then a saveall flag is set, and if "alli"
114	is found then a new savealli flag is set.
115
116	Next, the addDataDesc routine is called for every variable to be
117	saved. This is done by stepping through an array called dataNames[].
118	I'm not quite sure where this array comes from, but it was quite
119	easy to add an if statement to stop it calling addDataDesc if
120	dataNames[i] points to a string containing any of the following -
121
122	     #internal
123	     #source
124	     #drain
125	     #collector
126	     #emitter
127	     #base
128
129	That seems to catch all the internal device nodes.
130	The next addition is a new pass through the dataNames[] array
131	specifically looking for those strings. (This pass is only performed
132	if the savealli flag has been set). When one of the strings is found,
133	a bunch of if-then-else statements creates a corresponding string
134	which is submitted to the add addSpecialDesc routine. This saves the
135	relevant device current. Note that since mosfets have only two
136	internal nodes, but four terminal currents, and bipolars have three
137	internal nodes and four terminal currents, some internal nodes have
138	to save more than one terminal current.
139
140	This last change is a clumsy hack, and only works if the devices in
141	question actually have internal nodes. Resistors and capacitors, for
142	instance, never have internal nodes, and so their terminal currents
143	will not cannot be saved with the .save alli card. Also, any bipolar,
144	mosfet or diodes with zero valued parasitic resistances (rd, rs, rc,
145	rb, re) will not be allocated internal nodes, and so their terminal
146	currents will not be saved by this hack, either.
147
148	Further down outitf.c, the OUTpData routine is called whenever a
149	new row of data is ready to be written to file. Near the top of this,
150	the reference variable is written to file separately from the rest of
151	the variables. This is a convenient point for a couple of statements
152	which check the elapsed time since the last update, and write the
153	reference value to stderr if it's time. Slightly further down the
154	routine is the section for writing data to a "plot", i.e. retaining
155	it in memory. A similar statement or two writes the reference value
156	to the screen for this case, i.e. interactive mode. At the end of the
157	OUTpData routine, a new check has been added to see if there was an
158	error writing to the rawfile. If so, the shouldstop flag is set to
159	TRUE, and the simulation will abort.
160
161	Scanning down outitf.c, the next modification is in the fileInit
162	routine. The first statement initialises the lastclock variable.
163	This is used later when deciding if it's time to write the reference
164	value to the screen.
165
166	Next, the fileInit_pass2 routine writes the name strings to the start
167	of the rawfile. At the end of this routine there is now a statement
168	which checks if this will be a binary rawfile, and if so, it allocates
169	a row buffer of the correct length.
170
171	The fileStartPoint routine seems to be called before each row of data
172	is written, and so this is a convenient point to reset the buffer
173	pointer to zero.
174
175	The fileAddRealValue and fileAddComplexValue routines now simply write
176	the relevant values to the buffer, and increment the buffer pointer.
177	Previously they called the fwrite library routine to actually write
178	the data. If the rawfile is not a binary one, however, they just write
179	the text as before.
180
181	The fileEndPoint routine was previously empty. Now it actually calls
182	fwrite to write the whole buffer to the file (if it's a binary file).
183
184	Finally the fileEnd routine prints the total number of data points to
185	the screen, and de-allocates the row buffer (if it was a binary
186	rawfile).
187
188	Congratulations to whoever put these dummy routines in in the first
189	place, since that allowed the buffering to be added very easily.
190
1912001-01-23  Paolo Nenzi <p.nenzi@ieee.org>
192
193	* subckt.c: added some code (very, very experimental)
194	to support mos devices with variable number of nodes
195	(5 to 7) in subcircuit expansion. This hack is necessary
196	since SOI devices can have up to 7 nodes.
197
1982000-11-07  Arno W. Peters  <A.W.Peters@ieee.org>
199
200	* com_history, com_alias, parser/cshpar.c, parser/complete.c:
201	Applied patch by Michael Widlok.  It fixes command completion and
202	history list.  In the process, Michael also fixed a memory leak.
203
2042000-09-09  Arno W. Peters  <A.W.Peters@ieee.org>
205
206	* commands.c: Use fourier.h.
207
208	* dotcards.c: Update to prevent segfault.
209
210	* fourier.c, fourier.h: com_fourier is now calling fourier(), a
211	function with more parameters.
212
213	* dotcards.c: Added assertions to guard a double indirection, now
214	ngspice will bomb out on an assertion instead of a segfault.
215
2162000-07-18  Arno W. Peters  <A.W.Peters@ieee.org>
217
218	* com_ahelp.c, com_help.c, com_plot.c, com_set.c, com_unset.c:
219	Updated header file includes.
220
221	* quote.c: Code formatting changes.
222
2232000-07-16  Arno W. Peters  <A.W.Peters@ieee.org>
224
225	* com_set.h: New header file.
226
227	* com_state.c, com_state.h: Separated from debugcom.c.
228
229	* com_dump.c, com_dump.h: Separated from debugcom.c.
230
231	* debugcom.c, debugcom.h: Removed.
232
233	* Makefile.am: Updates for added/removed files.
234
2352000-03-22  Paolo Nenzi <p.nenzi@ieee.org>
236
237	* rawfile.c: Applied Michael Widlok patch.
238
239	* spiceif.c: Applied Michael Widlok patch.
240
2412000-03-12  Paolo Nenzi <p.nenzi@ieee.org>
242
243	* x11.c: Cleared the code. Rewmoved some empty return on void
244	functions.
245
2461999-12-20  Paolo Nenzi <p.nenzi@ieee.org>
247
248	* outif.c: To fix various "save"-related segmentation faults, make
249	this one-line patch to outitf.c: line 356, change unique =
250	devname; to unique = copy(devname);
251
2521999-12-20  Paolo Nenzi <p.nenzi@ieee.org>
253
254        * subckt.c: Bug: Current controlled switch subcircuit does not
255	expand the controlling source correctly: vsrc expands to
256	name:vsrc, not to v:name:src.
257
258	Fix: changed this file to indicate that w device has only 2 not 3
259	nodes and 1 not zero controlling sources.
260
2611999-09-07  Emmanuel Rouat  <emmanuel.rouat@wanadoo.fr>
262
263	* *.c: put back static functions declarations back in the .c files
264	(shouldn't be in .h files!)
265
2661999-09-07  Arno  <A.W.Peters@ieee.org>
267
268	* aspice.c: template to fprintf now conform to argument types.
269
270	* cmath1.c:
271
272	* cmath2.c: removed most warnings about possible use of
273	uninitialized variables.  Only two remain in cx_sqrt().
274
2751999-09-06  Arno Peters <A.W.Peters@ieee.org>
276
277	* dotcards.c: Put proper braces around an
278        ambiguous if/else construct.
279
280	* postcoms.c:
281
282	* postsc.c: Removed unused variables.
283
2841999-09-04  Emmanuel Rouat  <emmanuel.rouat@wanadoo.fr>
285
286	* Makefile.am (libfte_a_SOURCES): forgot display.h in list
287
288	* typesdef.c: moved types.c to typesdef.c
289
290	* signal_handler.c: moved signal.c to signal_handler.c
291
292	* *.c: added header file for all .c files
293
2941999-09-01  Emmanuel Rouat  <emmanuel.rouat@wanadoo.fr>
295
296	* *.c: removed lots of unnecessary HAS_XX tests and code
297
298	* Makefile.am (libfte_a_SOURCES): removed mfb.c from sources
299
300	* signal.c (ft_sigintr): removed HAS_MFB test
301
3021999-08-30  Paolo Nenzi <pnenzi@ieee.ing.uniroma1.it>
303
304	* Removed #include "suffix.h" and replaced GENERIC with void.
305
3061999-08-28  Emmanuel Rouat  <emmanuel.rouat@wanadoo.fr>
307
308	* Makefile.am (libfte_a_SOURCES): removed x10.c from source files
309
310	* clip.c: removed MAX/MIN #defines
311
312	* Removed all #includes of misc.h and util.h (now in spice.h)
313
3141999-08-19  Paolo Nenzi <pnenzi@ieee.ing.uniroma1.it>
315
316        * Makefile.am: added spec.c.
317
318	* spcmdtab.c: added code for spec command support. The original
319	patch came from ftp.mpce.mq.edu.au.
320
321	* spec.c: added this file containing the spec command code.
322
3231999-08-08  Emmanuel Rouat  <emmanuel.rouat@wanadoo.fr>
324
325	* Makefile.am (DEFS): removed -DWANT_MFB (don't need it)
326
327	* resource.c : removed HAS_RLIMIT_ tests
328
329	* error.c: removed HAS_VAXFPERROR code
330
331	* cmath3.c: removed HAS_SHORTMACRO code
332
333	* display.c : removed HAS_X10 code
334
335	* mfb.c (Mfb_Init): removed HAS_PCTERM code
336
337	* resource.c: removed all code related to HAS_MEMAVL
338
3391999-08-06  Emmanuel Rouat  <emmanuel.rouat@wanadoo.fr>
340
341	* resource.c: removed tests on HAS_UNIX_SEGMENT_HACK
342
343	* xgraph.c (ft_xgraph), options.c (cp_usrset), misccoms.c: removed
344	tests on HAS_SYSTEM
345
346	* nutinp.c, inp.c (com_source, doedit): removed tests on
347	HAS_SYSTEM (always true?)
348
349	* doplot.c (com_hardcopy): removed tests on HAS_UNLINK (always
350	true), removed tests on HAS_SYSTEM (always true?)
351
352	* signal.c:
353	* evaluate.c (doop):
354	* error.c (fatal):
355	* aspice.c: removed test on HAS_UNIX_SIGS (always true)
356
357	* signal.c:
358	* evaluate.c: removed test on HAS_LONGJUMP (always true)
359
3601999-08-04  Emmanuel Rouat  <emmanuel.rouat@wanadoo.fr>
361
362	* aspice.c: changed HAS_WAIT into HAVE_SYS_WAIT_H
363
364	* inpcom.c, breakp.c: changed HAS_CTYPE into HAVE_CTYPE_H
365
3661999-08-03  Emmanuel Rouat  <emmanuel.rouat@wanadoo.fr>
367
368	* signal.c, resource.c, evaluate.c, aspice.c: changed SIGNAL_TYPE
369	into RETSIGTYPE
370
3711999-07-31  Emmanuel Rouat  <emmanuel.rouat@wanadoo.fr>
372
373	* Makefile.am: added @X_CFLAGS@ (X11 header files) to INCLUDES and
374	removed unused LIBS list.
375
37628-07-1999 emmanuel.rouat@wanadoo.fr (Manu Rouat)
377
378	* graf.c, display.c, doplot.c, x11.c: changed HAS_X11 define
379	to X_DISPLAY_MISSING, which is supplied by autoconf in config.h
380
381	* Makefile.am: removed -DWANT_X11
382
383