Changes for vile 8.3 (released Fri Apr 23, 1998)

(tom) 990420 (v)
	+ modify winvile.rc to use VILE_ICON definition, overlooked in previous
	  patch.

(tom) 990420 (u)
	+ add 32x32 monochome versions of the .ico files, for completeness
	  because automatically generated versions do not work well for color
	  icons.
	+ improved vile.ico by adding 16x16 section (Rick Sladkey).
	+ correct reversed logic for no_msgs variable in perl.xs, from
	  8.2s changes (reported by Ed Henderson).
	+ correct missing return in var_TITLE() on win32 (Clark Morgan).

(tom) 990418 (t)
	+ add configure option --with-xpm, to support color icons in xvile.
	  Not all window managers support xpm icons.
	+ remove configure test and ifdef's for CC_CANNOT_OFFSET_CASES, since
	  rewrite of eval.c left only one place where we care about this
	  compiler limitation.
	+ add .ico, .xbm and .xpm versions of the most popular icons for xvile
	  and winvile.
	+ use SMG to get control sequences for 80/132 column switching (Clark
	  Morgan, request by Tom).
	+ rewrote vmsopen() in vmsvt.c (patch by Clark Morgan).
	+ update vile-pager script to find vile-manfilt according to the
	  VILE_LIBDIR_PATH setting, etc.
	+ modify majormode suffixes check to exclude pipes and internal names
	+ add ".hlp" to txtmode suffixes (note that the :h command bypasses
	  $read-hook).
	+ add cindent to lex, yacc majormodes.
	+ add sccs majormode.
	+ implement imake mode using C filter.
	+ add syntax filter txt-filt.l, for highlighting simple textfiles.
	+ add syntax filter spellflt.l, for highlighting misspelled words with
	  ispell.  Source "spell.rc" to get the ^X-i spelling highlighter.
	+ add syntax filter difffilt.l for diff output
	+ use "seed" in ucrypt.c rather than rand().

(tom) 990414 (s)
	+ add "DBG=" option to makefile.wnt to simplify building with OPT_TRACE.
	+ add VILE_LIBDIR_PATH to $PATH on WinNT, as on Unix to find syntax
	  filters more simply.
	+ minor fixes to filters: makefilt.l to handle $$name, sh-filt.l to
	  refrain from highlighting keywords in contexts that look like
	  options, e.g., -enable.
	+ modify makefile.wnt to accommodate Win95: its shell doesn't grok "&&"
	  as a command separator (patch by Clark Morgan).
	+ add 'dist' rules to makefile.wnt
	+ fix core dump for uninitialized $palette in statevar.c (reported by
	  Brian Moore).
	> patches from Paul Fox
	general:
	+ trimmed some old README text
	+ removed margin and scrollsize values from term structs.  they
	  were deterministic constants everywhere anyway.
	+ eliminated TTxxxx() macros, in favor of simple term.xxxx()
	  usage.  ANSI C says the (*term.xxxx)() format isn't necessary.
	  we'll see.
	+ renamed elements of term struct, since the element names are
	  now exposed.  eliminated redundant t_ prefix.
	+ renamed null_xxxx() routines to match.
	+ renamed some globals to better describe their function (e.g.
	  pat, rpat, sres)
	+ in a couple of places globals were lurking in macros (e.g.
	  nexttabcol) and i made them visible.
	+ cleaned up and corrected comments which no longer described the
	  code correctly.
	+ renamed tokenizing #defines, for better mnemonics.
	+ suppressed a couple of arg-unused warnings when building X11 by
	  tweaking ifdefs.

	ibmpc.c:
	+ cleaned up a bunch of code -- moved private defines from estruct.h.
	+ collapsed screen address defines to simplify.
	+ did some renaming for mnemonic clarification.
	+ eliminated unused global flags.
	+ eliminated global "regs" struct/union.
	+ eliminated all support for flicker suppression.  it was cga-only,
	  and wasn't needed on reasonable cards anyway.  we can resurrect
	  it if needed, but i doubt we will.  (also eliminated $flickcode
	  variable which enabled it.)
	+ updated some copyright statements.

	exec.c:
	+ simplified logic surrounding while-loop processing -- a single
	  list is now maintained, rather than the double list shuffling
	  that went on before, and endwhiles now get their own struct on
	  the loop descriptor list.
	+ eliminated recursion when freeing while-loop descriptors.
	+ move save/restore of no_msgs (formerly discmd) inside dobuf().
	+ simplified flags that indicate that macro creation is in progress.

	+ use mlforce() rather than mlprompt() in pressreturn(), and eliminate
	  flag setting no longer required. (spawn.c)
	+ use rand() rather than global "seed" for encryption purposes.
	  (ucrypt.c)
	+ add second %% line to lex "states" check -- it hangs on solaris
	  otherwise.  (aclocal.m4)


(tom) 990404 (r)
	+ add filters/mms-filt.l
	+ change filters/makefile.in to work when configuring with --srcdir
	  (patch by Brendan O'Dea).
	+ include XBM and XPM versions of [J.] Richard's ``vile screen'' sample
	  icon, ifdef'd with OPT_X11_ICON (patch by Brendan O'Dea).
	+ rename GetEnv to vile_getenv, since VMS linker does not distinguish
	  that from getenv (patch by Clark Morgan).
	+ ignore case in VMS majormode suffix and preamble.
	+ make C-style indent logic available as a mode 'cindent', so it can be
	  assigned as part of a majormode.  It is part of the builtin cmode.
	+ collect logic for read/etc., hooks into common functions to make it
	  simpler to see them.  Save/restore the count of lines read so that
	  the read-hook does not cause vile to report confusing total number
	  of lines read, i.e., the actual file plus the highlighting.

