home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Power-Programmierung
/
CD2.mdf
/
c
/
m_emacs
/
ue311c
/
history.c
< prev
next >
Wrap
Text File
|
1991-10-30
|
85KB
|
1,751 lines
/*
* HISTORY.C: Revision History for
*
* MicroEMACS 3.11
* written by Daniel M. Lawrence
* based on code by Dave G. Conroy.
*
* (C)Copyright 1988,1989,1990,1991 by Daniel M. Lawrence
* MicroEMACS 3.11 can be copied and distributed freely for any
* non-commercial purposes. MicroEMACS 3.11 can only be incorporated
* into commercial software with the permission of the current author.
*
* REVISION HISTORY:
*
* 1.0 Steve Wilhite, 30-Nov-85
* - Removed the old LK201 and VT100 logic. Added code to support the
* DEC Rainbow keyboard (which is a LK201 layout) using the the Level
* 1 Console In ROM INT. See "rainbow.h" for the function key defs
* Steve Wilhite, 1-Dec-85
* - massive cleanup on code in display.c and search.c
*
* 2.0 George Jones, 12-Dec-85
* - Ported to Amiga.
*
* 3.0 Daniel Lawrence, 29-Dec-85
* - rebound keys/added new fast buffered I/O for AMIGA
* - added META- repeat commands
* - added reposition default to center screen (yeah!)
* - changed exit with modified buffers message
* - made filesave tell us what it is doing
* - changed search string entry to terminate with <ESC>
* so we can use <NL> in search/replace strings
* - updated version number in mode line to 3.0
* 12-Jan-86
* - Added code to reconize the search/replace functions
* - Added code to perform search/replace & query functions
* 14-Jan-86
* - moved search logic to separate function in search.c
* - added replace and query replace functions
* - separated out control key expansions to be used by others in search.c
* 15-Jan-86
* - changed "visiting" to finding
* - changed yes/no responses to not need return
* - cleaned up various messages
* 16-jan-86
* - fixed spurious spawn message in MSDOS
* - added ^X-S synonym to save command
* - moved escape to shell to ^X-C
* 21-jan-86
* - added code to suspend shell under BSD
* 22-jan-86
* - added function key support (SPEC) under MSDOS
* - Abort now prints [Aborted] on message line
* 23-jan-86
* - Added modes and commands to set/unset them
* 24-jan-86
* - Added Goto Line command
* - added Rename Buffer command
* 28-jan-86
* - added goto beginning and end of paragraph commands (META-P/META-N)
* - re-wrote kdelete to use realloc. Gained MUCH speed here when
* doing large wipes on both UNIX and MSDOS. Changed kill buffer
* allocation block size from 256 bytes to 1 k
* 29-jan-86
* - moved extern function declarations to efunc.h
* - made name[] name binding table
* 30-jan-86
* - fixed Previous/Next paragraph command not to wrap around EOF
* - added Fill Paragraph command (META-Q)
* 4-feb-86
* - added code to properly display long lines, scrolling them right
* to left
* 5-feb-85
* - rewrote code to right/left scroll...much better
* - added shifted arrow keys on IBMPC
* 6-feb-85
* - add option to allow forward-word to jump to beginning of
* next word instead of end of current one. This is different from
* other emacs' but can be configured off in estruct.h
* - added VIEW mode to allow a buffer to be read only
* (-v switch on command line will activate this)
* - changed quick exit to write out ALL changed buffers!!!
* MAKE SURE YOU KNOW THIS WHEN META-Zing
* 10-feb-86
* - added handling of lines longer than allowed on file read in
* (they wrap on additional lines)
* - made having space clear the message line and NOT insert itself
* a configuration option in ed.h
* 11-feb-86
* - added Describe-command and Help commands.
* 13-feb-86
* - added View file command (^X ^V) and finished HELP command
* 14-feb-86
* - added option to let main loop skip update if type ahead commands
* are queued up
* 16-feb-86
* - added Insert File command
* 17-feb-86
* - added scroll next window up/down commands
* 18-feb-86
* - added CMODE indentation
* - re-arranged header files to standardize extern and global
* definitions
* - changed version number to 3.2
* - added numeric arguments to search, reverse search and
* search and replace
* 24-feb-86
* - added Bind To Key function (^C for now) to allow the user
* to change his command keys
* - added Unbind key function (M-^C for now)
* - added execute named command to execute unbound commands (M-X)
* - added describe bindings command (not bound)
* - changed version number to 3.3
* 25-feb-86
* - scrapped CERROR mode (too many compilers)
* - added EXACT mode for case sensitive searchers
* 26-feb-86
* - added command completion on execute named command and
* all routined grabbing a command name
* - adding execute-command-line command and its support functions
* (in preparation for sourcing files)
* - added Execute Buffer command
* 27-feb-86
* - added execute(source) file command and added code to automatically
* execute emacs.rc (or .emacsrc on UNIX) before initial read in
* - changed version number to 3.4
* 4-mar-86
* - changed word delete to be consistant with word move (it gets
* rid of the inter word space now) This is configurable with the
* NFWORD symbol in estruct.h
* - added B_ACTIVE entry to the buffer table. Let emacs read multiple
* file names from the command line and only read them in as needed
* 5-mar-85
* - rewrote command line parser to get rid of my patchy code
* - changed version number to 3.5
* 1-apr-86
* - added support for Aztec C 3.20e under MSDOS
* - fixed bug in mlwrite on ADM3's and their ilk under V7
* - added insertion of pounds in column one under CMODE
* - changed version number to 3.6
* 3-apr-86
* - added next-buffer command (^X-X)
* 5-apr-86
* - added kill paragraph command (M-^W)
* - changed fill-paragraph to leave 2 spaces after a period at the
* end of a word.
* - added OVERWRITE mode
* 7-apr-86
* - fixed overwrite mode to handle tabs
* 8-apr-86
* - added add/delete global mode (<ESC>M & <ESC> ^M) commands
* 9-apr-86
* - added insert space command
* - moved bindings around ^C insert space
* M-K bind-to-key
* INSERT insert space
* DELETE forwdel
* - added hunt forward and hunt reverse commands
* 10-apr-86
* - fixed bug in DOBUF with non-terminated command string
* 15-apr-86
* - fixed tab expansion bug in DISPLAY which hung the AMIGA
* (sent in by Dawn Banks)
* - fixed curcol problen if forwline/backline during keyboard
* macro execution (sent in by Ernst Christen)
* - added AMIGA function/cursor key support
* - fixed nonterminating <NL> replacement bug
* - fixed word wrapping problems
* 16-apr-86
* - updated documentation and froze development for 3.6 net release
* 23-apr-86 version 3.6a
* - added foreground and background colors. Setable with the
* add mode commands for the moment
* 24-apr-86
* - added command to pipe CLI output to a buffer
* 25-apr-86
* - added Dana Hoggatt's code to replace Lattice's sick system()
* function. Now we no longer care what the switchar is.
* - cleaned up the positioning on several of the spawing commands
* 26-apr-86
* - added an output flush in vttidy(). Unix really appreciates this.
* - added filter-buffer (^X#) command to send a buffer through
* a DOS filter
* - made automatic CMODE on .c and .h file compilation dependant
* in estruct.h
* 1-may-86
* - optimized some code in update(). It certainly needs a lot more.
* - added Aztec profiling capabilities. These are conditional on
* the APROF symbol in estruct.h
* 2-may-86
* - added (u)ndo command in query-replace. undoes last repalce.
* 6-may-86
* - re-organized and wrote the update() function in display.c
* Now my color hacks are in the right places and the code can be
* understood.
* [Released version 3.6f for BETA test sites]
* 8-may-86
* - fixed bug in new display routine to wrap cursor on extended
* lines at the right time
* - modified the buffer-position command to give reasonable info
* 9-may-86
* - improved the word wrap algorithm as not to discard non-space
* delimiters. The backscan now looks for white space rather than
* !inword().
* [Released version 3.6g to Krannert]
* 10-may-86
* - Added IBMPC.C an IBM-PC specific display driver. This makes paging
* 4-6 times faster. Also made some conditional changes to DISPLAY.C
* to eliminate the pscreen[] if using the PC driver.
* [changed version number to 3.6i]
* 12-may-86
* - added delete-window (^X 0) command to dispose of a single window
* - fixed problem with multiple prefixes from a command line which
* was reported by John Gamble
* 14-may-86
* - Added Aztec support for the IBMPC display driver. Had to
* readjust some includes and defines for this.
* - fixed bug in delete-window.
* - fixed some bizarre behavior with the cursor after coming back
* from spawn calls.
* [changed version number to 3.7 freezing development for net release]
* 15-may-86
* - (that didn't last long...) Added execute-macro-(1 thru 20) commands
* to execute macro buffers (named "[Macro nn]")
* - changed BFTEMP to BFINVS and cleaned up treatment of invisible
* buffers.
* 16-may-86
* - added store-macro (unbound) to store any executed command lines to
* macro buffer.
* - added clear-message-line (unbound) command to do just that
* - added resize-window command to change a window's size to the
* specified argument
* - improved help's logic not to re-read the file if it was already
* in a buffer
* - added MAGIC mode to all structures and command tables, but the
* regular expression code that John Gamble is writing is not ready.
* 18-may-86
* - added interactive prompt requests in command line execution (i.e.
* while executing a macro, a parameter starting with an at sign (@)
* causes emacs to prompt with the rest of the parameter and return
* the resulting input as the value of the parameter).
* - added arguments to split-current-window to force the cursor into
* the upper or lower window.
* 20-may-86
* - added support for the Microsoft C compiler as per the changes
* sent in by Oliver Sharp
* - made some upgrades and fixes for VMS sent in by Guy Streeter
* 21-may-86
* - fixed an Aztec bug in ttgetc by clearing the upper byte
* - fixed buf in CMODE with #preprocesser input (bug fix submitted by
* Willis of unknown path)
* - added support of alternative startup file ( @<filename> ) in
* the command line
* - added ^Q quoting in interactive input (mltreply()).
* - added re-binding of meta-prefix and ctlx-prefix
* 22-may-86
* - reorganized getkey routines to make more sense and let prefix
* binding work properly.
* 23-may-86
* - checked new code on BSD4.2 and made a few fixes
* - added optional fence matching while in CMODE
* - added goto and search command line arguments by Mike Spitzer
* 26-may-86
* - added parameter fetching from buffers
* 27-may-86
* - fixed some HP150 bugs......
* 31-may-86
* - Added Wang PC keyboard support from modifications by
* Sid Shapiro @ Wang Institute
* - Fixed some reverse video bugs with code submitted by Peter Chubb
* - Fixed bug in nextbuffer reported by Dave Forslund
* - added system V support (USG) from Linwood Varney
* 2-jun-86
* - changed defines to just define one Unix define (for example,
* just define BSD for Unix BSD 4.2)
* - Added Incremental search functions written by D. R. Banks
* in file ISEARCH.C
* - added insert-string (unbound) command to help the macro
* language out.
* - added unmark-buffer (M-~) command to turn off the current buffers
* change flag
* - fixed nxtarg to truncate strings longer than asked for max length
* 4-jun-86
* - added special characters in command line tokens. Tilde (~) is
* the special lead-in character for "nrtb".
* - Fixed bad ifdef in Aztec code so it could look at HOME dir
* for startup, help, and emacs.rc files
* 6-jun-86
* - make delete word commands clear the kill buffer if not after another
* kill command
* 11-jun-86
* - made ~@ in string arguments pass as char(192) to nxtarg() so one can
* quote @ at the beginning of string arguments
* - changed buffer size vars in listbuffers() to long (for big files)
* - re-wrote buffer-position command to be much faster
* 12-jun-86
* - added count-words (M-^C) command to count the words/chars and
* lines in a region
* - changed regions so they could be larger than 65535 (short ->
* long in the REGION structure)
* - changed ldelete() and all callers to use a long size. The kill
* buffer will still have a problem >65535 that can not be solved
* until I restructure it.
* - grouped paragraph commands and word count together under symbol
* WORDPRO to allow them to be conditionally made (or not)
* 13-jun-86
* - re-wrote kill buffer routines again. Now they support an unlimited
* size kill buffer, and are (in theory) faster.
* - changed delete-next-word (M-D) to not eat the newline after a word,
* instead it checks and eats a newline at the cursor.
* 17-jun-86
* - added numeric argument to next/previous-window to access the nth
* window from the top/bottom
* - added support for the Data General 10 MSDOS machine
* - added save-window (unbound) and restore-window (unbound) commands
* for the use of the menu script. Save-window remembers which window
* is current, and restore-window returns the cursor to that window.
* 20-jun-86
* - fixed a bug with the fence matching locking up PASCAL NEAR the beginning
* of a buffer
* - added argument to update to selectively force a complete update
* - added update-screen (unbound) command so macros can force a
* screen update
* 21-jun-86
* - rearranged token() and nxtarg() calls so that command names and
* repeat counts could also be prompted and fetched from buffers
* [this broke later with the exec re-write....]
* - added write-message (unbound) command to write out a message
* on the message line (for macros)
* - changed ifdef's so that color modes are recognized as legal in
* b/w version, and simply do nothing (allowing us to use the same
* script files)
* [Released version 3.7 on July 1 to the net and elswhere]
* 2-jul-86
* - Changed search string terminator to always be the meta character
* even if it is rebound.
* 3-jul-86
* - removed extra calls to set color in startup code. This caused the
* original current window to always be the global colors.
* 7-jul-86
* - Fixed bugs in mltreply() to work properly with all terminators
* including control and spec characters
* 22-jul-86
* - fixed replaces() so that it will return FALSE properly on the
* input of the replacement string.
* - added a definition for FAILED as a return type.....
* - changed version number to 3.7b
* 23-jul-86
* - fixed o -> 0 problem in TERMIO.C
* - made ^U universal-argument re-bindable
* - wrote asc_int() for systems (like Aztec) where it acts strangely
* - changed version number to 3.7c
* 25-jul-86
* - make ^G abort-command rebindable
* 29-jul-86
* - added HP110 Portable Computer support
* - changed version number to 3.7d
* 30-jul-86
* - Fixed a couple of errors in the new VMS code as pointer
* out by Ken Shackleford
* - split terminal open/close routines into screen and keyboard
* open/close routines
* - closed the keyboard during all disk I/O so that OS errors
* can be respoded to correctly (especially on the HP150)
* - changed version number to 3.7e
* 31-jul-86
* - added label-function-key (unbound) command under symbol FLABEL
* (primarily for the HP150)
* 4-aug-86
* - added fixes for Microsoft C as suggested by ihnp4!ihuxm!gmd1
* <<remember to fix [list] deletion bug as reported
* by craig@hp-pcd>>
* 8-aug-86
* - fixed beginning misspelling error everywhere
* - fixed some more MSC errors
* - changed version number to 3.7g
* ?-aug-86 John M. Gamble:
* - Made forward and reverse search use the same scan routine.
* - Added a limited number of regular expressions - 'any',
* 'character class', 'closure', 'beginning of line', and
* 'end of line'.
* - Replacement metacharacters will have to wait for a re-write of
* the replaces function, and a new variation of ldelete().
* - (For those curious as to my references, i made use of
* Kernighan & Plauger's "Software Tools."
* I deliberately did not look at any published grep or editor
* source (aside from this one) for inspiration. I did make use of
* Allen Hollub's bitmap routines as published in Doctor Dobb's Journal,
* June, 1985 and modified them for the limited needs of character class
* matching. Any inefficiences, bugs, stupid coding examples, etc.,
* are therefore my own responsibility.)
* 20-aug-86 Daniel Lawrence
* - fixed CMODE .h scanning bug
* - changed version number to 3.7h
* 30-aug-86
* - fixed killing renamed [list] buffer (it can't) as submitted
* by James Aldridge
* - Added code to allow multiple lines to display during
* vertical retrace
* [total disaster....yanked it back out]
* 9-sep-86
* - added M-A (apropos) command to list commands containing a substring.
* - fixed an inefficiency in the display update code submitted
* by William W. Carlson (wwc@pur-ee)
* 10-sep-86
* - added Dana Hoggatt's code for encryption and spliced it into the
* proper commands. CRYPT mode now triggers encryption.
* - added -k flag to allow encryption key (no spaces) in command line
* 14-sep-86
* - added missing lastflag/thisflag processing to docmd()
* - changed version to 3.7i and froze for partial release via mail
* and BBS
* 05-oct-86
* - changed some strcpys in MAIN.C to bytecopys as suggested by John
* Gamble
* - replaces SEARCH.C and ISEARCH.C with versions modified by
* John Gamble
* 10-oct-86
* - removed references to lflick....it just won't work that way.
* - removed defines LAT2 and LAT3...the code no longer is Lattice
* version dependant.
* 14-oct-86
* - changed spawn so that it will not not pause if executed from
* a command line
* 15-oct-86
* - added argument concatination (+) to the macro parsing
* - added [] as fence pairs
* 16-oct-86
* - rewrote all macro line parsing routines and rearranged the
* mlreply code. Saved 6K!!! Have blazed the path for expanding
* the command language.
* 17-oct-86
* - added new keyboard macro routines (plus a new level to the
* input character function)
* 22-oct-86
* - improved EGA cursor problems
* - added -r (restricted) switch to command line for BBS use
* 06-nov-86
* - fixed terminator declarations from char to int in getarg() and
* nxtarg() in EXEC.C as pointed out by John Gamble
* 07-nov-86
* - made wordrap() user callable as wrap-word (M-FNW) and changed
* the getckey() routine so that illegal keystrokes (too many
* prefixes set) could be used for internal bindings. When word
* wrap conditions are met, the keystroke M-FNW is executed. Added
* word wrap check/call to newline().
* 11-nov-86
* - added and checked support for Mark Williams C 86
* 12-nov-86
* - added goto-matching-fence (M-^F) command to jump to a matching
* fence "({[]})" or beep if there is none. This can reframe the
* screen.
* - added code and structure elements to support change-screen-size
* command (M-^S) to change the number of lines being used by
* MicroEMACS.
* 15-nov-86
* - finished debugging change-screen-size
* 17-nov-86
* - Incorporated in James Turner's modifications for the Atari ST
* 23-sep-86
* - added support for the Atari ST line of computers (jmt)
* - added a '\r' to the end of each line on output and strip
* it on input for the SHOW function from the desktop
* - added 3 new mode functions (HIREZ, MEDREZ, and LOREZ);
* chgrez routine in TERM structure; and MULTREZ define in
* ESTRUCT.H to handle multiple screen resolutions
* [note....ST still not running under Lattice yet...]
* 25-nov-86
* - Made the filter-buffer (^X-#) command not work on VIEW mode
* buffers
* - Made the quick-exit (M-Z) command throw out a newline after
* each message so they could be seen.
* 26-nov-86
* - fixed a couple of bugs in change-screen-size (M-^S) command
* - changed file read behavior on long lines and last lines
* with no newline (it no longer throws the partial line out)
* - [as suggested by Dave Tweten] Made adding a ^Z to the end
* of an output file under MSDOS configurable under the
* CTRL-Z symbol in ESTRUCT.H
* - [Dave Tweten] Spawn will look up the "TMP" environment variable
* for use during various pipeing commands.
* - [Dave Tweten] changed pipe command under MSDOS to use '>>'
* instead of '>'
* 04-dec-86
* - moved processing of '@' and '#' so that they can be outside
* the quotes in an argument, and added hooks to process '%' for
* environment and user variables.
* - modified IBMPC.C to sense the graphics adapter (CGA and MONO)
* at runtime to cut down on the number of versions.
* 05-dec-86
* - changed macro directive character to "!" instead of "$" (see
* below) and fixed the standard .rc file to comply.
* - added code to interpret environment variables ($vars). Added
* hooks for built in functions (&func). So, to recap:
*
* @<string> prompt and return a string from the user
* #<buffer name> get the next line from a buffer and advance
* %<var> get user variable <var>
* $<evar> get environment variable <evar>
* &<func> evaluate function <func>
*
* - allowed repeat counts to be any of the above
* - added code to allow insert-string (unbound) to use its
* repeat count properly
* - added set (^X-A) command to set variables. Only works on
* environmental vars yet.
* 9-dec-86
* - added some code for user defined variables...more to come
* - added options for malloc() memory pool tracking
* - preliminary user variables (%) working
* - changed terminal calls to macro's (to prepare for the new
* terminal drivers)
* 15-dec-86
* - changed previous-line (^P) and next-line (^N) to return a
* FALSE at the end or beginning of the file so repeated
* macros involving them terminate properly!
* - added code for $CURCOL and $CURLINE
* 20-dec-86
* - set (^X-A) now works with all vars
* - added some new functions
* &ADD &SUB &TIMES &DIV &MOD &NEG &CAT
* - once again rearranged functions to control macro execution. Did
* away with getarg()
* 23-dec-86
* - added string functions
* &LEFt &RIGht &MID
* 31-dec-86
* - added many logical functions
* &NOT &EQUal &LESs &GREater
* - added string functions
* &SEQual &SLEss &SGReater
* - added variable indirection with &INDirect
* - made fixes to allow recursive macro executions
* (improved speed during macro execution as well)
* 3-jan-87
* - added $FLICKER to control flicker supression
* - made spawn commands restricted
* - cleaned up lots of unintentional int<->char problems
* 4-jan-87
* - Fixed broken pipe-command (^X-@) command under MSDOS
* - added !IF !ELSE !ENDIF directives and changed the
* name of !END to !ENDM....real slick stuff
* 5-jan-87
* - quick-exit (M-Z) aborts on any filewrite errors
* 8-jan-87
* - debugged a lot of the new directive and evaluation code.
* BEWARE of stack space overflows! (increasing stack to
* 16K under MSDOS)
* - removed non-standard DEC Rainbow keyboard support...let someone
* PLEASE implement this in the standard manner using key bindings
* and send the results to me.
* - added change-screen-width () command and $CURWIDTH variable
* 11-jan-87
* - fixed an incredibly deeply buried bug in vtputc and combined
* it with vtpute (saving about 200 bytes!)
* 16-jan-87
* - added code to handle controlling multiple screen resolutions...
* allowed the IBM-PC driver to force Mono or CGA modes.
* - added current buffer name and filename variables
* $cbufname and $cfname
* 18-jan-87
* - added $sres variable to control screen resolution
* - added $debug variable to control macro debugging code (no longer
* is this activated by GLOBAL spell mode)
* - fixed bug in -g command line option
* - Released Version 3.8 to BBSNET
* 21-jan-87
* - added $status variable to record return status of last command
* 2-feb-87
* - added ATARI 1040 support...runs in all three modes right now
* - added $palette var with palette value in it
* - undefined "register" in BIND.C and INPUT.C for ST520 & LATTICE
* to get around a nasty Lattice bug
* 4-feb-87
* - added, debugged code for switching all 1040ST color modes, added
* code for HIGH monochrome mode as well, DENSE still pending
* 5-feb-87
* - with John Gamble, found and corrected the infamous bad matching
* fence problems.
* - added error return check in various add/delete mode commands
* 10-feb-87
* - re-arrange code in docmd() so that labels are stored in
* macro buffers
* - fixed !RETURN to only return if (execlevel == 0) [If we are
* currently executing]
* 14-feb-87
* - added to outp() calls in the EGA driver to fix a bug in the BIOS
* - adding code for 1040ST 40 line DENSE mode (not complete)
* 25-feb-87
* - added auto-save "ASAVE" mode....variables $asave and $acount
* control the frequency of saving and count until next save
* - added &and and &or as functions for logical anding and oring
* - added string length &LEN, upper and lower case string funtions
* &LOWER and &UPPER
* 27-feb-87
* - added $lastkey last keystroke struck and
* $curchar character under cursor
* 28-feb-87
* - added code for trim-line (^X^T) command and table entries
* for the entab-line (^X^E) and detab-line (^X^D) commands.
* These are conditional on AEDIT (Advanced editing) in estruct.h
* 18-mar-87
* - finished above three commands
* - added $version environment variable to return the current
* MicroEMACS version number
* - added $discmd emvironment variable. This is a logical flag that
* indicates if emacs should be echoing commands on the command line.
* real useful in order to stop flashing macros and .rc files
* - added $progname environment variable. this always returns the
* string "MicroEMACS". OEM's should change this so that macros can
* tell if they are running on an unmodified emacs or not.
* - fixed a minor bug in the CGA/MONO detection routine in IBMPC.C
* 20-mar-87
* - integrated EGAPC.C into IBMPC.C and eliminated the file. Now an
* EGA user can switch from EGA to CGA modes at will
* - A LOT of little fixes and corrections sent in by John Ruply
* 25-mar-87
* - Fixed buffer variables so they will work when referencing the
* current buffer
* 26-mar-87
* - Fixed asc_int() to be more reasonable. trailing whitespace ignored,
* only one leading sign, no non-digits allowed after the sign.
* - fixed buffer variables to go from the point to the end of
* line.
* 28-mar-87
* - fixed bugs with 8 bit chars as submited by Jari Salminen
* - replace AZTEC/MSDOS agetc() with a1getc() which won't strip
* the high order bit
* 30-mar-87
* - changed list-buffers (^X^B) so that with any argument, it will
* also list the normally invisable buffers
* - added store-procedure and execute-procedure/run (M-^E)
* commands to store and execute named procedures.
* 31-mar-87
* - Fixed infinite loop in ^X-X command (when [LIST] is the
* only buffer left) as pointed out by John Maline
* - made filenames in getfile() always lower case as pointed
* out by John Maline
* 2-apr-87
* - Fixed buffer variables so they would work on non-current displayed
* buffers. They should now work with ALL buffers....
* 3-apr-87
* - Yanked AZTEC profiling code....not very useful
* - Modified IBMPC driver so it will not start in EGA mode
* - allow the next-buffer (^X-X) command to have a preceding
* non-negative argument.
* 14-april-87: John M. Gamble
* - Deleted the "if (n == 0) n = 1;" statements in front of the
* search/hunt routines. Since we now use a do loop, these
* checks are unnecessary. Consolidated common code into the
* function delins(). Renamed global mclen matchlen,
* and added the globals matchline, matchoff, patmatch, and
* mlenold.
* This gave us the ability to unreplace regular expression searches,
* and to put the matched string into an evironment variable.
* SOON TO COME: Meta-replacement characters!
* 14-apr-87 Daniel Lawrence
* - added John Gamble's modified search.c. The code has cut apx
* 200-300 bytes off the executable.
* - added the &RND function to generate a random integer between
* 1 and its arguments value. Also $SEED is availible as the
* random number seed.
* - changed the -k command line switch so if there is no argument,
* it will prompt for one when the file is read
* 15-apr-87
* - added 20 bytes of buffer in getval()'s local argument alloc so
* when it returns a value, it has enough stack space to do at least
* one strcpy() before stomping on the returned value. ALWAYS call
* getval() ONLY from within a strcpy() call.
* - made $curcol return a 1 based value instead of a zero based one.
* [changed this back later for 3.8o it was simply wrong.....]
* 16-apr-87
* - re-wrote bytecopy() for AZTEC & MSDOS so it null terminates the
* string.
* - changed pipe() to pipecmd() to avoid conflicts with various
* UNIX systems
* 24-apr-87
* - changed open parameters on AMIGA window open to 0/0/640/200
* 25-apr-87 DML
* - cleaned up an unneccessary if/else in forwsearch() and
* backsearch()
* - savematch() failed to malloc room for the terminating byte
* of the match string (stomp...stomp...). It does now. Also
* it now returns gracefully if malloc fails
* [Froze and released v3.8i via BBS net]
* 14-may-87
* - added nop (M-FNC) that gets called on every command loop
* - added $wline, returns and sets # lines in current window
* - added $cwline, returns and set current line within window
* - added $target, returns/sets target for line moves
* - added $search, returns/sets default search string
* - added $replace, returns/sets default replace string
* - added $match, returns last matched string in magic search
* 29-may-87
* - rewrote word deletes to not kill trailing non-whitespace after
* the last word. Also a zero argument will cause it to just delete
* the word and nothing else.
* - more fixes for the search pattern environment variables
* 30-may-87
* - forced all windows to redraw on a width change
* 2-jun-87
* - forced clear-message-line to overide $discmd
* - added mlforce() routine and call it in clear-message-line,
* write-message and when $debug is TRUE
* - recoded the startup sequence in main()....Much Better...
* 4-jun-87
* - forced interactive arguments ( @"question" ) to ALWAYS be echoed
* regardless of the setting of $discmd.
* 7-jun-87
* - started adding support for Turbo C under MSDOS
* 11-jun-87
* - words now include ONLY upper/lower case alphas and digits
* - fixed some more bugs with the startup..(ORed in the global modes)
* - took more limits off the self-insert list....
* 16-jun-87
* - macro debugging now displays the name of the current macro.
* - fixed a problem in expandp() in search.c that kept high-byte
* characters from working in search strings
* 18-jun-87
* - added &sindex <str1> <str2> function which searches for string 2
* within string 1
* [released verion 3.8o internally]
* 19-jun-87
* - added $cmode and $gmode to return and set the mode of the
* current buffer and the global mode
* - separated findvar() out from setvar() so it could be used in
* the !LOOP directive (which got canned....read on)
* - %No such variable message now types the name of the offending
* variable
* 22-jun-87
* - fixed startup bug when editing the startup file
* - added the !LOOP <var> <label> directive
* 26-jun-87
* - dumped !LOOP......added !WHILE. This needed and caused a vaste
* reorginization in exec.c which mainly involved moving all the
* directive handling from docmd() to dobuf(), in the process
* getting rid of a lot of junk and making the result smaller
* than it started.....(yea!)
* - added $tpause to control the fence flashing time in CMODE.
* The value is machine dependant, but you can multiply the
* original in macros to stay machine independant. (as
* suggested by Baron O.A. Grey)
* - added hook to execute M-FNR (null) during a file read, after
* the name is set and right before the file is read. Took out
* any auto-CMODE code, as this is now handled with a macro.
* (also suggested by Baron O.A. Grey)
* - Added Baron O.A. Grey's SYSTEM V typeahead() code...I hope
* this works....if you check this out, drop me a line.
* - Added new variable $pending, returns a logical telling if
* a typed ahead character is pending.
* 29-jun-87
* - Made adjustmode() use curbp-> instead of curwp->w_bufp-> which
* fixed some bugs in the startup routines.
* - added $lwidth to return the length of the current line
* 2-jul-87
* - Added &env <str> which returns the value of the environment
* variable <str> where possible
* - Fixed a NASTY bug in execbuf()..the buffer for the name
* of the buffer to execute was NBUFN long, and got overflowed
* with a long interactive argument.
* 3-jul-87
* - Moved the loop to match a key against its binding out of execute()
* to getbind() so it could be used later elsewhere.
* - Added &bind <keyname> which returns the function bound to the
* named key
* - changed execute-file to look in the executable path first...
* 6-jul-87
* - changed $curchar to return a newline at the end of a line and
* it no longer advances the cursor
* - a lot of minor changes sent by various people....
* 7-jul-87
* - some amiga specific fixes as suggested by Kenn Barry
* - added $line [read/write] that contains the current line in the
* current buffer
* - changed $curcol so setting it beyond the end of the line will
* move the cursor to the end of the line and then fail.
* 10-jul-87
* - added a number of fixes and optimizations along with the rest
* of the TURBO-C support as submited by John Maline
* 13-jun-87
* - caused dobuf() to copy lastflag to thisflag so the first
* command executed will inherit the lastflag from the command
* before the execute-buffer command. (needed this for smooth
* scrolling to work)
* - made flook() look first in the $HOME directory, then in the
* current directory, then down the $PATH, and then in the
* list in epath.h
* 14-jul-87
* - added some fixes for VMS along with support for the SMG
* screen package as submited by Curtis Smith
* 15-jul-87
* - fixed M-^H (delete-previous-word) so it can delete the first
* word in a file....I think there may be more of this kind of thing
* to fix.
* 16-jul-87
* - added code to allow arbitrary sized lines to be read from files..
* speed up file reading in the process.
* - made out of memory conditions safer.. especial on file reads
* - fixed a bug in bind having to do with uppercasing function
* key names (submitted by Jari Salminen)
* - made ST520 exit in the same resolution that EMACS was started in
* (for the 1040ST)
* 20-jul-87: John M. Gamble
* - Set the variables matchlen and matchoff in the 'unreplace'
* section of replaces(). The function savematch() would
* get confused if you replaced, unreplaced, then replaced
* again (serves you right for being so wishy-washy...)
* [FROZE development and released version 3.9 to USENET]
* {It never made it.....got killed by comp.unix.sources}
* 12-aug-87: John M. Gamble
* - Put new function rmcstr() in SEARCH.C to create the replacement
* meta-character array. Modified delins() so that it knows
* whether or not to make use of the array. And, put in the
* appropriate new structures and variables.
* 15-sep-87
* - added support for Mark Williams C on the Atari ST
* - made the MALLOC debugging package only conditional on RAMSIZE
* - added code for flagging truncated buffers
* 23-sep-87
* - fixed &RIGHT to return the <arg2> rightmost characters
* - fixed a buffer in getval() to be static....things are stabler
* now.
* - moved all the stack size declarations to after include "estruct.h"
* they work a lot better now....... (rather than not at all)
* - made Atari ST spawns all work with MWshell
* - fixed spawning on the 1040ST under MWC
* 27-sep-87
* - added &exist function to check to see if a named file exist
* - added &find function to find a file along the PATH
* - added -A switch to run "error.cmd" from command line
* - added $gflags to control startup behavior....
* 03-oct-87
* - changed ":c\" to "c:" in epath.h for the AMIGA as suggested
* by Tom Edds
* - added binary and, or, and xor functions as submited by John Maline
* (&band &bor and &bxor)
* - added binary not (&bnot) function
* - added fixes for gotoline() and nextarg() as submited by David
* Dermott
* - fixed return value of $curwidth as submitted by David Dermott
* - fixed several calls to ldelete() to have a long first argument
* (pointed out by David Dermott)
* - Fixed a bug in stock() which prevented uppercase FN bindings as
* pointed out by many people
* - changed dofile() to make sure all executed files don't conflict
* with existing buffer names. Took out cludged code in main.c to
* handle this problem... this solution is better (suggested by
* Don Nash)
* 05-oct-87
* - added in John Gamble's code to allow for a replacement regular
* expresion character in MAGIC mode
* [note: under MSDOS we are still TOO BIG!!!!]
* - added overwrite-string as a new user callable function, and
* lowrite(c) as an internal function for overwriting characters
* - added &xlate function to translate strings according to a
* translation table
* 10-oct-87
* - added code to allow emacs to clean its own buffers on exit.
* useful if emacs is used as a subprogram. Conditional on
* the CLEAN definition in estruct.h
* 14-oct-87
* - swallowed very hard and switched to LARGE code/LARGE data model
* - packaged and released version 3.9c internally
* (MSDOS executables compiled with TURBO C Large model)
* 16-oct-87
* - temporary fix for FUNCTION keys now includes the Meta-O sequence
* if VT100 is definined (submited by Jeff Lomicka)
* - an VT100 also triggers input.c to force ESC to always
* be interpeted as META as well as the currently bound key
* - fixed a bug in the VMSVT driver as pointed out by Dave Dermott
* - added a size parameter to token() to eliminate problems with
* long variable names. (as sugested by Ray Wallace)
* 18-oct-87
* - fixed a bug in the free ram code that did not clear the buffer
* flag causing emacs to ask for more confirnmations on the way out.
* 19-oct-87
* - added ^X-$ execute-program call to directly execute a program
* without going through a shell... not all environments have this
* code completed yet (uses shell-command where not)
* [Froze for 3.9d release internally]
* 28-oct-87
* - added code for Atari ST DENSE mode and new bell as submited
* by J. C. Benoist
* - made extra CR for ST files conditional on ADDCR. This is only
* needed to make the desktop happy...and is painful for porting
* files (with 2 CR's) elsewhere (Also from J. C. Benoist)
* - added optional more intellegent (and larger) close brace
* insertion code (also from J. C. Benoist)
* 4-nov-87
* - fixed AZTEC spawning... all MSDOS spawns should work now
* - a META key while debugging will turn $debug to false
* and continue execution.
* [Froze for version 3.9e USENET release]
* 4-nov-87 Geoff Gibbs
* - Fast search using simplified version of Boyer and Moore
* Software-Practice and Experience, vol 10, 501-506 (1980).
* Mods to scanner() and readpattern(), and added fbound() and
* setjtable(). Scanner() should be callable as before, provided
* setjtable() has been called first.
* 13-dec-87
* - added a change to the system V termio.c code to solve a keyboard
* polling problem, as submited by Karl Lehenbauer
* - removed a "static" from the mod95() function declaration
* in crypt.c to make MSC happy (by Malcolm MacNiven)
* - added code so the new exec routines in spawn.c are working
* under MSC (By Malcolm MacNiven)
* - fixed the mixed space/tab entabbing bug as suggested
* by Michal Jaegermann
* - added the missing brace in the VT100 code in getcmd()
* (This one was submited by many different people)
* - added more intelligent spawning for TURBO C as submitted
* by Bob Montante
* - added support for the WICAT computers running under the WMCS
* operating system as submitted by Bruce Hunsaker
* 16-dec-87
* - re-wrote fillpara(). Its 4 times Faster!!!
* - moved M-FNR binding to $readfile ie to make emacs execute
* a macro when reading files:
* set $readhook "nop" ;or whetever
* 18-dec-1987: John M. Gamble
* - Made replaces() beep at you and stop if an empty string is
* replaced. This is possible in MAGIC mode, if you pick your
* pattern incorrectly.
* - Fixed a subtle bug in the new Boyer-Moore routines, which caused
* searches to fail occasionally.
* 19-dec-87
* - new search algorithm from Geoff Gibbs, cleaned up by John Gamble.
* its over 30 TIMES FASTER!!!! using a simplified Boyer and Moore
* pattern search. This effects all the but MAGIC search commands.
* 22-dec-87
* - narrow-to-region (^X-<) and widen-from-region (^X->) allow you
* to make all but a region invisable, thus all global commands
* can act on a single region.
* - a numeric argument on the select-buffer (^X-b) command makes
* that buffer become "invisable"
* - M-FNC becomes $cmdhook
* M-FNW becomes $wraphook
* 23-dec-87
* - made unmark-buffer (M-~) update the mode lines of all windows
* pointing into the unmarked buffer
* 28-dec-87
* - added new prefix MOUS (coded as MS-) for dealing with mice
* 29-dec-87
* - vastly reorginized machine dependant code. Put termio.c and
* spawn.c together and then pulled out msdos.c, unix.c, wmcs.c,
* atari.c, amigados.c, and vms.c. These are the operating specific
* source files now.
* 30-dec-87
* - cleaned up msdos.c. Got rid of two unused spawn functions for
* LATTICE. Also removed attempt to lookup SHELL variable to
* find the command processer. This is definatly not applicable
* here as COMSPEC should always be the name of the reloaded
* command processor.
* 20-jan-87
* - added Jeff Lomicka's ST mouse support and added some
* appropriate code to input.c to support this.
* - added buffer name completion to the select-buffer (^X-B)
* command as submitted by Martin Neitzel.
* - changed some function names:
* abs => absv
* atoi => asc_int
* ltoi => long_int
* setmode => setmod
* strncpy => bytecopy
* 25-jan-88 By Jeff Lomicka
* - Added parsing of keypad keys, LK201 function key sequences, mouse
* sequences (VaxStation form and BBN BitGraph form), and the cursor
* position report to VMSVT.C. This will require a change in the way
* that VMS users bind functions to their function keys or keypad
* keys. This also defines a defacto-standard for the names of the
* numeric keypad keys, based on the VT100 and compatible terminals.
* - Added MOUSE.C to DESCRIP.MMS, and changed it to reference ME.OPT,
* and to generate ME.EXE.
* - Renamed MICROEMACS.OPT to ME.OPT so that the filename would fit
* on smaller systems.
* - Added capability for copy and paste from the terminal-wide
* copy/paste buffer. This allows copy and paste of the select region
* from and to non-cooperating sessions in other windows. (The
* addition of the MOUSE handling routines disables the transparent
* use of the VWS copy/paste mechanism.) There may be a bug in the
* PASTE section of this code. On some VWS systems, you may get a
* bunch of Hex characters instead of text. I'm looking in to finding
* out what is really supported in the released versions of VWS. This
* code is conditional based on MOUSE & VMSVT. Code was added to
* VMSVT.C. Added bindings for to ebind.h. Yank is on ^X^Y. Copy is
* on ^XC. If MOUSE & VMSVT is true, this binding overides the use of
* ^XC for spanwcli. [This won't stay.. alternative binding?]
* Also added definitions for this to efunc.h.
* - Added #define of CPM to estruct.h. It is used in FILE.C. You
* might want to delete it again. [It was deleted..no CPM support]
* - Added noshare attributes to all data in many modules.
* - Re-introudced XONDATA condition that was in 3.9eJ's TERMIO.C into
* VMS.C. (This was overlooked by Dan in making 3.9g.)
* - Appended a ":" to the "MICROEMACS$LIB:" path element in the VMS
* portion of EPATH.H.
* - Fixed mouse reports from VMSVT.C to correspond to the code in 3.9g.
* - In INPUT.C, added VMS to list of systems that generate FN key and
* mouse reports with leading 0 bytes.
* - In order to accomodate callable editor support, I had to arrange
* so that some of the CALLED features are active all of the time,
* particularly EXIT HANDLING. I changed all calls to exit() into
* calls to meexit(). There is a great need to divide up exits
* between error exits that aren't expected to return, and exits that
* just set the exit flag. Places that didn't expect exit to return
* should be changed to return immediately after calling exit, so that
* the command loop can catch it and return. This error handling
* business is a real mess right now.
* - Re-arranged main() so that most of the guts are in called
* routines, so that there can be more than one entry point into the
* program. Note, now, the possiblity of adding recursive-edit as a
* function that you can call from a macro.
* - Added the universal symbol ME$EDIT to the VMS version as a second
* entry point, for use when called by MAIL and NOTES, which use
* LIB$FIND_IMAGE_SYMBOL and perform run-time linking with their text
* editor. This stuff works great!
* - Changed Atari-ST makefile to link without -VGEM, so that you will
* get argc and argv.
* - Fixed ST520.C so that screen would be redrawn when we notice that
* desk accessories exit, and so that the mouse will be turned off
* when exiting into a shell (If text cursor was on, mouse is left
* off).
* - Changed ST520.C to have bindings for keypad keys, with PF1 "("
* key as metac, so that it can be used as GOLD prefix. Uses GOLDKEY
* option in ESTRUCT.H.
* 26-jan-88 Daniel Lawrence...
* - cleaned up coding in main.c
* - changed more function names
* itoa => int_asc
* ltoa => long_asc
* 27-jan-88
* - added terminal initilizer string output to tcap.c as submitted
* by Ge' Wiejers
* - switched the -A command line switch to be -E the way MWC demands
* that it be. Also had to move -E to -C (for Change...)
* 02-feb-88
* - changed META and ^X prefixes to use a new mechinism. Hitting
* a prefix stores it as a pending prefix.
* 05-feb-88
* - changed emacs to use ^M for line terminators instead of
* ^J. This required LOTS of changes. Now, however, we can
* search for and manipulate ^M.
* - fixed getcmd() to work again so that describe-key and
* interactive binding functions work again.
* - added $sterm environmental variable. This hold the current
* value of the keystroke needed to terminate search string
* requests. The value in here is also automatically reset
* any time the meta-prefix is rebound, the the meta-prefix's value
* 06-feb-88
* - fixed bug in stock().. real control characters in command lines
* now bind properly
* [BBS release of version 3.9i]
* 23-feb-88
* - added buffer name completion to delete-buffer (^XK) and reorginized
* code their to gain back 1 K
* - added $modeflag to allow us to hide the modelines.
* - added $sscroll to allow smooth scrolling... (I don't like this
* but there were too many requests for it).
* - added $lastmesg to hold last message EMACS wrote out
* 04-mar-88
* - added Alan Phillip's mods to support the VGA adapter on the
* IBM PS/2 machines. Modified it a little.
* 15-mar-88
* - Forever twiddling with the startup code, I moved the initialization
* of exitflag to main() to allow a startup file to exit EMACS
* properly. Also had to make meexit always return(TRUE) regardless
* of the exitstatus. (Ie it always works and doesn't abort the macro)
* 17-mar-88
* - added code to change hard tab size with $tabsize variable
* - added binary search to fncmatch()
* 28-mar-88
* - optimized the IBMPC version in TURBO C by supplying mixed memory
* mode information (NEAR and PASCAL). The executable is down to
* 89K..but remember to name the code segment (from the options menu)
* 1-apr-88
* - added remove-mark (^X<space>) to allow you to unset the mark
* in the current window.
* 8-apr-88
* - Lots of twiddling with the mixed memory model TURBOC IBM-PC
* version... its 87K long now and fairly stable
* - changed behavior of CMODE when inserting blank lines
* - tightened stack usage from 32K to 20K
* 9-apr-88
* - added new cinsert(). blank lines no longer confuse the CMODE
* indentation. Trailing white space is deleted when newline is
* hit in CMODE.
* 12-apr-88
* - fixed long standing bug in query-replace-string. When the line the
* point originally starts on is extended (thus re-malloced) a '.',
* aborting the replace and returning to the original replace had
* locked things up. no more.
* 07-may-88
* - fixed bug in narrow() ... it works everywhere now.
* [BBS release of 3.9n]
* 3-june-88
* - removed restriction against deleting invisable buffers
* - a lot of little fixes suggested by Dave Tweten
* 10-jun-88
* - added "safe save"ing as coded by Suresh Konda.
* (when writing a file to disk, it writes it to a temporary file,
* deletes the original and renames the temp file)
* - added $ssave flag to enable or disable safe file saving
* 12-jun-88
* - added automatic horizontal window scrolling. $hscroll (default
* is TRUE) controls if it is enabled. $fcol is the current first
* column of window in screen column one. $hjump determines the
* number of columns scrolled at a time.
* - changed version number to 3.9o
* 22-jun-88
* - made binary searches start from 0 instead of one... EMACS can
* find the first of many lists again.
* - more debugging things. Added the dump-variable command which
* creates a buffer (like list-buffers does) with all the environment
* and user variables and their values. Also the display (^XG)
* command prompts and lists the value of a variable. These are
* both conditional on the DEBUGM symbol in estruct.h
* 1-jul-88
* - fixed a bug in showcpos() which did not report the proper value
* for the current character when issued at the end of the file
* [Released internally as 3.9p]
* 3-aug-88
* - changed keyname in stock() in bind.c to unsigned char for
* compilers that don't default. This allows more arbitrary
* rebinding. (submitor: David Sears)
* 12-aug-88
* - changed wrap-word to force $fcol to 0
* - changed fill-paragraph (M-Q) to force $fcol to 0
* - added -i command line switch to initialize a variable's value
* for example: emacs -i$sres VGA
* 26-aug-88
* - changed code in updateline() in display.c to remove reliance
* on well behaved pointer subtraction (submitted by Kenneth Sloan)
* - fixed potential bug in fileio.c in ffgetline()
* (submitted by John Owens)
* 6-sep-88
* - &right and &mid now check their arguments so the bytecopy can not
* start past the end of the string.
* - added $writehook to execute macroes when writing files
* - added $exbhook to execute macro when exiting an old buffer
* - added $bufhook to execute macro when entering a new buffer
* 14-sep-88
* - asc_int() now ignores trailing non-digits
* 15-sep-88
* - added &trim function to trim whitespace off a variable
* - changed message "Out of memory while inserting string" to
* "Can not insert string" as this error can result when the
* current buffer is in VIEW mode as well.
* - made trim-line, entab-line, and detab-line work on the
* current region if they have no arguments. Also added alias
* trim-region, entab-region and detab-region. The old names
* will hang about for a version, then dissapear. I like the
* new functionality much better.
* 25-sep-88
* - Inserted the macros isletter(), isuppper(), islower(), and
* CHCASE() whereever appropriate, replacing explicit character
* comparisons. When DIACRIT is set to one, they become functions
* and know about the extended ascii character set. Functions right
* now are in for MSDOS.C - other machines to follow. From J. Gamble.
* 26-sep-88
* - moved all text constants out to a language specific header file
* and left an english version of the constant in a remark at its
* occurence.
* - added $language to return the language of the current version
* - added elang.h to call the proper language specific module
* 2-oct-88
* - removed DIACRIT conditional. Its there all the time now. Ripped
* the old code, and replaced it with a upcase[] and lowcase[]
* table. Functions to manipulate it are now in new source file
* char.c and can be made conditional on system and language.
* Added table for extended MSDOS modeled after John Gamble's
* code.
* 5-oct-88
* - got rid of CHCASE()..[except in the MAGIC mode search code]
* I ALWAYS force to upper or lower, and never simply swap. They
* are now uppercase() and lowercase() in the new char.c source file.
* 7-oct-88
* - added all the needed code to use TERMCAP on UNIX to interpret
* function and cursor keys. A rather slimy trick involving
* the key timing is used, and this makes keyboard macroes
* a little dicy....
* - added the DIACRIT compilation flag back for people who
* want more speed in MAGIC mode.
* 10-oct-88
* - as suggested by Michael Andrews, when the current buffer is
* in view mode, don't preallocate expansion room in new lines.
* (ie we aren't editing them anyway!)
* - added Microsoft Mouse drive... went very well. It all appears
* to work, just like the Atari ST mouse driver.
* 11-oct-88
* - recieved and tested german.h header file from Martin Neitzel
* (unido!sigserv!neitzel@uunet.uu.net)
* 15-oct-88
* - recieved and tested dutch.h header file from Paul De Bra
* (debra@research.att.com)
* - fixed a lot of mouse movement problems. Dragging a mode line
* sideways horizontally scrolls a it's window. Fixed positioning
* problems with scrolled and extended lines.
* - added $msflag to turn the mouse off
* - added $diagflag. When set to FALSE, no diagonal movement is
* possible. Vertical movement has precidence, but an explicit
* horizontal drag still works.
* - grabbing and dragging the last char of the command line allows
* you to resize the editing screen. This should be tied into
* various windowing systems later.
* - write mouse-region-(down/up). See the emacs reference docs on the
* exact behavior of these.
* - deleted the old mouse-(kill/yank)-(up/down). They are
* redundant now, and don't work as well as mouse-region-*.
* 2-nov-88 [changes submitted by Allen Pratt from ATARI]
* - created DIRSEPSTR and DIRSEPCHAR definitions for directory seperators
* - added TTflush in bindtokey() to force space out to terminal after
* binding name.
* - fixed a pointer casting problem in display.c involving pointer subtraction
* - removed the cursormove() from the beginning of mlwrite() so
* the cursor need not jump to the command line if the fisplay
* is disabled by setting $discmd to FALSE.
* - added >c to get a emacs command sequence and return it as
* a bindable string
* - changed scrnextup -> nextup, scrnextdn -> nextdown, and
* mlreplyt -> mltreply to make short symbol compilers happy.
* - added "print" as a synonim to "write-message".
* - added "source" as a synonim to "execute-file".
* - added a M-^X binding to the execute-command-line command
* 4-nov-88
* - changed $tabsize to $hardtab. Added $softab as the current
* softtab size (previously only changable by the ^I (handle-tab)
* command.
* - fixed various problems in reglines() and made ^X^D (detab-region)
* and ^X^E (entab-region) use the current hard tab setting.
* - execute-command-line (M-^X) when executed within a macro line
* (which sounds redundent) will force all of the arguments of
* the executed command to be taken interactivly. I needed this
* for the new macro to allow mouse functionality on the
* function key window.
* - taking Michael Andrew's suggestion to its conclusion, we no longer
* allocate any extra space except when inserting. This has
* substantially decreased the memory usage. Note that when
* we must explicitly set l_used to the proper amount since lalloc()
* is not responcible for the rounding up.
* - arranged to allow getstring() to return a NULL result. Aborting
* out of an interactive prompt now will properly terminate a macro.
* [Released the 3.10 BETA test version...yes the ATARI version is broke]
* 24-nov-88
* - fixed system V input char HOG problems as submitted by
* Kjartan R. Gudmundsson. Also eliminated some other 7 bit filters
* in unix.c at the same time.
* - reading function keys into table has been fixed in TCAP.C. It will
* no longer attempt to strcpy NULL pointers.
* 1-dec-88
* - multiple marks are now implemented. (What a task...). Set-mark
* (M-<space>), remove-mark (^X<space>) and exchange-point-and-mark
* (^X^X) all take a numeric argument from 0 to NMARKS-1 (9 now).
* 2-dec-88
* - added goto-mark (M-^G) which moves the point to the requested mark.
* - fixed some VMS things that Curtis pointed out...
* - fixed bug in crypt() algorith!!!! This works properly now. I had
* to add a $oldcrypt environment variable to trigger the broken
* behavior so people could decrypt their old files. I will probably
* have to live with this.....
* 15-dec-88
* - added end-of-word command to advance just past the end of a word.
* 20-dec-88
* - added definitions for SUN's OS and SCO XENIX to allow us to use
* specific calls in those OSs for waiting and timing.
* - merged in XTCAP.C as submitted by Guy Turcotte into tcap.c. This
* mirrors the BSD 4.3 changes for function keys for the SCO XENIX
* and SUN OS versions
* 14-jan-89
* - added $region as a read only variable (max 128 chars) of the
* current region (as suggested by Allan Pratt)
* - changed KEYTAB structure to allow us to bind user macroes
* (buffers) to keys as well as C functions. Lots of changes
* for this.
* 18-jan-89
* - finished changes for the new KEYTAB structure.
* - modified describe-bindings to display the bound macroes.
* - added arguments to nullproc() in main.c (BUG FIX!)
* - tried (and succeeded) in defining the pascal keyword
* for MSDOS & TURBO. A 2k reduction in the executable was nice.
* - added macro-to-key (^X^K) function to bind a macro to a key.
* 19-jan-89
* - made numeric arguments to keys bound to macroes repeat those
* macroes n times.
* - modified docmd() to look for a macro name if it could not find
* a function name. Again a numeric leadin implies repitition.
* - added machine code execpr() function to the IBMPC version
* because under NOVELL Netware, the DOS 4B exec call does not
* preserve the stack on exit... thus execprog() would die. This
* requires that you add execpr.obj to the make and link files!
* There is a symbol (NOVELL) in estruct.h to control this code
* being included.
* 24-jan-89
* - various bug fixes and type fixes as suggested by the high C
* compiler on the IBM-RT
* 1-feb-89
* - changed the fgetc() in unix.c to a read() under V7 and BSD so
* the time dependant function key checking works.
* - added a support for Hewlet Packard's UNIX system which
* is a System V with BSD 4.3 enhancements. This is controled
* by the HPUX symbol in estruct.h.
* 5-feb-89
* - modified mouse-region-up so right clicking down on a modeline and
* then releasing closes that window
* 12-feb-89
* - Goaded onward by file completion code submitted by Fuyau Lin, all
* the completion code has been re-written and layered properly.
* Any OS specific driver need to now supply getffile() and
* getnfile() to supply a completion file list, or these can
* return NULL on systems where this is not possible. All this code
* is conditional on the COMPLET symbol in estruct.h.
* 17-mar-89
* - system V code from April 1989 "C Users Journal" installed in
* UNIX.C. Hope this puts that problem to rest.
* - Jeff Lomicka fixed a lot of mousing bugs in ST520.c
* - Re-wrote AMIGADOS.C. This should work properly with INTUITION
* and lots of windowing (resizing, mousing, etc.)
* - more additions for the DATA GENERAL from Doug Rady. (read
* the history in aosvs.c for details).
* - orginized the NOSHARE, VIOD and CONST keywords better.
* - A lot of general cleanup.
* [Released as version 3.10 to the world]
* 05-may-89
* - installed the BRICKS revsion control system (from DATALIGHT)
* on my PC developmental machine. This should make diffs possible.
* The installation was convoluted to to brick's inibility to
* use subdirectories, and implemented through a much more
* complex makefile.
* - fixed a missing structure element in line 1230 of eval.c
* - set attribute to clear screen to 07 in ibmeeop. This fixes
* a long standing bug involving not seeing the modeline.
* 16-may-88
* - a bad character in UNIX.C's code for the HPUX is fixed
* - a couple of header problems for HPUX fixed
* - a bug in EVAL.C comparing var names past 10 chars is fixed
* - added Dan Corkill's ISEARCH mods (see ISEARCH.C) Had
* to fix them to allow function keys at the end of an isearch.
* 22-may-89 John Gamble
* - added $SEARCHTYPE var to determine where searches terminate.
* 0 = forward: after string, backward: at beg of string
* 1 = always at beginning of string
* 2 = always character past end of string
* added code and vars all around for this
* 28-may-89
* - finished fixing ISEARCH to properly allow function keys and
* mouse movement to terminate the ISEARCH.
* 28-may-89 John Gamble
* - Code finally added to handle the $SEARCHPNT (nee' $SEARCHTYPE)
* variable. Frankly, i think its pretty sloppy, and should
* be replaced by a separate function to deal with point positions.
* Will change it later.
* 7-jul-89 John Gamble
* - A far more elegant way of dealing with $SEARCHPNT is present,
* more efficient in space also. Didn't need the above mentioned
* point function. Altered ISEARCH.C code to use new calling
* parameters in scan routines.
* - Got started with group structure in MAGIC mode, with alterations
* present in estruct.h and search.c
* 15-jul-89 John Gamble
* - added $disphigh environment variable to control the escaped
* display of high bit set ascii characters
* 05-aug-89 Daniel Lawrence
* - added to lines to lbound() so a forward search will no longer
* wrap around the end of the buffer if the point was at the end.
* - widen-from-region (^X>) preserves the point and marks if they
* were at the end of the fragment, instead of moving them to
* the end of the buffer.
* - fixed bug in comp_file() to allow up to 128 char files specs
* instead of 32 chars.
* - patched some bugs in the TIPC version. It runs again, but
* without a mouse and color and reverse video. The TIPC I had
* to test on was a weird mono one....
* - released 3.10a to the BBS for TIPC users
* 05-aug-89 John Gamble
* - refolding and shoving a lot has managed to knock about 300
* bytes of code out of search.c and isearch.c. Also the some of
* the various commands in an isearch now shadow their bigger
* counterparts.
* - fixed the tab bug in entab-line (^X-^E) which munged lines.
* 15-aug-89 Daniel Lawrnece
* - added append-file (^X^A) command to append a buffer on the
* end of a file
* [released 3.10b to Krannert.....]
* 20-aug-89 Daniel Lawrence
* - The quote character is now treated as the abort and universal-
* argument characters are: only one key may be bound to it at
* a time.
* 9-sep-89
* - a bug in msdos.c prevented the proper binding of ALT-0 on the
* IBMPC. Fixed this as pointed out by Rik Faith.
* 17-sep-89 John M. Gamble
* - Isearch now understands alternatively bound keys.
* One change had to be made to ebind.h and input.c, to handle
* the delete-previous-character command. The delete character
* is now represented internally as CNTL|'?', instead of 0x7F.
* Changes made to handle this are in ebind.h and input.c.
* 16-dec-89
* - Incorporated Kevin Mitchell's VMS improvements. Using the
* native RMS file I/O, and native memory memory routines
* GREATLY speeds up file and buffer manipulation.
* 17-dec-89
* - updated the HP150.C file to work with the new style I/O layers.
* hp150 version now works properly.
* 25-jan-90
* - dumped a lot of the old choice symbols in estruct.h for some
* things which have either never been used, or have clearly
* superior versions now.
* - removed the WORDPRO and AEDIT symbols.... all this code is
* always in now. (it never made much of a size difference anyway)
* - modified sources to allow them to use new ANSI style prototypes.
* (this was a lot of work....)
* - in the process, fixed bug where EMACS probably grew confused
* when setting $curchar to a newline.
* 26-jan-90
* - replaced old file completion code with version by Michael J. Arena
* It allows us to partially complete directory names on UNIX.
* - modified getffile in MSDOS.C to return directory names as well
* so it can work with the above mod. I need to do this mod on
* all OSs which will support it.
* - added support for the Supermax UNIX system as submitted by
* Michael Hillerstrom.
* - fixed a couple of OS2 bugs having to do with key input as submitted
* by Sugih Jamin
* - fixed three bugs posted by Kieth Jones (in display.c and eval.c)
* - let the TURBO C MSDOS version use the bios instead of DOS for
* keybord input as submitted by David R. Kohr. This should solve
* problems with TSRs like Sidekick that break rules.
* - fixed a bug in MSDOS.C's getffile involving how the filename was
* parsed. Paths including ".." now can expand properly.
* [Released version 3.10e to USENET]
* - changed version number to 3.10f
* 15-feb-90
* - added $lterm variable to allow emacs to write non-standard line
* terminators on output. Set to "" it uses standard terminators.
* - forced ffgetline() to trim trailing line terminators on reading
* this allows us to read strange files more robustly.
* - removed the ADDCR option as the var above can do it
* 17-mar-90
* - John Gamble found and fixed a bug in the binding code erroneously
* searching for a particular empty slot.
* 22-mar-90
* - changed line buffer allocation scheme during file reading to
* use realloc() and always double the buffer size. Much faster
* on long line reads.
* 01-may-90
* - added code to allow SUN verion to work properly
* - added .xlk style file locking for unix systems
* 10-may-90
* - added NEC 9801 hardware driver. There is no background color
* implimented yet as this will involve using the graphic planes
* to simulate a backgound color.
* 25-may-90
* - added DBCS (Double Byte Character Set) symbol to estruct.h and
* also much conditional code to handle display and editing of
* DBCS chars. This code is active in the NEC version, using
* japanese KANJI characters.
* - added REP (replace) mode. Very similar to OVER mode except
* tabs and 2 byte characters are handled differently.
* 6-jun-90
* - modified ansi.c into fmr.c for the Fujitsu FMR-70 series
* msdos machines. Extensive modifications to msdos.c were
* needed to accomodate this machine.
* 16-jun-90
* - modified swbuffer() to not check locks on an inactive buffer
* in view mode. This allows the -v switch to work from the
* command line on a file whose directory the user has no
* write access to.
* 28-jun-90
* - added background colors to the FMR driver utilizing the
* graphics planes via the GDS driver.
* 30-jun-90
* - added $wchars, a list of characters considered "in a word".
* An empty value sets this to its default of alphas, numbers
* and the underscore (_) character.
* 5-jul-90
* - re-arranging code to vector all pop up windows through on
* function for display.
* - fixed bug in positioning of file name in buffer list
* 6-jul-90
* - added ability to pop up temporary windows. Environment variable
* $popval gives the old behavior when FALSE and the new behavior
* when TRUE.
* - added pop-buffer function to allow user to pop up the contents
* of a buffer.
* 27-jul-90
* - fixed up the OS2 code back into working. Wrote getffile()
* and getnfile() to allow it file name completion.
* 27-jul-90 John M. Gamble
* - Magic mode characters '+' and '?' added, respectively meaning
* "one to many" and "zero to one (or, optional)".
* 12-oct-90
* - A BAD bug in vteeol() hung the machine during the redraw. Vtcol
* was not getting incremented when the screen was scrolled horizontally.
* 26-nov-90
* - conditionalized code in MSDOS.C using the BIOS to not be used when
* compiled for the HP150. (It's bios is different, of course)
* 15-jan-91
* - in linstr() made an non-positive number of inserted characters
* illegal, causing the linstr to return FALSE on negative and
* TRUE on zero... but not changing the text
* 15-jan-91
* - rewrote dolock.c to generalize it. it now supports MSDOS and SUN
* the SUN code should work on other UNIXs, but needs confirmation
* 17-jan-91 John Gamble
* - removed references to DIACRIT
* - added the $yankpnt variable.
* 21-jan-91 Daniel Lawrence
* - adding OS2 support for file locking
* 07-mar-91
* - added the concepts of SCREENs. Each screen is a separate list
* of windows which overlay on text based systems.
*
* New commands:
* next-screen (A-N) switch to the following screen
* previous-screen (A-P) switch to the previous screen
* find-screen (A-F) switch or create a named screen
* delete-screen (A-D) delete the named screen
* list-screens (A-B) how list of screens
*
* New variables:
* $scrname name of the current screen
* $scrnum ordinal number of the current screen
*
* Most of the code for this is in the new source file SCREEN.C
*
* 11-mar-91 Code from or suggested by Michael C. Andrews
* - getstring() now accepts ^K to return a non-default empty
* result. (to allow for NULL replace strings!)
* - added indent-region [M-)] and undent-region [M-(]
* - added &ISNum function to test variables for being numeric
* - added $curwind and $numwind to give the current ordinal and total
* number of windows on the current screen
* 12-mar-91 Daniel Lawrence
* - checked and fixed code for IBMPC MicroSoft C 5 and 6 compilers
* 15-mar-91 Curtis Smith
* - masked the number generated by ernd in writeout() to limit it
* to 5 digits so that MPE won't barf on a too long file name
* for the temporary file
* 19-mar-91 Daniel Lawrence
* - added code to parse drive letters to dolock()/undolock()
* MSDOS is happier.
* - changed search order of files to look in current directory
* before HOME and PATH dirs.
* 24-mar-91
* - command file names default to a .cmd extention from the command
* line and from the source command.
* [released BETA version 3.11]
* 02-apr-91
* - neglected to decrement buffer use counts in free_screen()
* These are now fixed, so delete-screen is again safe.
* 19-apr-91 John M. Gamble
* - Made a couple of functions, cclmake() in particular, more efficient.
* Saved a hundred bytes or so, which were immediately used up by:
* - Groups! Groups are now available in MAGIC mode! (hurrah).
* - Fixed bug where $match would get set with the wrong characters
* if searching backwards.
* - also declared as VOID the VOID functions in search.c. Should
* get nattered at less often now.
* 23-apr-91 Daniel Lawrence
* - namebuffer() was only updating the current modeline. It needed to
* update all of them in case the current buffer was in multiple
* windows. This bug was pointed out by Martin Shultz.
* - added code from Floyd Davidson for new backward kill behavior. This
* is under the NEWKILLB symbol and is for evaluation.
* 24-apr-91
* - John Gamble points out that local variable "ap" in mlwrite() can
* not be register type. Fixed this.
* - as reported by Martin Shultz, tabs caused problems in OVERwrite
* mode since the logic for determining to delete or not was based
* on offset into the line rather than column. Preceding tabs
* confused this. I changed the offset reference (in main.c) to a
* reference to the getccol() function and all is well.
* - Risto Kankkenun pointed out a problem in the input handling of
* any completion command... it did not handle function keys well,
* and blocked some normal keys from being used. Inputing an
* extended character in complete() and then translating it to a
* standard ascii char let us correct this.
* - Risto also points out a one character difference between word
* wrapping and paragraph filling. Changed a couple of >= to > in
* reform() in word.c to correct this.
* 27-apr-91 John Gamble
* - Oops. In changing the closure code, so that groups and closure
* could be used together, i broke closure. Argh. Fixed now.
* - Added the &GROUP function, so that macro writers could get at
* the substrings matched by groups in a MAGIC search.
* - Since $yankpnt is a Boolean type now, changed its name to
* $yankflag.
* - Altered the broadcast message interceptor code in VMS.C. Instead
* of using a %variable to hold the message, which was not large
* enough, the message(s) are stashed away in a buffer. Added a
* global boolean variable pending_msg, which Dan will use to notify
* the user of an intercepted message.
* 1-may-91 Daniel Lawrence
* - the backward kill code was very interesting.... but did not update
* the $kill variable (via getkill() in eval.c) and caused all sorts
* of interesting sideffects when the clear kill buffer code was not
* updated either. I refigured the algorithm to use the current kill
* blocks, growing them backwards as needed. Recoding this, it all
* works properly now, allowing negative kills and proper behavior
* when mixing various consective forward and backward kills. This
* new code is smaller and involved less changes.
* 2-may-91
* - changed some WFHARDs to WFMOVEs in basic.c for gotobob() and
* gotoeob() as suggested by Risto Kankkunen
* - removed a call to turn break off under MSDOS in ibmkopen()
* in ibmpc.c to answer a observation from John A Steele
* - changed some file names. ATARI.C => TOS.C ST520.C => ST52.C
* to more accurately reflect the OS and screen code for the ATARI
* - made a lot of changes in TOS.C as specified by Allan Pratt
* - fixed setkey() to not choke on undefined functions
* 11-jun-91
* - added in support for LATIN as submited by Anthony Appleyard
* - cause the prompt for search patterns to show the current search
* terminator
* 23-jun-91
* - in BASIC.C in gotobop/eop() changed some offests to zero constants
* speeding things up.
* - also added $scribe so I can add in scribe specific formatting
* features, like deciding @commands at the begining of lines delimit
* paragraphs.
* 26-jun-91 John Gamble
* - added check for isearch and risearch binding in the incremental
* search commands, as suggested by ???.
* - Put in new text strings from search.c into the <language>.h files.
* - Removed the code in BIND.C which checked for the .rc file in the
* current directory before checking HOME. This was dangerous in a
* multi-user environment. Change the HOME variable if you want to
* use a different set of .rc and .cmd files.
* 10-jun-91 Daniel Lawrence
* - dumped $scribe. Instead we are adding features to handle any
* formatter of that style. $fmtlead lists all formatter command
* leadin characters. $paralead lists all paragraph start charaters.
* - changed a check in setvar() to allow an interactive input value
* to be just the <NL>, allowing you now to interactively set
* a variable to being empty. ^G still aborts the set.
* 17-jun-91
* - a missing parenthesis in a conditional in cinsert() sometimes
* caused a problem when strinking return in CMODE
* 24-jul-91
* - changed a write in ttflush() to go to stdout instead of stdin
* 18-aug-91
* - replaced tipc.c driver and made minor accomodations to many files
* for support of memory mapped TIPC driver under Zortech C as supplied
* by Ron Lepine
* - added code to msdos and OS/2 to recognize F11, F12 and application
* keypad as seperate, bindable keys. Submitted by Jon Saxton
* 2-Sep-91
* - made some minor changes for OS/2 submitted by John Ladwig
* 4-Sep-91
* - made a lot of adjustments to the new keyboard.c file for recognizing
* IBMPC extended keys. I think most of its keys are now mapped in all
* modes which the BIOS will recognize under both MSDOS and OS/2.
* 6-Sep-91 John M. Gamble
* - changed the outer while loop of scanner() to a if/do-while
* combination. This allowed the removal from the inner loop of an if
* statement that was returning a constant value. Speeds up searches
* noticably.
* - reverse searching in fbound() was using matchlen as a jump increment.
* This causes reverse-search to fail if we had just removed MAGIC mode,
* since matchlen may be different from the pattern length, causing the
* search to fail. Changed to (patlenadd + 1).
* - Code which stored away the previous match before saving the current
* match is moved to the replaces() function where it belongs. Less
* work for simple searches. Also changed the free()/malloc()
* combinations to simple realloc() calls - much neater.
* - Putting the "next character" calls in the correct place in amatch()
* meant that i could get rid of all the special checking for BOL and
* EOL characters. Saved much code space that way.
* - Fixed the fence flashing bug where the cursor failed to flash back
* to a fence which was the first character in a buffer. Simple matter
* of moving the forward/backward cursor calls in the right place.
* - New function regtostr() is what is called now to save matches, group
* matches, set $region, etc. Space saver, faster.
* 7-Sep-91 John M. Gamble
* - Changed the realloc()s back to free()/malloc() combinations.
* There are still compilers out there who do not have ANSI C
* functions, like certain UNIX systems, which used to be on the
* cutting edge, but are now warts. Arghhh.
* - Fixed a group length problem, when matchlen was getting added
* more than once (closure again). New group_length array fixes
* that.
* 12-Sep-91 Daniel Lawrence
* - fixed setting of $cbflags, changing mask from BFCHG&BFINVS to
* BFCHG|BFINVS, letting it work as suggested by John Gamble
* 14-Sep-91
* - fixed a bug in the mouse handling in mouseline() which prevented
* us from positioning the mouse on the last line of the window when
* $modeflag was set to FALSE
* 15-Sep-91
* - In frustration from the new help system crashing and leaving me
* unable to comunicate visibly with the command like, emacs now
* sets $discmd and $disinp to TRUE whenever it goes to fetch an
* interactive command. Delete the assignment in execloop() if this
* gets in the way
* 21-Sep-91
* - the new code for decoding the AT keyboard fails real poorly on an
* XT or earlier style machine. When ATKBD is enabled, if the call
* fails the first time, emacs automatically switched to using the
* old style (not that old really) BIOS calls for input.
* 5-Oct-91
* - two new variables, $orgrow and $orgcol, and two new function
* change-screen-row and change-screen-column, all you to change
* the upper left corner of emacs' screen on the physical screen.
* You must resize the screen smaller than default before this
* will work.
* - screen resolution changes on the IBMPC force the screen back
* to the upper left corner. This may change in the future.
* 8-Oct-91
* - size and position of screen maintained in the SCREEN structure
* so switching screen resets these.
* - Mousing code now switches screens if mouse is used outside of
* current screen.
* 9-Oct-91
* - Switching screen deactivates modeline of outgoing screen.
* - Screen list now orginized front->back instead of alphabetically
* - dumped $scrnum as it changes dynamically and is not very usefull
* - replaces next-screen and previous-screen with cycle-screens (A-C)
* which brings the rearmost screen to front. Mousing to a window
* now operates in front to back order! screen.c is smaller!
* 11-Oct-91
* - added logic to refresh screens when sizing down or moving screen
* - added $deskcolor var to hold color desktop should be cleared to
* - added TERM structure entry .t_clrdesk as a ptr to function to
* clear the desktop when redrawing windows
* 15-Oct-91
* - added code to ibmpc version to properly track screen resolution
* changes. If a screen is the size of the desktop at resolution change
* time, it is resized to the new desktop size.
* 16-Oct-91
* - noticed the wrong character set when returning from VGA12 mode
* on the ibmpc. Added code to fix this in egaclose() in ibmpc.c
* 21-oct-91
* - added code in IBMPC output routine to interpret char 7 as a beep
* 25-oct-91
* - added ability of macro to suppress screen redraw by setting second
* bit in $gflags... like after a shell-command that doesn't output
* 30-oct-91
* - added ability to set any $...hook variable to a named procedure
* as well as a built in command.
* - modified the standard startup file EMACS.RC to use named procedures
* rather than numbered macroes for all its internal functions.
* - Modified manual to emphisize the use of named procedures rather
* than the execute-macro-<n> commands which I am trying to phase out.
* 31-oct-91
* [RELEASED version 3.11 for general distribution]
*/
history()
{
/* this is here to keep compilers from complaining... it's not needed */
}