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

 (tom) 980102 (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) 980101 (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 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 -!  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.
