home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: Product / Product.zip / sc621_3.zip / src / CHANGES < prev    next >
Text File  |  1992-05-11  |  22KB  |  589 lines

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