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 ). + 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 ) + 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 ). 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 "y2qq" 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 ). + 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 ) + 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 ). + 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 ). + 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 ) + 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 ). (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 ). + 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 ). + 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 ). + 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 ). + 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! ). + 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 ). + 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 ). + 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 :! 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 ). + 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.