(tom) 990327 (q)
	+ add filtername mode, to handle special filter cases for java, js, csh
	  majormodes.
	+ modify makefiles to allow vile to compile on *IX systems with the gnu
	  make -j option, to run several C compilers at the same time.  The -t
	  option to lex is at least portable to Solaris lex and flex.  Uses
	  redirection (patch by Ryan Murray).
	+ correct a couple of VMS-specific problems:  assignment through a
	  const pointer in cfg_locate, and implicit string concatenation in
	  personals (patch by Clark Morgan).
	+ rename VILE_LIBRARY_PATH to VILE_LIBDIR_PATH
	+ correct limit-expression in add_brackets() function, which left
	  trash on the end if the buffer name was too long.
	+ update the list of files suppressed by --disable-extensions.
	+ add configure option --with-purify.
	+ modify configure-script so --with-no-leaks option does not require
	  --with-trace.
	+ correct error in 8.2p changes to ucrypt.c, i.e., incorrect workaround
	  for a case where a cast was needed.
	+ revised change to HighlightFilter to add HighlightFilterMsg which
	  writes the "Attaching attributes..." message, leaving the
	  HighlightFilter macro quiet and more suitable for use in $read-hook.
	+ minor changes to make Paul's changes build with perl, tracing
	  and disabled extensions/shell.
	> patches from Paul Fox (includes some documentation from Clark Morgan):
	+ combined eval.c/sindex() and bind.c/ourstrstr() into single
	  routine.
	+ remove redundant mktrimmed() calls when doing buffer lookup.
	  (buffer.c)
	+ moved code for grabbing next line from buffer from eval.c to
	  new routine next_buffer_line() in buffer.c
	+ give credit to Roger Ove for scroll optimization code in
	  display.c
	+ random number generator now based on rand() -- it's present
	  in MSDEV and all UNIXes i know of, but we may need a configure
	  check eventually.  (eval.c)
	+ removed mostly redundant numeric token type.  explicit check
	  for digits in exec.c instead.
	+ major overhaul of how vile's $state (formerly "environment")
	  variables are implemented.  new file, statevar.c, contains
	  support routines, each of which is responsible for both
	  getting and setting a single variable.  dispatch is handled
	  by new table set up by mktbls.c.  this eliminates two of
	  the big switches in eval.c.  the result pointer arg to
	  these routines should probably be a tbuff, which would allow
	  unlimited variable lengths.  (eval.c, mktbls.c)
	+ the code that runs vile &functions has become more table-driven
	  as well.  modetbl now contains information on the return
	  type of the functions, and the types of the arguments.  this
	  cleans up the per-function code somewhat.  (eval.c, mktbls.c)
	+ code for @interactive variables and &query function collapsed
	  to single new user_reply() routine.  (eval.c, statevar.c,
	  input.c)
	+ various other cleanup and name revisions in eval.c:  "user"
	  variables are now "temporary" variables, and "environment"
	  variables are now "state" variables.  utility routines (like
	  ltos(), i_ltoa(), stol()) renamed to render_xxx() to create
	  a string, and scan_xxx() to decode a string.
	+ collapsed the stenv() and set_variable() routines into a single
	  entrypoint useable from both exec.c and modes.c.
	+ split temp and state variable lookup from their evaluation,
	  so the lookup can be done in just one routine.  (eval.c)
	+ token evaluation (tokval()) now table driven.  i don't know
	  if it's much cleaner, but i think it's better.  it's certainly
	  different.  (no, modetbls is not involved, nor should it be. :-)
	+ minor change to HighlightFilter in filters/filters.rc to cause
	  it to not try and color [Special] buffers.
	+ quoting fix in macros/pic.rc
	+ supporting changes:  estruct.h, makefile.in, vile.hlp.

