1CHANGES BETWEEN Sc/X6.22 and 6.22
2Bill Lash
3        -bug in write_fd where a string value could be lost
4Jeff Buhrt
5	-'/' (range commands) is now 'r', '/' is the main menu that the mouse
6		brings up.
7
8CHANGES BETWEEN 6.22 and 6.21
9R. J. Bassett
10	-help.c to reflect the addition of the 3rd format parameter.
11Anthony A. Datri
12	-help.c fputs was missing stdout
13Steve Simmons
14	-made pass gcc -Wall
15	-SunOS 4.1.1 configuration which both allows the use of gcc and
16	 does not require the SysV software set be installed
17	-'-N' command line option for no cursor
18	-SHOWCURSOR will also build into sc.doc, the start of site specific
19	 building of sc.doc, etc.
20Marc Staveley
21	-noted convert_date() is redunant and got the date wrong after a
22	 leap day, now uses dodts()
23**	-dodts needs to be fixed for years > 2000 and < 1970
24Bruce Barnett
25	-sent his and Michael Wagner's disk partition calculator, included
26	 in samples/
27Keenan Ross
28	-noted a problem with a define not getting passed, fixed by 'FEATURES'
29Kevin Cosgrove
30	-noted the suffix sc adds for the 'W' and 'T' commands may not match
31	 what is written (see below)
32Francois Pinard
33	-suggested adding command line options to scqref
34	-pointed out man page changes
35Teus Hagen
36	-suggested easier regular expression config
37Dennis R. ( Chaos Central ) Conley
38	-TIOCGWINSZ code for ultrix (and SysV R4) for window resizing
39Tom Kloos
40	-reworked 'F' formatting
41Jeff Buhrt
42	-added fsuffix to remove the .sc suffix and add a new suffix,
43	 the reported default filename will now match the actual written
44	-added 'F' format type 5 (engineering exponential form)
45
46CHANGES BETWEEN 6.21 and 6.19
47Mark R. Rubin
48	-noted a problem using bison 1.16 (use any version but 1.16)
49Marco S Hyman/Ian */and others
50	-Crypt/CRYPT_PATH define problem
51Paul Eggert
52	-sc.doc $Revision: 6.21 $ 'buglet'
53Ulf Noren/Dave Lewis
54	-AIX3.1/Microport System V/AT don't have notimeout()
55		changed NONOTIMEOUT to NO_NOTIMEOUT, define if not present
56Niels Baggesen
57	-function keys may not return ascii codes that isascii() understands
58	-added an A command for vi mode (add at end of row).
59	-Special key support: DC='x' (del char in vi mode), FIND='g' (goto),
60		HELP='?', SELECT='m'
61Dave Davey
62	-noted Ultrix 4.2 curses doesn't have idlok()
63		[I added NO_IDLOK in Makefile]
64Kim DeVaughn
65	-added ${RIGHTBUG} is now passed to sc.o && screen.o
66	-suggested a better fix on SunOS 4.x dont use the Sys V
67	 package (CC = /usr/5bin/cc, etc), but use the BSD 4.3 defines
68David Bonnell
69	-scqref [will produce] TROFF output instead of plain text,
70	 [when] you define QREF_FMT=TROFF in the Makefile.
71	 The resulting quick reference guide uses the MS macro set and you
72	 build with something like:
73		scqref > quickref
74	 	troff -ms quickref > quickref.ps
75Kurt Cockrum
76	- sc.h:
77		If not (defined(BSD42) || defined(BSD43) && !defined(ultrix)),
78		include <memory.h> for the benefit of some USG systems...
79	- screen.c:
80		Repaired cpp logic:
81		don't mention IDLOKBAD or idlok() unless SYSV3 defined;
82		idlok() does not exist for USG pre-SYSV systems (may exist for
83		SYSV{2,3,4}).
84	- tutorial.sc:
85		Repaired a number of off-by-1 errors.
86Mats Wichmann
87	-cleaned up Robert E. Cousins MIF format support code which is
88		compatible with FrameMaker.
89Neil Skilling
90	-added @numiter which returns the number of iterations performed.
91	 It allows you to solve equations by direct substitution. Taking a
92	 guess from another cell if the first iteration otherwise taking the
93	 last best iterate. Other uses may be found.
94Martin MacLaren
95	-MS-DOS cleanup of Makefile
96Art Mulder
97	-^T toggle: don't list crypt if not available
98John Amanatides
99	-pointed out a possible NULL ref in interp.c
100Phil Johnson
101	-sc now appends: "asc", "cln", "tbl", etc. to output files
102	-made the engineering format match that used by an engineer
103	-deleted an unused engmult[] reference
104	-added a fix to struct enode for the HP compiler
105Kevin Cosgrove
106	-noted sc should use any predefined PI
107Jeff Buhrt
108	-'make clean' now leaves the binaries and man pages [Jean-Pierre Radley]
109	-'make clobber' cleans all built files (like clean used to) [""]
110	-'-D' vs '-S' was needed on a XENIX2_3 line [""]
111	-'quit()' -> 'doquit()', function conflict [""]
112	-change xmalloc,xrealloc,xfree -> scxmalloc,scxrealloc,scxfree
113		(xmalloc is a standard malloc)
114
115CHANGES BETWEEN 6.19 and 6.18
116Tom Tkacik
117	-sc.doc and CHANGES changes
118Edgard
119	-moving right off the screen now redraws vs optimize
120Sisira Jayasinghe
121	- added build.com (VMS) and VMS fixes
122Jonathan I. Kamen && Charlie Shub
123	-noted fmod doesn't exist on BSD4.3 and Mt Xinu
124Ben Priest
125	-vi compatability: ' ' moves right as well as 'l' while line editing
126Jeff Buhrt
127	-one more possible NULL pointer fixed
128	-added NONOTIMEOUT for those that don't have notimeout() in curses
129	-undef CRYPT=-DCRYPT_PATH... if crypt isn't available
130	-merged simple fmod into interp.c if fmod() is not present
131
132CHANGES BETWEEN 6.18 and 6.17
133James Dugal
134	- NULL pointer fix for is_locked
135Kevin Pye
136	- add a new mode suitable for entry of large amounts of data.
137		moves to next cell on return, maxrow/col when to start
138		entering in the next row/col. (see help screens B&C)
139	COMMANDS ADDED: ^Tz, ^Tr, Srowlimit=?, Scollimit=?
140David Fox - added a date format so that columns whose values are the number
141	of seconds since 1/1/70 will be displayed as dates in the format
142	dd-mmm-yy, and a modification to the grammar so data entered in the
143	format dd_mm_yy will be converted into the number of seconds since
144	1/1/70.
145	COMMANDS ADDED: f # # 3
146Teus Hagen
147	- labels are centered strings
148	- constant strings with '\' preceeding character will
149	  be wheeled over the column width
150	- a restart of sc on an sc file will go to last used cel
151	- added toupper, tolower and do proper word capitalization
152	COMMANDS ADDED: @toupper(), @tolower(), @capital(), @pi, "\[String]
153Jeff Buhrt
154	- external functions null/previous message was backwards
155	- cleaned up help.c by inserting a new screen
156	- found a possible NULL pointer in screen.c
157
158CHANGES BETWEEN 6.17 and 6.16
159Ulf Noren
160	- added cell locking, disallowing input, to ranges of cells
161Herr Soeryantono
162	- I added ifdef's around curses KEY_* functions his curses didn't have
163		(Sun/OS 4 on a SPARC)
164Jay Lepreau
165	- changes to tutorial.sc: how to get out, should be used w/ 24 lines
166	- IDLOKBAD was not passed to screen.c
167	- suggested error messages if the execl of crypt fails
168	- pointed out BSD's crypt is in /usr/bin/crypt
169Henk P. Penning
170	- suggested Makefile list the mode of the man page & tutorial.sc
171	- make install will now install the psc man
172	- yylval was not known in lex.c for HP-UX 7.05
173Edgard
174	- hitwinch fixes
175	- KEY_HOME now takes you to 0,0
176CHECK KEY_NPAGE/PPAGE
177Stephen (Steve) M. Brooks
178	- suggested the man pages should include Sc's revision
179Dan Banay
180	- code to set LINES and COLS after a window size change
181Bart Schaefer
182	- @myrow/@mycol fix
183Bruce Jerrick
184	- noted ln may not always work for the temporary source files
185Gene H. Olson
186	- fixes for SIGWINCH for Sun OS 4.1.1
187Teus Hagen
188	- added three functions:
189		1) allow @PI as well
190		2) @upper/@lower for casing characters in a string
191		3) @capital for upper case first char of words in a string.
192Martin Maclaren
193	- added MS-DOS support
194		COMPILER USED: Microsoft C, 5.1
195		TOOLS USED   : NDMAKE GNUBISON GNUSED PCCURSES
196Cuong Bui
197	- has a working Vietnamese version of sc, noted a A_CHARTEXT
198		mask problem
199Jeff Buhrt
200	- when numeric prescale is on: 300 -> 3.0, now 300. -> 300. not 3.0
201		(numbers with a decimal aren't scaled)
202
203CHANGES BETWEEN 6.16 and 6.15
204Tom Tkacik
205	-fixed a bug in ^W
206Jonathan I. Kamens
207	- added Makefile rules so scqref and psc don't clobber .o's
208Larry Philps
209	- fixed a SCO XENIX vs M_XENIX problem
210	- fixed a problem where dosval() might not xmalloc enough memory
211Dave Close
212	- fix for Xenix 2.3 to reset terminal modes
213
214CHANGES BETWEEN 6.15 and 6.14
215Lowell Skoog
216	- fixed a bug in 'F'ormat
217Henk Hesselink
218	- format.c double neg. sign
219	- interp.c minr/minc bug, plus modflg wasn't set
220	- fixed a hardcoded path in sc.doc
221	- improvement:
222		-show current cell format in top line
223		-[buhrt: go into edit mode on the old format if it existed
224			otherwise insert mode]
225Jonathan Crompron
226	- made sure doformat() does a checkbounds()
227Stephen (Steve) M. Brooks
228	- pointed out -s in psc was broke
229Michael Richardson
230	- fixed negative numbers in exponential format
231
232CHANGES BETWEEN 6.14 and 6.13
233Mats Wichmann
234	- Sys V R4 patches, fixed 'Press RETURN ...' on a shell command
235Tim Theisen
236	- changed #define for memcpy/memset under ultrix
237Rick Walker
238	- Added @myrow and @mycol to give the row/col of the current cell
239	'The two functions are @myrow and @mycol, which return the numerical
240	row and column of the calling cell.  The cell directly above a cell
241	in the D column could then be accessed by @nval("d",@myrow-1).'
242	NOTE: @myrow and @mycol can't be used in specifying ranges.
243
244CHANGES BETWEEN 6.13 and 6.12
245Rick Walker
246	- pointed out a move(x,y)-> (y,x) in sc.c
247Glenn Barry
248	- Further SunOS 4.X cleanups
249Tom Tkacik
250	- made sure 'J' moves downward 1/2 a screen even at the bottom
251David I. Dalva
252	- pointed out crypt may not be in /bin/crypt
253Gregory Bond
254	- allows the vi-mode editing of very long expressions
255		(> 1 screen width) to work on 2nd + subsequent lines
256Tom Anderson
257	- "let A1 = aaa" (where aaa is defined as A0:A0) is now valid
258	- added autolabeling
259		'When there is an empty cell to the left of a cell that has
260		just been defined (with /d), a label is created in the blank
261		cell.  The label holds the definition that has just been
262		created.  This labeling is only done for definitions of single
263		cells (and not for ranges).'
264		'The feature can be turned on and off with a toggle (^T)
265		command'
266Petri Wessman
267	- Added support for SLaTeX, 'a Scandinavian version of LaTeX, in
268		intensive use ... in Finland and in Sweden'
269Jeff Buhrt
270	- vmtbl.c explictly set arrays of pointers to NULL, vs memset()
271	- psc   [-P] plain numbers only:a number only when there is no [-+eE]
272		[-S] all numbers are strings
273	- psc: a number must end in [0-9.eE] anything else makes it a string
274		(4, 4., 4.5, and 4e are numbers; 4-, 4+, etc are not).
275	- psc: made sure we grow enough when we call growtbl()
276	- cleaned up the Makefile w/ a few suggestions
277	- SIGWINCH is delt with next time the screen would update (testing)
278	- added IDLOKBAD to get around a SysV curses bug (see Makefile)
279	- moved screen functions into screen.c (except for one indirect
280		'repaint()' call in sc.c, and help.c)
281
282CHANGES BETWEEN 6.12 and 6.11
283James Dugal
284	- added format.c to SRCS in Makefile
285	- noted RETURN didn't enter insert mode
286Peter King
287	- pointed out iscntrl is broken on some other systems as well
288	- sent some lint cleanups
289Michael Richardson
290	- patch to stop format looping when scientific notation was selected
291Glenn T. Barry
292	- code to turn on hardware scrolling and added 'slow speed display'
293		speedups, default for SYSV3 or see -DSUNOS41SYSV in Makefile.
294Tom Tkacik
295	- fixes to make sure J and K move same amount, and re-added H code
296Jeff Buhrt
297	- fixed a possible xfree(NULL) in getent() (found when adding K_VAL)
298	- merged compiler cleanups
299*	- added $(name)qref to print a Quick Reference card
300	- got rid of INVALIDS that may have been left around
301*	- pressing return on a empty line puts you into insert mode
302		(like in <=Sc6.1). When entering you can also press ESC
303		to go into the editor (no change); this is also documented
304		now so it might stay around this time.
305
306CHANGES BETWEEN 6.11 and 6.10
307
308Jonathan I. Kamens
309	- sc.doc now mentions the tutorial file in the FILES section
310Andy Fyfe
311	- pointed out 3 locations where a NULL should have been '\0'
312Robert Bond
313	- pointed out the ERROR could hide a cellerror
314Piercarlo Grandi
315	- H,J,I,K now move 1/2 screen
316Ulf Noren
317	- changes for AIX V3.1
318		- defined CHTYPE and NLS for the preprocessor. CHTYPE is
319		the type of every character in a curses window.
320		- Added KEY_BACKSPACE to nmgetch
321		- strtof ifdef
322	- Iteration change: when Sc says: "Still changing after 9 iterations"
323	Sc at that point will have eval'd 9 times
324Chris Metcalf
325	- pointed out I broke setlist when adding 'goto {error,invalid}'
326James P. Dugal
327	- iscntrl() wasn't handling TABS though CRs under Pyramid OSx4.1
328Peter King
329	- BROKENCURSES patch for nl()/nonl() bug on some BSD systems
330	- backups, tutorial file, and man references now depend on $name
331	- DFLTPAGER to DFLT_PAGER fix
332
333CHANGES BETWEEN 6.10 and 6.9
334
335Tom Tkacik
336	- when moving off the current table (resizing) now move the cursor
337		on 'l' or 'k'.
338	- patches to sc.doc to correctly format the vi-mode notes
339Jim Clausing
340	- made sure / doesn't try to divide by zero.
341Tom Kloos
342	- correction to substr() example in help.c
343Piercarlo "Peter" Grandi
344	- Disable non-constant expressions while loading
345	- Added extra code in dealing w/ floating point exceptions
346	- #ifdef'd SAVENAME (vs hardcoded SC.SAVE) to allowing changing the
347		emergency save name.
348Casey Leedom
349	- Makefile changes: man extension, RINT note, make values should
350		never be left undefined and then referenced, don't leave
351		around *.old's
352Tom Anderson
353	- patches to add type of column format (note format now has 3 args)
354Jeff Buhrt
355	- xmalloc/xfree fatal() will now call diesave()
356		(MAKE SURE the saved file is ok if this were to happen)
357	- history[] is now a circular queue, this will cut down on the
358		number of data moves and also xmalloc/xfree calls
359		(idea from Keith Bostic)
360	- cells with an error (ex: divide by 0) will show 'ERROR'
361	- you can 'goto error' (or 'goto') to find an ERROR (for next ERROR)
362Robert Bond
363	- When in numeric mode the ^B, ^F, ^N, ^P key will end a numeric entry.
364
365CHANGES BETWEEN 6.9 and 6.8
366
367Jim Richardson
368	- pointed out vi mode was not documented in sc.doc
369	- found a nasty buffer limit bug in savedot()
370	- a side effect was ^D could cause a core dump (-Jeff)
371Tim Wilson
372	- Hints on compiling on Ultrix
373Eric Putz
374	-patch for printfile() (sc died on huge # of columns in a W)
375Jeffrey C Honig
376	-patch for lex.c which bombed on SunOS 4.1 if $TERM was not set
377Tom Kloos
378	-psc now calls [+-.] strings vs numbers.
379	-also pointed out a format reversal problem
380Jack Goral
381	-changes to Makefile to compile under SCO Unix V rel 3.2.0
382Mark Nagel
383	-changes to allow arbitrarily complex formatting of cells
384Kim Sanders
385	-^W generated an incorrect equation (line was not started at beginning)
386Mike Schwartz
387	-a put command will use the same encryption key as when the
388	file was read.
389	>I have a suggestion for making the encyrption option of "sc" more
390	>usable:  Right now, if you use the -x option when you start up sc, it
391	>prompts you for the key (just like "vi -x" does).  But when you try to
392	>write the file out using the Put command, it asks for the key again
393	>each time.  Why not make it use the same key you used before (as "vi
394	>-x" does)?  That would really help, because as it is, each time you try
395	>to save the file you run the risk of mistyping the key.
396	>
397	>You might think this causes a security problem, since the key is then
398	>an argument to crypt, and hence is visible from ps.  But when crypt
399	>runs, the first thing it does is to copy the key to an internal buffer
400	>and then zero out the argv copy, so the window of vulnerability is
401	>vanishingly small.
402Adri Verhoef
403	- pointed out a ^D caused a core dump (fixed)
404Gene H. Olson
405	- format now grows the spreadsheet before setting the column format.
406	- removed an extra ';' that caused a possible column number trashing
407Paul Eggert
408	-sc now also has round-to-even, also known as ``banker's rounding''.
409	>With round-to-even, a number exactly halfway between two values is
410	>rounded to whichever is even; e.g. rnd(0.5)=0, rnd(1.5)=2,
411	>rnd(2.5)=2, rnd(3.5)=4.  This is the default rounding mode for
412	>IEEE floating point, for good reason: it has better numeric
413	>properties.  For example, if X+Y is an integer,
414	>then X+Y = rnd(X)+rnd(Y) with round-to-even,
415	>but not always with sc's rounding (which is
416	>round-to-positive-infinity).  I ran into this problem when trying to
417	>split interest in an account to two people fairly.
418	-While we're on the subject, @round(X,Y) should also work when Y
419	>is negative. For example, @round(123,-2) should yield 100.
420
421
422CHANGES BETWEEN 6.8 and 6.7
423
424Jeff Buhrt (with help from some beta testers-Thank you)
425	  1) added a per row memory allocation
426		-runs in about 1/2 run time and 1/3 the space of 6.6vm.1
427		-insert/delete row now just moves pointers (# == maxrow+1-currow)
428			and blanks one row (of columns (maxcol))
429		-as the number of cells grows the size is more linear
430			(no more ##Meg images except for 100,000's of rows....)
431		-row to column pointer translation is done by a macro (ATBL)
432			that returns a pointer to the cell pointer.
433			*ATBL would be a pointer to a *ent (cell).
434		-the maximum # of columns is limited by ABSMAXCOLS or
435			sizeof(struct ent *)*maxcols (whichever is smaller)
436			(702 * 4 = 2808 is no real limit even for 286 large model)
437		-the maximum # of rows is limited by the virtual memory limit or
438			sizeof(struct ent **)*maxrows (whichever is smaller)
439			(4*X=64k, X=16384 rows (excluding malloc overhead) on
440				a '286 large model. Even w/ 3.25Meg and 10Mhz)
441			(plus of course any memory used for cells)
442	2) dolookup (int vs double)
443	3) dolookup calling eval w/ ent * not enode *
444		 (dolookup called w/ ent * not enode *)
445	4) cleaned up a lot of .... *x = 0 to  (.... *)0 (cmds, interp)
446	5) psc: fwidth/precision were reversed on the output
447	6) Backup copy (on save) using same mode to [path/]#file~
448		 (will prompt if a backup fails)
449	7) put y/n prompt function into yn_ask(mesg)
450	8) found a move(x,y) in sc -> move(y,x) and only move when needed
451	9) we use FullUpdate || changed (to see if ANY cells changed)
452		before trying to redraw the screen in update
453		(now we don't try to redraw every time a key is hit)
454		-if we are stand[ing]out we do not create a cell just to force a
455		 standout inside the repaint section of update()
456		-only draw blank cells if we cleared it or it is standing out
457		reason: the less work (what to update) curses has to do, the faster
458			a screen update will be (less cpu required)
459	14) {insert, delete}col replaced w/ {open,close}col(currow, numcol_to_insert)
460		(limits looping)
461	6.7.1.1
462	15) goto nonexistant cell may loop
463	16) make sure that startup size will at least fill the screen w/ cells.
464	17) added version.c
465	6.7.1.2
466	18) When we would normally die w/o saving (SIGQUIT, etc), we now ask
467		if people would like to save the current spreadsheet.
468		If 'y', saves to the current file name, otherwise ~/SC.SAVE,
469		then /tmp/SC.SAVE if all else fails.
470	6.7.1.3
471	19) don't use malloc.c for production code
472	20) progname is now truncated to just the basename (systems w/ long paths
473		caused problems)
474
475CHANGES BETWEEN 6.1 and 6.7
476
477Dave Lewis -
478	Found and fixed a null pointer derefrece in the 'R' command.
479
480Rob McMahon -
481	Changed the ctl() macro to work with ANSI style compilers.
482	Cleaned up some non-readonly text problems.
483
484Rick Linck -
485	Fixed a bug in lex.c - Ann Arbor Ambassadors have long ks and ke
486	termcap entries.
487
488Sam Drake -
489	A fix for undefined C_* symbols in AIX.
490
491Peter Brower -
492	Cleaned up the INTERNATIONAL ifdefs with more portable code.
493
494Glen Ditchfield
495	Cleaned up a problem in crypt.c when the encrypted file shrank.
496
497Bob Bond -
498	Vi style editing for the command line.
499	A bug in range name aliases.
500
501Jeff Buhrt -
502	-Added "~" filename expansion.
503	-702 columns (A-ZZ) and unlimited rows/cells based on max. memory
504	-fixed a few bugs
505	-slightly decreased CPU usage
506	-MAKES backup copies of files
507	-understands ~$HOME stuff
508
509CHANGES BETWEEN 5.1 and 6.1:
510
511Andy Valencia -
512	xmalloc aligns data to a double boundary.
513
514Lawrence Cipriani -
515	Fixed a bug in the "do you want to save this" sequence.
516
517Soren Lundsgaard -
518	A null pointer derefrence.
519
520Rick Perry -
521	Cleaned up a problem with modchk() in sc.c.
522
523Gregory Bond -
524	Added code for multi argument versions of @min and @max.
525
526Tad Mannes -
527	Added code to save/restore hidden rows and columns when the
528	data base is saved or restored.
529
530Marius Olafsson -
531	INTERNATIONAL changes.  Allows full 8 bit characters (if
532	curses supports them.)
533
534Kurt Horton -
535	Added support for @pv, @fv and @pmt financial functins.
536	Tested lots of different systems, linting.
537
538John Campbell -
539	Support for VMS.  See VMS_NOTES.
540
541Peter King -
542	 User selection of row or column order for recalculation.
543		Also affects order of traversing regions in /f and /r
544	 User setting of automatic or manual recalculation.
545	 User setting of number of times to try recalculation.
546	 + and - commands when in non-numeric mode to do
547		increment and decrement operations.
548	@index, @stindex, @atan2, @lookup  functions.
549	Save/restore options.
550	Support for TeX, LaTeX, and better support for tbl in "T" cmd.
551	Provision of a copyent function to copy entries (same code repeated
552		in several locations)
553	Forwrow, backrow, forwcol, backcol functions to replace
554		repeated code
555	Correct interpretation of ESCAPE or ^G as an abort when in a
556		two character command such as 'ar' or 'ac'
557	Cleanup in eval() - catches non-trap function errors.
558
559Bob Bond -
560       Added search options to "g".
561       Added supression of hidden columns to "W"
562       Added the mod operator "%"
563       New help functions.
564       Constant prescale "$"
565       Added string matching to @lookup.
566       Some more bug fixes.
567       Testing, integration, documentation.
568
569Alan Silverstein-
570	Greatly revised the manual entry.
571	Added menus for ^E command and row/column commands, which
572	involved a bunch of code cleanup.
573
574	Changed top row display to clearly indicate string labels
575	versus number parts, and to distinguish string functions from
576	constant labels.
577
578	When the character cursor is on a cell (not topline), ^H
579	(backspace) is like ^B (move back one cell), rather than being
580	ignored.
581
582	When the character cursor is on a cell (not topline), ^I (tab)
583	is like ^F (move forward one cell), rather than being ignored.
584	^R is no longer identical with ^L.  Now ^R highlights all cells
585	which should be entered by a user because they contain constant
586	numeric values (not the result of a numeric expression).
587
588	Added a ^X command, similar to ^R, which highlights cells which
589	have expressions.  It also displays the expressions in the
590	highlighted cells as left-justified strings, instead of the
591	label and/or value of the cell.
592
593	Added indirection functions (@nval() and @sval()) for simple
594	table lookups.  Given a column name and row number, they return
595	the numeric or string value of the selected cell.
596
597	Added external functions (@ext()) for non-trivial
598	computations.  Given a command name and argument, it calls the
599	command and reads back one output line.
600
601	Added a ^T,e command to toggle enabling of external functions.
602
603	Changed ^T,t to only control the top line display, and added
604	^T,c to control current cell highlighting.  (Separated the
605	functions.)
606
607	"!" (shell escape) gives a vi-style warning if there were any
608	changes since the last write.  (No change to manual entry.)
609
610	Fixed some startup, error, and prompt messages to be cleaner
611	and/or more consistent.  (No changes to manual entry.)
612
613	Fixed a bug:  If @substr() upper bound (third parameter) is
614	past the end of the string operand, return the substring
615	through the end of the string, rather than returning a null
616	string.
617
618	Fixed a bug:  Reset SIGINT to default after forking before
619	calling shell escape program and before starting pipeline (for
620	commands which support this).  Didn't reset SIGINT before
621	calling crypt and external functions because in both cases it
622	should be irrelevant.  (No change to manual entry.)
623
624CHANGES BETWEEN 6.1 and 6.2:
625
626
627Chris Cole-
628	Compatibility with Lotus 1-2-3
629		a) @hlookup(expr,range,expr)
630		b) @vlookup(expr,range,expr)
631		c) @round(expr,expr)
632		d) @if(expr,expr,expr)
633		e) @abs(expr)
634