home *** CD-ROM | disk | FTP | other *** search
/ Black Box 4 / BlackBox.cdr / progc / ce331src.arj / VERSION.H < prev    next >
Text File  |  1991-06-08  |  18KB  |  329 lines

  1. /*
  2.  *    V E R S I O N . H
  3.  *
  4.  *    purpose:
  5.  *        Program name and version number for CodEd.  Also, the modification
  6.  *        and version number history.
  7.  *
  8.  *    acknowledgements:
  9.  *        CodEd is based on MicroEmacs 3.9 by Daniel Lawrence and others.  It
  10.  *        also incorporates some features that were added to MicroEmacs 3.10.
  11.  *
  12.  *    modification log:
  13.  *    1.0        4/6/88        John W. Grothman
  14.  *            4/9            jwg - no more monochrome adapter or flicker support
  15.  *            4/20        jwg - a hard tab is now used regardless of 'tabsize'.
  16.  *                              CodEd now interprets a tab based solely on
  17.  *                              'tabsize' (see ce.rc).
  18.  *            4/21        jwg - fixed KillText() in random.c; it did a 'return'
  19.  *                              instead of a 'break' if given an argument that
  20.  *                              caused it to exceed the length of the buffer
  21.  *            4/28        jwg - rebound ^V/^Z to ^X^N/^X^P and vice versa (scroll)
  22.  *            5/2            jwg - common code reduction
  23.  *            5/3            jwg - deep-sixed ^U processing and 'error.cmd' handling
  24.  *    1.1        6/20        jwg - mod ffgetline() and ffputline() to work a line at
  25.  *                              a time instead of a char at a time (reads are now
  26.  *                              50% faster and writes are 80% faster)
  27.  *            6/22        jwg - mod replaces() to flush the keyboard buffer just
  28.  *                              before it returns (deletes any extra responses to
  29.  *                              the 'query replace' prompt caused by holding down
  30.  *                              the response key instead of single stroking it)
  31.  *            6/27        jwg - register all locals that can benefit from it
  32.  *    1.2        7/12        jwg - rewrote keyboard handling code (see bios.asm)
  33.  *    1.21    8/1            jwg - add 'IndentRegion' and 'UndentRegion' and move
  34.  *                              the auto CMODE check from a macro in 'ce.rc' to
  35.  *                              ReadIn() in 'file.c'
  36.  *            8/2            jwg - fix InsBrace() in random.c (pointed to preceding
  37.  *                              line if opening brace was in column 0)
  38.  *                            - add -c command line option (goto character 'n')
  39.  *                            - add ? command line option (print usage and exit)
  40.  *    1.22    8/8            jwg - souped up search performance (mostly by turning
  41.  *                              a lot of locals into globals and avoiding the
  42.  *                              passing of a lot of long pointers to functions
  43.  *                              called from within the search Scanner() loops)
  44.  *            8/9            jwg - removed egaclose() code from the beginning of
  45.  *                              of egaopen() in ibmpc.c
  46.  *    1.23    8/14        jwg - add real move (SetAnchor() and MoveRegion())
  47.  *    1.3        8/21        jwg - add goto top line and bottom line of window
  48.  *                              (GotoTlow() and GotoBlow())
  49.  *            8/22        jwg - fix bad bug in Scanner() (non-matching char
  50.  *                              after at least one char matched was not put
  51.  *                              back; added putbackch() in search.c to fix it)
  52.  *    1.31    9/7            jwg - removed global modes display from ListBuffers()
  53.  *    1.32    9/10        jwg - mod tabbing code (tabsize of 4 or 8 uses hard
  54.  *                              tabs, any other tabsize uses spaces)
  55.  *    1.33    9/28        jwg - fix bug in magical searches
  56.  *    1.34    12/26        jwg - made as ANSI-compatible as possible
  57.  *                            - removed 'printf-type' processing from MlWrite()
  58.  *                              and added sprintf calls where necessary
  59.  *    1.35    2/1/89        jwg - bound the function keys via bind.h instead of
  60.  *                              at run-time via ce.rc
  61.  *    2.00    2/2            jwg - start mods to use PforCe library calls instead
  62.  *                              of Mickeysoft's stdio calls
  63.  *    2.01    3/3            jwg - init. anchorp and anchoro when creating a window
  64.  *                              (main.c) and when splitting a window (window.c)
  65.  *    2.02    3/31        jwg - rebound ShrinkWind() to <Alt><PgUp> and
  66.  *                              EnlargeWind() to <Alt><PgDn>
  67.  *    2.03    5/23        jwg - removed xlat() and its related function binding
  68.  *                            - add 40-line VGA (35-line EGA) display mode
  69.  *            5/30        jwg - add call to RevStrCpy() to initialize the reverse
  70.  *                              search pattern when the -s command line switch
  71.  *                              is used
  72.  *            5/30        jwg - changed 'print usage' command line switch from
  73.  *                              ? to -h
  74.  *    2.04    6/5            jwg - fix bug in Detab() (from 3.10)
  75.  *            6/6            jwg - add horizontal scrolling (from 3.10) and two env.
  76.  *                              variables ($hscroll and $hjump) to control it
  77.  *    2.10    6/7            jwg - add new high speed search (Boyer-Moore; from 3.10)
  78.  *            6/9            jwg - minor (newly created) bug fixes
  79.  *                            - add the two environment variables for the new
  80.  *                              tabbing code ($hardtab and $softtab)
  81.  *            6/13        jwg - more minor (newly created) bug fixes (the new
  82.  *                              search stuff now finds all occurrences of the
  83.  *                              search string; how about that?)
  84.  *    2.11    6/14        jwg - made as many 'module local' functions 'static'
  85.  *                              as I could (moved a couple of routines around)
  86.  *                            - mod file reading code to use low-level (getc)
  87.  *                              calls instead of the high-level PforCe (flgetln)
  88.  *                              calls; CodEd now does the funny line terminator
  89.  *                              checks (any combination of <cr><lf>, <lf><cr>,
  90.  *                              <cr> or <lf>); reads are now 4 times faster (note
  91.  *                              that PforCe writes are still almost twice as fast
  92.  *                              as low-level (putc) writes)
  93.  *            6/15        jwg - added 'safesave' flag and $safesave env. variable;
  94.  *                              now (if safesave is TRUE) WriteOut() will:  write
  95.  *                              to a temporary file, unlink the previous version,
  96.  *                              then rename the temp file to the original name
  97.  *                              (NOTE: default is safesave = TRUE) (from 3.10)
  98.  *            6/16        jwg - add BINARY searches for things bound to keys,
  99.  *                              environment variables and user functions (3.10)
  100.  *                              (NOTE: the names[], envars[] and funcs[] arrays
  101.  *                              MUST!!!!! be in ascii sorted order for this to
  102.  *                              work; be VERY careful when modifying func.h or
  103.  *                              var.h) (controlled by BINARY flag in struct.h)
  104.  *                        jwg - mod Detab(), Entab() and Trim() to work on the
  105.  *                              current region if not passed a numeric argument
  106.  *                              (added RegionLines() to get the number of lines
  107.  *                              in the current region) (from 3.10)
  108.  *                            - add DelMark() to clear the mark and anchor in
  109.  *                              the current window
  110.  *            6/21        jwg - fix irritant (aborting GotoLine() caused the
  111.  *                              BELL to beep twice)
  112.  *                            - mod CmdAbort() to kill currently active keyboard
  113.  *                              macro (set kbdmode = STOP) only if called with
  114.  *                              a TRUE flag
  115.  *                            - break out most of main() into procline() and
  116.  *                              editloop() (from 3.10)
  117.  *    2.12    6/22        jwg - put the pascal keyword on everything (except
  118.  *                              main(), of course; don't want to rewrite the
  119.  *                              C startup code); gained some speed and got
  120.  *                              1.5K of RAM back
  121.  *            6/23        jwg - add (N)arrowed flag to the 'display buffers' list
  122.  *    2.13    6/23        jwg - add bookmarks (see NBMARKS in struct.h) (3.10)
  123.  *            6/26        jwg - finish bookmark code
  124.  *    2.14    6/27        jwg - mod spawn code to do the EXEC directly, without
  125.  *                              calling one of the run-time library functions in
  126.  *                              the Exec??? and Spawn??? family; saves 2K of RAM
  127.  *            6/29        jwg - fix SetMark() call in IndentRegion() and
  128.  *                              UndentRegion() to set the mark instead of a
  129.  *                              bookmark (new bug due to bookmark code)
  130.  *    2.15    7/3            jwg - incremental searches are now gone for good (I'm
  131.  *                              tired of maintaining the isearch code and of
  132.  *                              spending 2K of RAM on it; besides I personally
  133.  *                              never use it)
  134.  *                            - mod GetString() in input.c to clear the buffer
  135.  *                              (buf[0] = 0) when a Ctrl-Backspace is entered;
  136.  *                              this allows search and/or replace strings to be
  137.  *                              set to NULL
  138.  *            7/5            jwg - swapped the order of the two union members in
  139.  *                              the MC structure in struct.h (this allowed me to
  140.  *                              explicitly NULL the first structure in the mcptr
  141.  *                              and rmcptr arrays (see def.h) without getting
  142.  *                              one of the various invalid initialization warning
  143.  *                              messages from the compiler); this was necessary
  144.  *                              because an INT is NOT THE SAME SIZE as a POINTER
  145.  *                              on an Intel processor in large model; two cheers
  146.  *                              for segmented architectures
  147.  *    2.16    7/7            jwg - add support for command line wildcards (included
  148.  *                              setargv.obj in ce.arf); CodEd can be invoked with
  149.  *                              a command line like:  coded *.c; I like this a lot
  150.  *                            - fix long-standing bug in Token(); the opening
  151.  *                              quote of a quoted string was handled incorrectly;
  152.  *                              it set 'quotef' TRUE, but failed to bump the
  153.  *                              source pointer or to continue the while loop; this
  154.  *                              caused quoted strings in macros to be limited to
  155.  *                              (SIZE - 2 + null) instead of (SIZE - 1 + null)
  156.  *    2.17    7/11        jwg - add PrevBuffer(); now we can go back one buffer
  157.  *                              as well as go forward one buffer (NextBuffer())
  158.  *                            - rebound some function keys
  159.  *            7/12        jwg - mod FindBuf() and ZotBuf() to update the new
  160.  *                              doubly linked buffer structures and 'btailp'
  161.  *                              added for PrevBuffer(); this works great
  162.  *                            - updated usage message in main.c to reflect new
  163.  *                              function key bindings
  164.  *                            - add code to makelist() to display 'Global Modes'
  165.  *                              as the first line of [Buffer List]
  166.  *                            - add code to makelist() to display the amount of
  167.  *                              RAM available as the last line of [Buffer List]
  168.  *                            - mod oneliner() in spawn.c to use the current
  169.  *                              switch character
  170.  *            8/2            jwg - mod WriteOut() in file.c; was checking flopen()
  171.  *                              return for a (FILE *)NULLCPTR instead of a
  172.  *                              NULLHDL
  173.  *    2.18    8/7            jwg - fix bug in Font40(); I was assuming that MASM 5.1
  174.  *                              always set up a stack frame, so I just creamed BP
  175.  *                              and figured it would get restored automagically;
  176.  *                              wrong, wrong, wrong; MASM is smarter than the
  177.  *                              average bear, it generates stack frame code only
  178.  *                              if it decides it is absolutely necessary
  179.  *                            - compiled all modules for the '286
  180.  *    2.19    8/18        jwg - massive name changes
  181.  *    2.20    8/21        jwg - relink with PforCe library compiled for the '286
  182.  *    2.21    10/17        jwg - fix bug in replaces() - aborting a replace while
  183.  *                              typing in the replacement string caused the
  184.  *                              replace string to be replaced with a NULL string
  185.  *                              (that's what Ctrl-Backspace is for)
  186.  *    2.22    10/23        jwg - delete unused local (saveflag) in editloop() in
  187.  *                              main.c; remnant of an earlier day when editloop()
  188.  *                              had a hook to execute a macro on startup
  189.  *                            - mods for Turbo C; some things are now condition-
  190.  *                              alized by the symbols MSC and TC; changes mostly
  191.  *                              involve different names for some of the include
  192.  *                              files, plus the initialization of '_stklen' in
  193.  *                              main.c for Turbo C
  194.  *                            - mod WriteOut() in file.c for Turbo C; when saving
  195.  *                              more than one file (via QuickExit() or multiple
  196.  *                              FileSave()'s), the safesave filename template
  197.  *                              ("ceXXXXXX") was getting creamed; it seems like
  198.  *                              Turbo C wants a fresh copy every time; oh well
  199.  *    3.00    12/6        jwg - release to the public domain
  200.  *    3.01    12/13        jwg - return support for monochrome adapters
  201.  *    3.02    1/4/90        jwg - return support for the original PC keyboard
  202.  *    3.03    1/29        jwg - mod FindBuf(), ReadIn() and procline() to set all
  203.  *                              buffer and and file names to lower case (FindBuf()
  204.  *                              was case-sensitive and shouldn't be; mod ReadIn()
  205.  *                              just to be symmetric)
  206.  *                            - NOTE: the end result of all this lower case stuff
  207.  *                              is that KillBuffer() (and consequently ZotBuf())
  208.  *                              now actually deallocate memory and return it to
  209.  *                              the heap.  Some place along the way, a stracmp()
  210.  *                              was failing and so was the deallocation process.
  211.  *    3.04    1/30        jwg - fix execprog() in spawn.c; it would just save the
  212.  *                              current screen rez and try to force the CGA mode;
  213.  *                              of course CodEd would complain when it was running
  214.  *                              on a mono display; now we check that the current
  215.  *                              screen rez is not MNO or CGA before we set the
  216.  *                              CGA mode (this assumes that the MNO mode is ALWAYS
  217.  *                              a 25-line mode)
  218.  *    3.05    7/3            jwg - add -i (insert), -m (magic searches), -n (normal
  219.  *                              searches) and -o (overwrite) command line switches
  220.  *    3.06    9/4            jwg - mod ReadIn() in file.c to fix auto C mode code;
  221.  *                              would get screwed up on relative file names that
  222.  *                              had a '.' or '..' in them, or that, god forbid,
  223.  *                              had a directory name with an extension
  224.  *    3.07    10/7        jwg - kill MSC stuff
  225.  *                            - start mods to support TC++
  226.  *                            - kill the pascal keyword
  227.  *    3.08    10/14        jwg - convert MAKE files to Borland MAKE format
  228.  *                            - add "cpp" as a valid C-mode filename extension
  229.  *    3.09    10/16        jwg - fix bug in replaces() - '(U)ndo last' wouldn't
  230.  *    3.10    10/18        jwg - fix bug in rmcstr() - was setting 'status = FALSE'
  231.  *                              if malloc() near the end of rmcstr() failed, but
  232.  *                              did not return - would then attempt to write to
  233.  *                              a NULL pointer - naughty, naughty
  234.  *                        jwg - fix big time bug in amatch() - was not resetting
  235.  *                              'scurline' and 'scuroff' on a failure - nasty -
  236.  *                              this one's been there since I made all of the
  237.  *                              LINE pointers and offsets global in the search
  238.  *                              functions (v2.10) - beware the speed demon
  239.  *    3.11    11/10        jwg - removed the DEBUGM conditional compilation flag
  240.  *                              (from eval.c,exec.c,struct.h,def.h) - there was so
  241.  *                              little code involved, plus the "debug" envar and
  242.  *                              EVDEBUG envar[] index could not be conditionalized
  243.  *                              if we wanted to maintain support for the BINARY
  244.  *                              search routines, so... they be gone
  245.  *            11/11        jwg - mods to display.c - delete the mlputi(), mlputli()
  246.  *                              and mlputf() code - unnecessary and uncalled since
  247.  *                              the 'printf-type' processing was removed from
  248.  *                              MlWrite() in version 1.34
  249.  *    3.12    11/13        jwg - add an ASCII table window (ala the HELP window)
  250.  *                            - add messages to GetFence() to tell why it failed
  251.  *    3.13    11/23        jwg - add check to MakeName() to validate the requested
  252.  *                              file name (i.e., whether or not it's in valid DOS
  253.  *                              filename.ext form) and conditionally continue if
  254.  *                              it isn't
  255.  *                            - void some int functions in various modules whose
  256.  *                              return values were meaningless
  257.  *            11/24        jwg    - place CGA, EGA and VGA code in ibmpc.c into
  258.  *                              seperate functions for clarity
  259.  *                            - clean up the video code with respect to MONO
  260.  *                              adapters and move some EGA and VGA code into
  261.  *                              Font50() in fonts.asm (renamed from Font40.asm)
  262.  *            11/25        jwg - add ResetTo25() to ibmpc.c and fix execprog() in
  263.  *                              spawn.c to reset the display mode to 25 lines
  264.  *                              based on the installed video adapter, since "CGA"
  265.  *                              now is specific to the CGA adapter (see E25/V25)
  266.  *                            - fix Pipe() in spawn.c to clear the file name from
  267.  *                              the buffer into which the specified command's
  268.  *                              output is piped (the file was being unlinked, but
  269.  *                              the file name still showed up on the mode line)
  270.  *    3.14    12/1        jwg - clean up validfilename() code
  271.  *                            - clean up FAILURE exit()s in main.c --- PcClose()
  272.  *                              the system first
  273.  *                            - change startup filename extension from .RC to .SF
  274.  *                              (for Startup File; I have no idea what RC was for)
  275.  *                            - clean up display mode change code - if user tried
  276.  *                              to change to an unsupported mode, the screen was
  277.  *                              not getting repainted; pretty disconcerting
  278.  *    3.20    12/29        jwg - conditionalize BOOKMARK code (BMARKS in struct.h)
  279.  *            12/30        jwg - conditionalize MAGIC code (MAGIC in struct.h)
  280.  *                            - fix GotoBlow() - goal column often incorrect
  281.  *    3.21    1/27/91        jwg - minor mods to ibmpc.c and spawn.c (still can't
  282.  *                              Exec (^X $) CHKDSK; can Pipe and Spawn it though)
  283.  *                            - mod gtfun() and gtenv() in eval.c to place the
  284.  *                              switch code in BINARY order (i.e., 0 -> n); this
  285.  *                              should make the jump table code more efficient
  286.  *            1/29        jwg - fix a fix; delete ResetTo25() and replace calls
  287.  *                              to it with calls to PcClose(); video mode set and
  288.  *                              reset code got screwed up - wasn't resetting the
  289.  *                              char set to the 25-line (8x14 (EGA)/8x16 (VGA))
  290.  *    3.22    2/17        jwg - add 28-line VGA mode
  291.  *            2/23        jwg    - add "hpp" as a valid C-mode filename extension
  292.  *                            - mod EVSRES code in svar() to repaint the screen
  293.  *                              after a mode switch (trying to switch to the
  294.  *                              current mode (i.e., no change) left the screen
  295.  *                              blank and creamed the modeline)
  296.  *                            - mod scinit() to just return if the requested
  297.  *                              video mode is the same as the current video mode
  298.  *    3.23    3/7            jwg - various minor mods
  299.  *                            - oops; forgot to close the .PAL file in vgaset()
  300.  *                            - oops; undo the 'mod scinit()' change made on
  301.  *                              2/23 - returning from any of the DOS shell or
  302.  *                              exec routines would leave the screen garbage
  303.  *                              (since the requested video mode was the same as
  304.  *                              as the 'remembered' current mode, the screen
  305.  *                              just stayed a nice shade of blue with no text
  306.  *                              and no mode line (I knew I pulled that code a
  307.  *                              long time ago for some reason, just couldn't
  308.  *                              remember; tisk, tisk))
  309.  *    3.24    3/10        jwg - move VGA25, VGA28, VGA40, VGA50, EGA25, EGA35,
  310.  *                              EGA43, CGA25 and MNO25 code to fonts.asm
  311.  *                            - default 'safesave' to FALSE (the file I/O code
  312.  *                              has been very stable for some time now, so we
  313.  *                              might as well save a little time and disk I/O
  314.  *                              unless the user explicitly tells us to)
  315.  *                            - kill the 'command completion' code in GetName()
  316.  *    3.25    4/13        jwg - add "slt" as a valid C-mode filename extension
  317.  *                              (for Telix SALT compiler source files)
  318.  *    3.30    4/28        jwg - mod Entab() to not entab within quoted strings
  319.  *    3.31    6/8            jwg - one more fix to the validfilename() code - it
  320.  *                              choked on relative filenames that started with
  321.  *                              with '.' or '..' and that had no extension - this
  322.  *                              better be it for this one
  323.  */
  324.  
  325. /* program identification */
  326.  
  327. #define PROGNAME        "CodEd"
  328. #define VERSION         "3.31"            /* 6/8/91 */
  329.