(tom) 990320 (p)
	+ add an install-rule to filters/makefile.wnt
	+ eliminate restriction on number of command-line arguments in winvile
	  (reported by Ed Henderson).
	+ make VILE_LIBDIR_PATH settable from the environment, as per
	  documentation (patch by Brendan O'Dea).
	+ add/use init_b_traits() function, to ensure that switching to a
	  buffer which was source'd while hidden does not copy bogus values
	  for the associated line pointers back to the window traits (fixes
	  a core dump reported by Paul Fox).
	+ modify addline(), bclear(), ifile() to prevent malloc/free from being
	  interrupted by 'working' mode.
	+ minor fixes to mail highlighting filter, to allow "To: " prefix
	  (reported by Paul Fox).
	> patches from Clark Morgan:
	+ modify home_path() to work around problem on VMS where
		$ vile ~/com/defs.com
	  does not work, nor does tab completion, e.g.,
		:e ~/com/d<TAB>
	  (the latter was also reported by Ed Henderson).
	+ vile restores original terminal width when it exits (mimics the eph
	  editor's behavior).
	+ added "-132" and "-80" command-line switches to set screen width from
	  command line.
	+ correct computation of prog_arg for VMS, which is used as part of the
	  command-line help message.
	+ modify definition of FOPEN_READ for VMS to allow shared reads from
	  files (reported by Ed Henderson, analysis by Clark Morgan).
	> patches from Paul Fox:
	+ revised macros.doc, touching all previously untouched parts.
	  it's now a little more vile-specific, and a little "tighter".
	+ rewrite strinc() in terms of strcmp()/strncmp(), rename.
	  (bind.c)
	+ converted confusing (to me) do/while() loops to simple while()
	  (search.c)
	+ collapsed keyboard polling code (fcntl version) to single place.
	  (termio.c)
	+ fixed imdying() to:  a) leave a core even if there's a problem
	  saving buffers, b) try all temp directories, rather than quitting
	  on first failure, c) try $TMPDIR first, and current directory
	  last, on all systems, d) warn user that files may be in current
	  directory.  future:  on write error, should try again in other
	  directories.  (file.c)
	+ fix bug where assigning BFEXEC in dofile() was tromping possibly
	  existing flags (like BFCHG, leading to loss of buffer changes)
	  (exec.c)
	+ revised/rewrote entabline/detabline algorithms.  entabline() no
	  longer needs to calle detabline() first.  (region.c)
	+ fixed return status of nextbuffer()/prevbuffer when in
	  noautobuffer mode.  previously did swbuffer to current buffer,
	  which succeeds.  now you can safely loop through the buffers, and
	  know when to stop.  (this makes the new example in macros.doc
	  work.) (buffer.c)
	+ rationalize comments, comment wording, and code grouping (basic.c
	  line.c buffer.c file.c edef.h eval.c bind.c random.c fences.c
	  insert.c search.c window.c word.c display.c main.c input.c)
	+ collapse updext_before()/updext_past() into single routine.
	  purely mechanical -- could perhaps be improved.  show keyboard
	  macro "[recording]" state on modelines (display.c)
	+ begin in state HEADER rather than state BODY (filters/mailfilt.l)
	+ add new &query function, to (eventually) replace interactive
	  @variables.  (eval.c)
	+ collapse starting/stopping of keyboard macro into single
	  function, which acts as toggle.  leave both key-bindings ( '^X-('
	  and '^X-)' ) but one is now redundant.  (input.c vile.hlp)
	+ changed sense, somewhat, of kbd and dot macro state variables:
	  now a two state boolean, rather than a three state.  well, i
	  think it's nicer.  (input.c line.c)
	+ simplify macbug code to take advantage of vararg-capable
	  mlforce() (eval.c exec.c)
	+ revised window grow/shrink algorithms (window.c)
	+ more logical variable naming/grouping (file.c edef.h select.c
	  npopen.c eval.c insert.c search.c display.c bind.c)
	+ change all BUG mlwrites to mlforce (file.c undo.c others)
	+ further encapsulate "crypting" knowledge -- create as ffdocrypt()
	  accessor for "ffcrypting".  (file.c ucrypt.c)
	+ renamed rewritten functions, minor algorithm changes (e.g.  use
	  castrealloc() rather than castalloc()/memcpy() (line.c, file.c)
	+ added lreplc() function, which can safely replace single
	  characters on a line.  (line.c)
	+ eliminated old "#ifdef BEFORE/#if NEVER/unused" code and
	  variables.  (buffer.c, file.c edef.h spawn.c)
	+ uniform use of tb_xxx prefix on TBUFFs.  (edef.h)
	+ removed $truth variable (eval.c)
	+ removed $ramsize variable (eval.c)
	+ guard against possible null pointer dereference of b_fname (eval.c)
	+ remove ENVFUNC ifdefs -- i think all our systems have them (eval.c
	  bind.c)
	+ removed OPT_AEDIT ifdefs.  they weren't protecting much.
	  (region.c opers.c)
	+ added more generic null TERM struct routines, deleted unneeded
	  screen-specific ones.  (termio.c ansi.c vmsvt.c x11.c tcap.c)
	+ hmmm.  should i even mention this one?  :-) (you guys should
	  clearly follow suit.) (version.c)
	+ minor supporting changes (proto.h estruct.h tags.c filec.c
	  w32reg.c menu.c cmdtbl modetbl1 tbuff.c history.c)
	+ comment cleanup, formatting, vestigial code and ifdef removal,
	  increased NSTRING/NPAT.  who needs powers of two?  (estruct.h)
	+ moved incremental search support def'ns to isearch.c (estruct.h
	  isearch.c)
	+ removed id.wing.net from suggested site list from README

 (tom) 990309 (o)
	+ rewrite logic of newwidth() and newheight() (Paul Fox).
	+ modify treatment of 'fillcol' mode so that a zero is interpreted to
	  use the 'wrapmargin' value, and negative values are, like
	  'wrapmargin', counted from the current right-margin (prompted by
	  discussion with Kuntal M Daftary).
	+ minor fixes for ti-filt.c (handle "\\," and terminfo entries without
	  aliases or descriptions).
	+ remove crypt-til operator; this would not work properly on portions
	  of a file.
	+ write ucrypt.c to use Unix crypt(1) if available.
	+ rename crypt.c, move it to filters as ecrypt.c, for building
	  standalone vile-crypt.  will be phased out.
	+ set "vilemode" for macros and procedure buffers, to simplify syntax
	  highlighting of internal buffers.
	+ modify syntax filters so that keyword classes and their instances
	  can be treated distinctly.
	+ correct missing backslash in QUOTDEFS in makefile.in
	+ review/simplified/corrected comment-prefixes and comments modes
	  in filters.rc
	+ correct logic of version_of() function, which did not ensure that
	  the text really looks like a VMS version specification.  From
	  a bug report by Clark Morgan, who said that this works:
		:e ../buf*.c     # look for buffer.c
	  but this doesn't:
		:e subdir/buf*.c
	  Workaround:
		:e [.subdir]buf*.c
	  After fixing version_of(), my fakevms driver processes this properly.
	+ update vile.hlp description of filter programs and renamed section to
	  "Syntax coloring" (patch by Paul Fox).
	> patches by Clark Morgan:
	+ only enable vtflash on hosts that support it (Unix, VMS).
	+ clarify vile/winvile build instructions when using MS tools.
	+ add $pid environment variable for VMS

 (tom) 990212 (n)
	+ increase size of underline cursor for OPT_ICURSOR in ntconio.c
	+ correct dcl-filt.l to handle inline comments
	+ add bash-specific keywords to sh.key (reported by Paul Fox).
	+ add missing assignment to save pre_op_dot in fences.c (reported by
	  Clark Morgan, from VC++ 6.0 warnings)
	+ correct check for return-value of open_region_filter(), which did
	  not look for abort of command, resulting in hanging while trying
	  to close a pipe that was not open (reported by Paul Fox).
	+ change cast in CF_CC_OFFSETOF_CASES to 'long', to accommodate SGI's
	  64-bit compiler.
	+ restore "perldo" cmdtbl entry, for compatibility (Paul Fox).
	+ relax iteration limit for complex fences a little, using new mode
	  fence-limit times the buffer length as the hard limit.  This is
	  still proportional to the buffer length, rather than allowing
	  geometric increase with the fences groups.
	+ add configure option --with-libdir-path to allow override of the
	  default $(libdir)/vile.  Make this alterable with new variable
	  $libdir-path.
	+ change install-directory for filter programs to $(libdir)/vile, to
	  avoid clutter (suggested by Paul Fox).
	+ modify some filters to avoid incrementing yytext since it may be an
	  array.
	+ add configure-check for state support in lex/flex, so we do not
	  try to compile with programs that will not succeed.
	+ correct limit-check in dname_to_dirnum(), missed a case when fixing
	  for 8.2l, which caused pictmode.rc to not read properly.
	> patches by Clark Morgan:
	+ correct codes for 8-bit PF1-PF4 in vmsvt.c
	+ update vile.hlp for vmsvt.c's function key definitions, as well as
	  a note about tilde-expansion on VMS.
	+ add vtflash mode, for tcap.c and vmsvt.c

 (tom) 990202 (m)
	+ suppress TTtypahead() call in sysmapped_c_avail() when we have made
	  characters available in mapungetc().  This fixes a problem where
	  type-ahead would get into the data copied from mapgetc_ungottenchars,
	  breaking arrow key interpretation on slow connections.  (This was
	  reported a few times since 971205, when the problem was introduced,
	  but is difficult to reproduce.  Reported/tested by Clark Morgan).
	+ implement mode mcolor, which lets user set the color of the
	  modelines.  The choices are the same as for visual-matches (request
	  by Han Leushuis <jgamleus@cs.uu.nl>).
	+ update 'doingsweep' in one place only, do_sweep(), to ensure that the
	  TTcursor() calls nest properly when a selection is aborted.
	+ add vt220 7- and 8-bit function key definitions to vmsvt.c (request
	  by Clark Morgan).
	+ removed a FIXME in termio.c for read_vms_tty's assignment to nibuf,
	  having confirmed that the document for the sys$qiow()'s read function
	  says the device-dependent data stores a count of terminator
	  characters (needed for VMS's equivalent to cbreak or cooked modes)
	  rather than data that vile should process (patch by Clark Morgan).
	+ prevent dobuf() from being interrupted by 'working' mode.

 (tom) 990126 (l)
	+ add "~elsewith" directive to simplify use of fences in vile macros.
	+ minor change to kbd_reply to allow abortc to be <control><space>,
	  though otherwise nulls are still ignored in that function (request by
	  Christian Lindig <lindig@ips.cs.tu-bs.de>)
	+ implement crude iteration-limit for complex fences to guard against
	  blowup in error-handling.
	+ correct/restore handling of keyboard interruption in complex fences
	+ add rules to filters/makefile.wnt so that if $(LEX) is set, the
	  build will use that for the lex/flex program and make the lex-based
	  filters.
	+ add yywrap() dummy function to filters.c to reduce dependency on libs.
	+ change casts in Member_Offset macro to long from int to avoid
	  compiler warnings on IRIX 6.x with 64-bit architecture (reported by
	  Steen Savstrup Kristensen <steen@saturn.emi.dtu.dk>).

 (tom) 990124 (k)
	+ modify VMS logic in ttopen to use "SYS$COMMAND" rather than "TT:"
	  since the latter does not work with the PIPE command added in VMS 7.x
	  to mimics unix cmdline pipe functionality.  Vile couldn't use this
	  command, though.  For example:
		$ pipe dir | vile
	  failed with an "illegal i/o function" error.  This change allows vile
	  to read from the pipe stream as well as retaining its ability to read
	  from a redirected stdin (patch by Clark Morgan).
	+ reset eofflag in inout_popen, since attribute_from_filter may
	  otherwise see the EOF from the previous file reading operation, e.g.,
	  if the file did not end with a newline.  Likewise set fileispipe,
	  just in case it would be needed.
	+ correct inconsistent spelling of cache variable in CF_TERMCAP_LIBS,
	  which caused the configure script to ignore a predefined termcap or
	  terminfo library.
	+ correct order of -lXmu vs -lXext in Athena-widget configure test.
	+ resync configure scripts against autoconf 2.13 + patches
	+ modify is_vms_pathname(), is_version() to accept a '.' to delimit
	  version number (reported by Clark Morgan).
	+ implement $sres, i.e., 80/132 column switching for vmsvt.c (patch
	  by Clark Morgan).
	+ update version number for Vileserv, missed in 8.2j
	+ rename some operators that accept a range to end with "-til", for
	  consistency (reported by Paul Fox, Clark Morgan).
	+ other improvements to perlfilt.l, e.g., underscores in numbers,
	  a POD-format,, suggested by Brendan O'Dea.
	+ simplify HighlightFilter macro - there is no need to report if no
	  filter exists, after all.  This required renaming nroffmode to nrmode
	  and pascalmode to pasmode (adapted from example by Brendan O'Dea).
	+ apply "group" feature to complex fences, i.e., fence-if, ...,
	  fence-fi.  This allows vile to match both while{...} and if{...}
	  blocks, for a test-case by Kuntal M Daftary.  It works, but is very
	  slow when choosing between patterns that are ambiguous, e.g., the
	  different groups of patterns all end with a "}".
	+ add "group" feature to majormodes, which allows user to define new
	  instances of certain submodes.
	+ ensure GCC_UNUSED is defined in filters.h for platforms that do not
	  use the configure script (reported by Brian Moore).
	+ minor fix to listvalueset() to avoid getting a double-newline.
	+ improve makefilt.l, making it read keyword file.
	+ add latexflt.l to install rule; various improvements to that
	  filter.
	+ improved perlfilt.l symbol table and symbol-parsing based on
	  vile-pfilt.pl (John P Cavanaugh <cavanaug@elwom4.ecn.purdue.edu>).

 (tom) 981229 (j)
	+ modify majormode preamble logic to set ignorecase if the majormode
	  sets ignorecase.
	+ modify tcap.c to use no_color_video capability to avoid overwriting
	  colors with nonfunctioning video attributes.
	+ modify html syntax filter to handle embedded JavaScript.
	+ add filters for ada, awk, DOS batchfile, VAX DCL, Java, JavsScript,
	  mail, nroff, sql, tcl/tk, termcap, terminfo, yacc
	+ correct dependencies in filters/makefile.in for keywords files, which
	  live in $(srcdir) (report by Brendan O'Dea, patch by Kevin Buettner).
	+ workaround a parsing problem in lex-filt.l so that STATES and PATTERN
	  can be distinguished.
	+ various fixes to "e!", which did not prompt or repaint properly if
	  the current buffer was from standard input, the unnamed buffer, or a
	  temporary buffer.
	+ correct a missing pointer increment in rewritten c-filt.c, which
	  caused an infinite loop in some cases after '#'.
	+ correct a couple of places where missing '\' character in lex files
	  was interpreted as \a rather than \\a.
	+ correct comparison in is_keyword (filters.c) which caused html
	  keywords to not be highlighted.
	+ add csh mode to filters.rc

 (tom) 981222 (i)
	+ modify expand_pattern() to handle Unix-style wildcards on VMS (reported
	  by Clark Morgan).
	+ add configure option --with-fakevms, for testing VMS port.
	+ change Cpp keyword in vile-c-filt to Preproc, for consistency.
	+ move filter programs to filters subdirectory.	 Split-out the keyfile
	  and symbol management to new file filters.c, and used that to
	  enhance the original vile-c-filt so it no longer has line-length
	  limitations.  Added lex-based filters for cwebx, html, latex, make,
	  perl, sh and vile macros.
	+ prevent repeated call to free from old_namebst from memory-leak fix
	  in 8.2g
	+ add directives ~with and ~endwith, to simplify majormode expressions.
	+ minor refinement to gui_isprint()
	> patches by Clark Morgan:
	+ add pattern to finderr.c to use with DEC C compilers.
	+ modify file globbing so that vile can read these two files from the
	  command line (it already did read them via ":e"):
		../readme or ~/vile.rc
	+ documentation updates for README, README.VMS and README.PC

 (tom) 981214 (h)
	+ simplify some trace-code using new functions visible_buff, lp_visible.
	+ add trace-code for fences.c
	+ correct check for zero-sized window, from 8.2e, which made it
	  impossible to switch to a window with exactly one line (patch by
	  Kevin Buettner).
	> patches by Clark Morgan:
	+ modify ffsize() for VMS so that it returns a 0 rather than -1 if a
	  call to 'fstat()' fails to get the size.  The file exists, so a zero
	  makes vile read if via slowreadf, which works.
	+ modify estruct.h to build using descrip.mms alone: the vmsbuild.com
	  script defines logical "SYS" so that <sys/types.h> can be included,
	  but the descrip.mms script does not do that.
	+ update ifdef's to make vile build with VAX C (the 8.0b changes added
	  CC_CANNOT_INIT_UNIONS, which is needed for that compiler).
	+ document problem with DEC C, which causes vile to update revision
	  dates on files even without writing the file.

 (tom) 981201 (g)
	+ fix minor memory-leaks (main.c, bind.c, select.c)
	+ modify finderr.c to use the given filename and ignore the associated
	  buffer name when looking for matching buffers in case we have multiple
	  files with similar names.  Modify getfile() to check first if the
	  given parameter is a filename, rather than preferring match on a
	  buffer name.
	+ optimize tb_bappend and tb_sappend using memcpy rather than loop on
	  tb_put.
	+ add checks for empty/missing filename to dobuf() and getfile() and
	  menu.c to prevent core dump when using "Edit .vilerc" menu entry and
	  no .vilerc exists (reported by John Gotts <jgotts@engin.umich.edu>).
	+ modify key-mappings in vmsvt.c to avoid defining VT52-style sequences,
	  which introduce the possibility of confusing <esc>A for an arrow
	  key (patch by Clark Morgan).
	+ restore part of logic in C/C++ comment formatting modified in 8.0p;
	  which introduced the undesired behavior of not formatting the first
	  line of a comment (patch by Clark Morgan).
	+ implement VMS-specific modes for record-format and record-size
	  (initiated/tested by Clark Morgan).
	+ change default search pattern for VMS to include only current
	  versions of each file, unless mode "allversions" is set (request by
	  Clark Morgan).

 (tom) 981124 (f)
	+ updated CF_IMAKE_CFLAGS macro for configure script, fixes a problem
	  configuring with --srcdir.
	+ updated config.guess, config.sub from Lynx, adds cases for os390 and
	  clix.
	+ update documentation to indicate that vile has been tested on NT 3.51
	  (patch by Clark Morgan).
	+ correct path separator in default $startup-path for VMS, which would
	  prevent vile from reading vile.rc from a system directory (patch by
	  Clark Morgan).
	+ remove definitions for off_t, making ffsize() return B_COUNT.
	+ modify fileio.c to trace return value from ffaccess(), ffexists(),
	  ffronly(), ffropen() and ffsize().
	+ modify vmsvt.c to support video attributes bold, underline and
	  flash (initiated/tested by Clark Morgan).
	> new version of vileget from J Chris Coppick:
	+ Vileserv now checks for the existence of ~/.vilesock, but not for the
	  file type.  May be more portable.
	+ Vileget has a -w option that causes it to wait until the given
	  file(s) are written by xvile before it exits.  This could be used in
	  conjunction with a mail program for instance.  To use this option,
	  you have to set up a write-hook procedure.  See the doc for vileget.

 (tom) 981114 (e)
	+ corrected TTcursor logic interaction with xterm-mouse so the cursor
	  does not remain invisible after extending a selection.
	+ modify so that xvile can be build with --disable-extensions
	+ correct ifdef for SYS_VMS which was hiding ifdefs for setsid
	+ add sinstall.sh script to fix perl-path when installing scripts such
	  as vileget.
	+ document 'sentences' mode in vile.hlp (patch by Clark Morgan).
	+ correct logic in previous-sentence, which checked for end-of-line
	  state rather than empty-line in one place, causing the function to
	  return the end of the previous line when starting on leading
	  whitespace rather than the actual beginning of the sentence (reported
	  by Clark Morgan).
	+ add "~hidden" macro directive, to suppress 'update()' logic and
	  status check for the current macro line.
	+ add check for zero-sized window to 'update()' function, to guard
	  against attempts to display an incomplete window as a result of
	  a read-hook (reported by Sean Ahern).
	+ add directory browser extension for vile written with the perl interface
	  (from Kuntal M Daftary).
	+ add Vileserv.pm, vileget perl scripts, which give you the ability to
	  send edit requests to a running Vile, like gnuserv does for Emacs
	  (From J Chris Coppick <jchris@znet.com>)
	+ correct parameter passed to 'access()' function to use symbols.  The
	  ffaccess() function relied on coincidence between values for
	  FL_EXECABLE, FL_WRITEABLE, FL_READABLE and X_OK, W_OK, R_OK, which
	  did not hold for djgpp.  If all copies of vile.hlp were readonly, it
	  was not "found" (reported by George.Young.gryoung@nt.com, this
	  fixes a similar problem reported by Paul Laub <P_Laub@fccc.edu>
	  stating that readonly-on-readonly did not work on DOS).

 (tom) 981112 (d)
	+ correct/simplify handling of string literals in vile-c-filt, which did
	  not treat single quotes and double quotes symmetrically.
	+ correct an error in vile-c-filt which caused the ending quote of
	  a string to be ignored if it appeared in the first column.
	+ add new terminal function TTcursor, to disable cursor display during
	  screen updates and during multimotion.  This makes vile display
	  better on FTP Software's TNVTPlus wyse50 emulation.
	+ restore visual-matches after attribute-from-filter.

 (tom) 981110 (c)
	+ implement a new macro directive, "~local" which saves the current
	  value of $variables and %variables, restoring them at the end of the
	  buffer/macro which is being executed.  This does not (yet) apply to
	  mode values.
	+ rename some functions to make them easier to grep (token to get_token,
	  macarg to mac_tokval, macliteralarg to mac_literalarg).
	+ free old attributes in attribute_from_filter() before adding new ones.
	+ correct an off-by-one error in attribute_from_filter() which caused
	  the second and following attributes to be shifted by one position.
	+ change patmatch to a TBUFF to simplify buffer-overrun checks, fix an
	  off-by-one error in 'savematch()' which caused a core dump.
	+ modify so that Perl interpreter processes END blocks and global
	  destructors when vile exits (patch by Brendan O'Dea).
	+ updated example for C filter to use attribute-from-filter (patch by
	  Clark Morgan).


 (tom) 981106 (b)
	+ add new command attribute-from-filter.
	+ modify allocation of hypercmd value in select.c to use TBUFF's, fixing
	  a use of uninitialized memory.
	+ disable keyboard translation in Motif version of xvile (Gary Ross).
	> patches by Clark Morgan:
	+ correct key translation in ntwinio.c so that pressing '^' (i.e.,
	  shift+6) will no longer cause winvile to flash/beep.
	+ README.PC updated to talk about creation and location of startup
	  file.
	+ win32 versions of editor now support the $title env var (users can
	  now set and display title from a macro).  appropriate documentation
	  updated.
	+ macros/doc and vile.hlp tweaked to show that $title is set using env
	  var syntax.  although, surprisingly, the original example syntax
	  works (i.e.,  set title "string").  i'm surprised because this is yet
	  another undocumented aspect of the macro language--env vars are
	  available via the set command.  i'm not sure I want to document this
	  feature--there's quite a bit to digest in this language as it is,
	  now.
	+ the my_cd_action stored procedure example in vile.hlp has been
	  changed to my-cd-action to prevent users from being surprised that
	  '_' is a command terminator.
	+ makefile.wnt modified so that the ole-automation version of winvile
	  will suck up the new winvile icon (the linker won't accept multiple
	  .RES files).
	+ document environment variables in vile man-page.

 (tom) 981101 (a)
	+ add icon for winvile (V-eyes 'pumpkin').
	+ corrections to hilite.pl and syntax.pl, so it works for C comments
	  (patch by Ryan Murray).
	+ modify tokval() function to eliminate fixed-buffer limits for
	  '@' prompts and '<' buffer-variables (reported by Clark Morgan).
	+ add 'undoable' mode, as a performance convenience for filtering.
	  Note that this purges the undo stack, because it suppresses update
	  of the undo stack while changes may occur to the buffer.  Also,
	  during filtering it prevents vile from retaining the buffer's contents
	  in the kill buffer (prompted by a report by Holger Kummert
	  <kummert@nentec.de>).
	+ minor fixes for memory-leaks & test code for that (main.c, fileio.c,
	  modes.c)
	+ modify dfputli and dfputi to output unsigned values to use in $pid
	  conversion.
	+ correct storeproc() so that it detects if tokens follow a macro's
	  name on lines read from source'd file.  These tokens are used for
	  annotating macros in describe-bindings (report by Clark Morgan, patch
	  by Brendan O'Dea).
	> patches by Clark Morgan:
	+ modify so that preceding :!<cmd> with an argument suppresses the
	  [Press return to continue] prompt for winvile,
	+ update/expand macros.doc
	+ correct a limit-check when returning a buffer variable (eval.c).
	+ convert $pid to unsigned hex rather than decimal on Win32.
	+ make it possible to create vile-perl-api.doc on a win32 host.
	+ add detail to README.PC with respect to building embedded perl.

Changes for vile 8.2 (released Sun Oct 25, 1998)

 (tom) 981025 (c)
	+ check for null top_widget in x_close; other xvile crashes on VMS
	  if I simply run xvile -"V".

 (tom) 981024 (b)
	+ modify glob-expansion to always recognize "~" as a synonym for
	  $HOME if Unix-style passwd interface does not return anything
	  useful (adapted from a patch by Ed Henderson).
	+ rename vile.spec to vile-8.1.spec, change configure option to use
	  Athena widgets so xvile is built with menu support (Radek Liboska).
	  ** This is not an 8.3 filename, but is used only on Linux.
	+ modify to use X11R6 input method and dead key support (patch by
	  Stanislav Meduna <stano@trillian.eunet.sk>).
	+ correct click-timeout value for xvile, overlooked in 8.1u (reported
	  by Ryan Murray).
	+ minor fixes to menu.c so that xvile builds on OpenVMS 7.2 with DEC C.
	> patches by Clark Morgan (mostly for visvile):
	+ modified the w32 versions of vile so that during clipboard copy
	  operations any character, c, in the following range:
	      c > '~' && c >= val(printing-low) && c <= val(printing-high)
	  is not translated to a hex representation (\xdd).
	  I didn't use any other criteria (e.g., setlocale()) because I
	  received no feedback from the person reporting the bug.
	  Consequently, I don't know what particular locale value I should test
	  (e.g., locale not "C" and not "" ??).  I also explored whether or not
	  the w32 paste operations should similarly not translate data when
	  copying from the clipboard.  For console vile, translation appears to
	  be useful and necessary regardless of the printing-low or
	  printing-high settings.  For winvile, translation is not strictly
	  necessary because when printing-low is >= 128 and printing-high is <=
	  255, winvile properly renders "highbit" ansi characters, such as
	  these:
	      opening quote
	      closing quote
	      ellipsis
	      trademark
	      copyright
	      etc.
	  However, the rendering of each highbit character is so small that the
	  resultant text is extremely difficult to read.  Consequently, I
	  elected to continue my small set of translations (refer to the "map"
	  array in w32cbrd.c for a complete list).
	  (from report by Jukka Keto <Jukka.Keto@kati.fi>)
	+ extended/updated README.PC
	+ add explanation of filterregion() portability (spawn.c)
	+ modify in conjunction with visvile, to have the ability to redirect
	  user-specified keystrokes to DevStudio.  For example, from winvile
	  you can start the debugger, step the debugger, start a build, etc.  I
	  think visvile is pretty useful now.  There's one more wrinkle I can
	  envision adding at a later date (see visvile/readme.txt for details),
	  but this feature is not a high priority (to _me_ :-) ).  The
	  documentation of the redirected key feature is included in
	  doc/visvile.doc .
	+ add a new file called visvile/visvile.dsm (a collection of DevStudio
	  macros).
	+ added an environment variable called $cfgopts to the editor.  From
	  the help file:
		$cfgopts  comma-delimited list of "interesting" compiled options
			  (read only).  Currently tracked options include:
		perl    -> editor includes perl interpreter
		oleauto -> editor supports OLE automation.

 (tom) 981008 (a)
	+ add logic to ins_anytime() to prevent recursion or use in minibuffer,
	  e.g., when pressing the insert-key.
	+ correct an ifdef for SYS_VMS in main.c from 8.0s which left other
	  platforms using vfork (reported by Ryan Murray and Billy Little
	  <billy_little@hso.link.com> ).

Changes for vile 8.1 (released Fri Oct 02, 1998)

 (tom) 981002 (w)
	+ modify xterm mouse-click handling so that clicking on the left margin
	  when the window is right-shifted always shifts it left.  Before, if
	  a tab fell on the left margin, the effective column was still in the
	  visible part of the window.
	+ back out redundant limit-check in display.c from 8.0u that caused
	  an extra cell to be highlighted when doing full-line selection.

 (tom) 981001 (v)
	+ updated install-rules for perl scripts.
	+ set was_clean flag in all instances of ttclean(), fixing a problem
	  where TTkopen() was not invoked on return from :sh command (reported
	  by Ryan Murray).
	+ strip trailing ^M's from hilite.pl and syntax.pl, add those to the
	  list of Perl scripts in vile.hlp and makefiles (report/patch by
	  Clark Morgan).
	+ pass-through $(OPT) value in recursive-make in makefile.wnt (patch
	  by Clark Morgan).
	+ move logic to reset regionshape out of multimotion, to main.c's loop(),
	  since commands such as "y2q<some motion>q" would otherwise be yanked
	  in EXACT mode (reported by Ed Henderson).

 (tom) 980930 (u)
	+ modify :ww command to ignore readonly buffers (reported by Chris
	  Sherman).
	+ add sample Redhat RPM spec file "vile.spec" (from Radek Liboska
	  <liboska@uochb.cas.cz>).
	+ add code to allow user to color Motif pulldown menus, ifdef'd with
	  OPT_MENUS_COLORED, normally off since I prefer the toolkit's color
	  scheme (patch by Mark D Robinson <Mark.D.Robinson@farn-wts.uk.Sun.COM>)
	+ modify multimotion to reset regionshape to the original value on
	  return after a selection is made, or to EXACT if the selection is
	  aborted.  This corrects a case where performing quoted fullline
	  motion would cause a succeeding "cw" command to affect the whole line
	  (reported by Yuri Antonik <ya@islc.minsk.by>).
	+ add syntax.pl, hilite.pl, which support syntax highlighting for perl,
	  c and tcl (Kuntal M Daftary).
	+ modify os2vio.c so that when running vile in fullscreen mode, bright
	  colors are used rather than blinking colors.
	+ undo incorrect use of VFCOL mask from my 7.2q change, which caused
	  the pscreen array to record VAREV attributes on shifted-in rows.
	+ minor optimization in vtset function to perform better on very long
	  lines.
	+ modify x11.c to give xvile CDE-like quad-click support.  CDE's
	  dtterms select the entire window (including scrollback) on a quad
	  click.  Increased the timeout slightly to be able to repeatedly
	  select this (patch by Ryan Murray).
	+ documentation updates for visvile (patch by Clark Morgan).
	+ fix a bug that prevented -font option from working on winvile
	  (patch by Clark Morgan).

 (tom) 980925 (t)
	+ correct two errors in AdjustedWidth and AdjustedHeight, making
	  winvile resize properly when maximized, as well as not jumping when
	  resizing after changing fontsize.
	+ keep caret in winvile invisible until ttrow,ttcol point to a legal
	  position, i.e., until initialization is complete.

 (tom) 980922 (s)
	+ correct caret position and size in winvile after changing fontsize.
	+ modify putctext() function to support setv of $word, $identifier,
	  $qidentifier and $pathname.
	+ rename "$wline" to "$wlines", add "$bchars" and "$blines" to return
	  the number of characters and lines in the current buffer,
	  respectively (request by Paul Askounis <askounis@sgi.com>).
	+ modify select.c to allow de-attributing attributed regions.  It takes
	  care of the following scenarios now:
	  - Non-overlapping regions were decided earlier on the basis on just
	    line offsets and as a result worked correctly only for FULLLINE
	    regions.  Now they are decided based on line and column offsets and
	    so work correctly for all three region types.
	  - when de-attributing a region, partially or completely overlapping
	    with a previously attributed region, the whole of previous region
	    was de-attributed instead of only the overlapping portion.  Now
	    only the overlapping portion is de-attributed as long as we don't
	    have any RECTANGLE regions.  The fix still does not include
	    RECTANGLE regions.
	  (patch by Kuntal M Daftary)
	+ modify c-filt.c to allow color and text attributes simultaneously
	  (patch by Gary Ross <ross@Ultimatech.COM>)
	+ add watch.obj to descrip.mms and vmsbuild.com; change ifdef's for
	  VMS consistently to SYS_VMS and comment-out Motif xvile definitions
	  in descrip.mms in favor of X toolkit (reported by Andy Harper).
	  This may make xvile build with DEC C, however Andy reports also that
	  his library lacks XmCreatePullDownWindow, which is not simple to fix.

 (kev) 980919 (r)
	+ buffer.c (zotbuf): Kill any fake windows associated with
	  the buffer we're about to kill.
	+ select.c (hyperspray): Only execute the first found hypertext
	  command.
	+ window.c (delwp): Added support for deleting fake windows.
	  (push_fake_win, pop_fake_win): Removed #if 0'd out code.
	+ x11.c (is_color_cursor):  Added this field back to
	  TextWindowRec; Also added back code to initialize it in
	  x_preparse_args() and test it in flush_line().  Without this
	  code in place, non-color cursors will not blink properly
	  when they are within selections.  [This was removed in
	  vile-7.3w.  We should address the reasons for removing this
	  code in some other way.]

 (tom) 980910 (q)
	+ correct parenthesis for test of F4 change in 8.0l (winvile.c)
	+ modify so that xvile builds with --disable-shell (eval.c).
	+ correct off-by-one in scrollbar position for winvile.
	+ correct computation in AdjustResizing function so that starting a
	  window resizing does not change the initial window size (ntwinio.c).
	+ improved ":!command" for winvile, by creating a transient console
	  which closes when the user presses any key (patch by Clark Morgan).

 (tom) 980908 (p)
	+ modify attribute rendition in win32 drivers (ntconio.c, ntwinio.c)
	  to make highlighting work with colored text by reversing fg/bg.
	+ modify colors in winvile to make lightgray distinct from gray
	  (reported by Clark Morgan).
	+ further modify shell_complete() to continue splitting command lines
	  on blanks, e.g., ^X!command did not do filename completion just like
	  :!command.
	+ minor lint fixes, e.g,. signed/unsigned values (buffer.c, input.c).
	> patches by Clark Morgan (mostly for visvile):
	+ implement logic to return $font value on winvile.
	+ simplified some expressions in vile's comment-formatter to make it
	  format C++ comments.
	+ if visvile disabled, no other dialog options are editable
	+ added more document type checking to avoid occasionally opening such
	  things as dialog box resource scripts.
	+ implemented "CWD set from opened document's path" option
	+ implemented "Write all modified buffers to disk prior to build"
	  option.  This feature doesn't work as well as it could due to a
	  DevStudio (v5) bug.  Refer to ../doc/visvile.doc for further details.
	+ implemented "Build log -> errbuf if build reports errs/warnings"
	  option.

 (tom) 980903 (o)
	+ correct 8.0n change for highlighting, fixing an off-by-one error in
	  visual-matches (reported by Alex Wetmore).
	+ remove SetCursor calls from ntwinio.c, since they obstruct WinNT from
	  showing the resize-cursor, as well as causing the cursor to flicker
	  around the window border.
	> patches by Clark Morgan:
	+ add the ability to set winvile's font from the command line or via
	  the environment variable "$font" (a la xvile).
	+ modify OLE automation registration to accept a font specification,
	  making it possible to configure both the font and screen geometry of
	  future instances of winvile OLE automation servers.
	+ remove some compiler warnings in ntwinio.c and correct the OLE
	  registration logic for the "-geometry" switch (file w32reg.c).

 (tom) 980902 (n)
	+ modify updattrs function so that video attributes applied to tabs and
	  other nonprinting characters will paint all of the cells used to
	  display those characters (request by Richar A Ward).
	+ modify win32 drivers (ntconio.c and ntwinio.c) to make visual-matches
	  override syntax highlighting (reported by Clark Morgan).
	+ correct unstacking behavior for next-tags as per original request.
	+ modify shell_complete() function, which is used in both normal
	  filename completion, and in completing shell commands so that for at
	  least the former case it will handle filenames with embedded blanks
	  (analysis by Rick Sladkey <jrs@foliage.com>).

 (tom) 980901 (m)
	+ add a check to keep initial TTkopen from trashing the command-line
	  help or version (termio.c).
	+ implement token-type for macro label linenumber, e.g., tokens
	  beginning with an '*'.
	+ modify behavior of next-tags so that continued matches do not push
	  the tags stack, but remain at the same level as the initial match
	  (requed by Ed Henderson).
	+ correct typo in change to imdying for the non-Unix case (patch by
	  Clark Morgan).

 (tom) 980831 (l)
	+ modify dbgwrite() message to show how to get out of the loop, since
	  more than one person has thought vile is hung when it is awaiting
	  a ^G after reporting a keyboard problem.
	+ modify imdying() function to search for a temp-directory, preferring
	  $TMPDIR, /var/tmp and /usr/tmp over /tmp.  Lengthened cmd buffer in
	  that function since it was too small.  (reported by Duncan Barclay
	  <dmlb@ragnet.demon.co.uk>).
	+ correct logic for dragging scrollbar thumb in winvile which also
	  moved cursor position unnecessarily (reported by Ed Henderson).
	+ correct handling of Alt-F4 in winvile, which did not close the window
	  because it was hidden by logic to support Win32 key modifiers
	  (reported by Clark Morgan).
	+ correct rendering of color 8 in winvile, which was black rather than
	  gray (reported by Clark Morgan).
	+ add gui_isprint() function to x11.c to test for characters which are
	  nonprinting in xvile, override printing-low and printing-high modes
	  to keep, for example, \80 to \A0 in printable form (main.c, x11.c)
	+ added a TTkopen call to ttunclean to match the TTkclose in ttclean,
	  fixes a problem where arrow keys did not work in the termcap version
	  after a :sh command (reported by Ryan Murray).
	+ modify configure script tests for termcap/terminfo libraries to allow
	  $LIBS to have the corresponding libraries (for Ryan Murray, who wants
	  to override the check for -lcurses).
	+ correct handling of configure --without-perl, which still tried to
	  use perl (reported by Ryan Murray).
	+ add autoconf macro CF_PROG_PERL, based on macro from Brendan O'Dea.
	+ remove x_quit function, using normal imdying function to handle
	  SIGHUP and SIGTERM for xvile (reported by Shawn Halpenny).
	> patches by Clark Morgan:
	+ remove spurious rumor in doc/visvile.doc
	+ winvile shows file name in title bar
	+ winvile ole automation server now catches bogus command line
	  arguments before attempting to process -Or switch.

 (tom) 980827 (k)
	+ add gui_version() function for winvile, to handle -V option (reported
	  by Clark Morgan).
	+ set flags for bminip and wminip so that all control characters except
	  for newline are echoed as in list-mode (display.c, window.c).
	+ correct rendering of termcap color while highlight-selection is
	  active (tcap.c)
	+ corrected logic of '<' register so it captures both calls on TTgetc
	  in map.c, otherwise it missed the 'M' in xterm mouse clicks.
	+ revise xterm mouse code to support movement of modelines by
	  "dragging" button 1, and selection/extension with buttons 1 and 3.
	  Integrated with multimotion() function (select.c, tcap.c).
	+ fix a couple of memory leaks
	> patches by Clark Morgan:
	+ adds _some_ winvile integration to DevStudio Version 5.  In
	  particular, this patch creates a component called visvile.dll, which
	  is a DevStudio-compatible add-in that invokes an OLE-compatible
	  version of winvile when editing/browsing text/source documents.
	  Visvile.dll, a work in progress, is heavily based on visvim.dll.
	  Full documentation is included in the new file doc/visvile.doc.
	+ add InsertMode and IsMinimized functions for OLE interface.
	+ remove unneeded assert's (winreg.c).
	+ always set force-console mode for Win95 (main.c).
	+ add command-line options to winvile to support OLE (ntwinio.c).

 (tom) 980816 (j)

	+ implement a simple usage/popup for winvile.
	+ correct a problem with cursor-droppings in winvile when the mouse
	  is clicked on the modeline.
	+ implement scrollbars for winvile (ntwinio.c)
	> patches by Clark Morgan:
	+ changes to allow winvile to be built as an OLE automation server.
	  Included with this patch are several new files, including one called
	  doc/oleauto.doc, which describes the build process and the relevant
	  server options/features.

 (tom) 980727 (i)
	+ modify makefile.djg to use -f option of rm, to work with djgpp 2.x
	+ updated dependencies in makefile.wnt (patch by Clark Morgan).
	+ restore old functionality for win32 ^X-!  (see 8.0c), but make a
	  special check for its use in getting directory listings to avoid
	  lockup with Thompson Toolkit Shell (patch by Clark Morgan).
	+ change "%u" in lsprintf call in w32cbrd.c to "%d", fixes _snprintf
	  change in 8.0h (reported by Clark Morgan).

 (tom) 980726 (h)
	+ updated config.guess, config.sub based on automake 1.3.
	+ combine some logic in file.c with new function strip_if_dosmode().
	+ correct typo in perl.xs from 8.0g
	+ change win32 _snprintf calls to lsprintf, to build with Borland C++.
	+ modify makefile.wnt to build with Perl 5.004, which is missing a
	  global for 'rs' on win32 (patch by Clark Morgan, analysis by Kevin).
	+ modified Clark's change so that the Win32-specific keycodes are returned
	  only when combined with key-modifiers (shift/alt/ctrl) that are specific
	  to Win32.
	+ mods to cause apropos and show-bindings to display proper binding
	  strings for the Win32 clipboard-related features.  Also, modified
	  ntconio to support noticed that winvile allows the user to sweep out
	  a rectangular region when a control key is pressed during mouse-based
	  text selection as in winvile, and documented in vile.hlp (patch by
	  Clark Morgan).
	+ correct message in win32 clipboard paste reporting the number of
	  bytes transferred to the clipboard (patch by Clark Morgan).
	+ updated makefile.blc, modified ifdefs to build with with Borland C++
	  5.02 (patch by Ryan Murray <rmurray@cyberhqz.com>).
	+ rename update_scrollbar to gui_update_scrollbar as part of ongoing
	  work on scrollbars for winvile.
	+ move autoconf tests for OpenLook and Motif libraries into aclocal.m4,
	  for reuse in other applications (e.g., xterm).

 (kev) 980725 (g)
	+ perl.xs (incgv, rs, ofslen, ofs, ors, orslen): Added PL_ prefix
	  to these for perl5.005.  Defined these in terms of the old
	  non-prefixed names for older versions of perl5.

 (tom) 980717 (f)
	+ corrected return-value of do_a_submode(), which was hiding a problem
	  in the call on new_regexval() from set_mode_value().
	+ correction to fences-begin and fences-end logic, to account for the
	  size of the matched text when doing a reverse sweep.  Only one
	  character from fences-end was selected, so that deleting a C-style
	  comment would leave a '/' (reported by Clark Morgan).
	+ add a couple of null-pointer checks in modes.c, to fix a case
	  when 'comments' submode is not initialized.
	+ implement previous-buffer command (requested by Quang Ngo
	  <quang@usa.net>).
	+ modify doindent() to adjust dot to point to the same text on exit as
	  it did on entry.  This fixes an instance of autoindent in cmode where
	  inserting a right-brace character at the wrapmargin caused the brace
	  to be inserted _before_ the wrapped word (reported by Michel Oey
	  <michel@cs.vu.nl>).
	+ corrected missing brackets in configure.in that caused --with-scr=xm
	  to be misinterpreted.
	+ modify win32 clipboard support to enable the copying of an arbitrary
	  region or named register to the windows clipboard (patch by Clark
	  Morgan).

 (tom) 980710 (e)
	+ correct recompilation of [Error Expressions], by adding a check if
	  the buffer is marked as changed, or if the number of lines in it
	  has changed.  If [Error Expressions] was popped up to view its
	  contents, that worked, but otherwise (e.g., in .vilerc), it did not
	  trigger the recompile (reported by Brian Moore).
	+ change winvile -geometry parameter to COLSxROWS, for consistency with
	  X Window applications (e.g., xterm), and documented in vile.hlp.
	+ correct parsing of line-specification when a leading ',' is used,
	  e.g., ":,$d" (reported by hymie! <hymie@lactose.smart.net>).
	+ documentation updates (patch by Clark Morgan).
	+ modify logic in tags.c so that tags completion works when some of the
	  tags files are missing (patch by Clark Morgan).

 (tom) 980708 (d)
	+ correct offset for ending null in kbd_string(), which was beyond
	  buffer limit - bug from 7.3f (patch by Chris Sherman
	  <sherman@unx.sas.com>).
	+ implement -geometry command-line option for winvile, and corresponding
	  modifiable $pagelen and $pagewid values.
	+ modify configure script to accept --with-screen=xaw and
	  --with-screen=xm, i.e., lowercase screen values (reported by Ryan
	  Murray <rmurray@glenvan.glenayre.com>).
	+ modify winvile to read stdin when there's data available, e.g.,
	  dir|winvile.  Tested on Win95 _and_ NT (patch by Clark Morgan).

 (tom) 980703 (c)
	+ remove spurious 'void' in perl.xs which caused items to be miscounted
	  (report by Kuntal M Daftary, patch by Kevin Buettner).
	+ shorten identifiers to no more than 31 characters (reported by
	  Graeme Miller).
	> patches by Clark Morgan:
	+ fix for a problem reported by Paul Fox:  when a dos box has scroll
	  bars (window size smaller than buffer size), then :!<dir> displays
	  its output in a switched screen context that the user can't examine.
	  This applies to console vile only (winvile has much worse problems in
	  the same scenario :-).
	+ changes to make ^X-!  use the same code path as filter-region and
	  read-pipe when the host is win32-based.
	+ implement paste-from-clipboard for win32, bound to Shift+Insert
	+ add a new documentation file (doc/w32modes.doc) that describes the
	  optimum settings for win32 modes when the host OS is not NT4.

 (tom) 980702 (b)
	+ change highlighting rule in vile-c-filt to highlight only the
	  "#" and keyword on preprocessor lines (patch by Paul Fox).
	+ dynamically allocate pm_buffer array in menu.c, eliminating limit on
	  number of menu items (reported by William Yuan
	  <yuan@bucket.its.unimelb.edu.au>).
	+ new configure macro CF_CC_INIT_UNIONS checks for compilers that
	  cannot initialize a union, e.g, a K&R compiler using unproto.
	  Ifdef'd union in CMDFUNC to work in that case.
	+ correct spelling of EXTRA_LOAD_FLAGS in CF_IMAKE_CFLAGS configure
	  macro.
	+ set VIEWOK flag on stored-procedure buffers, otherwise they cannot
	  be used in buffers set "view" (reported by Larry Gensch).
	+ rename character-type names to use "vl" prefix, to avoid conflict
	  with ctype.h names on Digital Unix 5.0 (patch by Larry Gensch).
	+ note that $progname may be "winvile" (patch by Clark Morgan).
	+ modify configure.in and makefile.in so that $(datadir)/perl is not
	  created unless vile is configured --with-perl (patch by Brendan
	  O'Dea).
	+ require perl 5.004 since the XS interface is dependent upon tied file
	  handles, which are not completely implemented in 5.003 (request by
	  Brendan O'Dea).

 (kev) 980606 (a)
	+ perl.xs (svrs): No longer a global static variable.
	  (perl_init): Don't initialize svrs here anymore.  Also, stifle
	  compiler warning.
	  (READLINE): Declare and initialize svrs here, but only for
	  platforms on which it's broken.
	  (perl_default_region, do_perl_cmd, set_region): Adjust r_size
	  field in region returned by getregion to account for buffers
	  which don't have a trailing newline.
	  (newVBrv): call gv_IOadd() in order to be able to use $. with
	  the filehandles.
	  (newVBrv, do_perl_cmd, set_region): Initialize $. .
	  (READLINE): increment (or advance) $. as appropriate.

	  [Brendan O'Dea sent me patches for much of the above.]

This change log started on Monday Jun 8, 1998.
