"SfR Fresh" - the SfR Freeware/Shareware Archive 
Member "vil96w32/README" of archive vile-w32.zip:
As a special service "SfR Fresh" has tried to format the requested source page into HTML format using source code syntax highlighting with prefixed line numbers.
Alternatively you can here view or download the uninterpreted source code file.
That can be also achieved for any archive member file by clicking within an archive contents listing on the first character of the file(path) respectively on the according byte size field.
1
2 README for vile, version 9.6
3 ----------------------------
4
5 vile is a text editor which is extremely compatible with vi in terms
6 of "finger feel". in addition, it has extended capabilities in many areas,
7 notably multi-file editing and viewing, key rebinding, real X window
8 system support, an optional embedded perl interpreter, and robust
9 support for non-Unix hosts.
10
11 the authors of vile are Paul Fox, Tom Dickey, and Kevin Buettner.
12
13 many patches have been contributed by a lot of users. we thank them.
14
15 more recent additions to this README appear near the bottom. that is, most
16 of the newest stuff is at the end, not up here where you are.
17
18 visit
19 ftp://invisible-island.net/vile
20 ftp://ftp.phred.org/pub/vile
21 to be sure it's still the latest.
22
23 impatient? just type "./configure; make", and get a cup of coffee, decaf
24 if necessary.
25
26 want to know more about configure options? type "./configure --help"
27 and then read doc/config.doc for further details.
28
29 want X11 support? you'd better look at doc/config.doc, although
30 "./configure --with-screen=x11"; make" may well do what you want.
31
32 want syntax coloring? add "--with-builtin-filters" to your configure
33 options and then read the topics "Color basics" and "Syntax coloring" in
34 the file vile.hlp.
35
36 want PC support? look for precompiled binaries at the various ftp sites.
37
38 want to build vile on a PC host? refer to the file README.PC .
39
40 want VMS support? some precompiled binaries are available at
41 ftp://ftp.phred.org/pub/vile. otherwise, you'll need to build vile
42 yourself. In either case, refer to the file README.VMS .
43
44 if you like vile, and wish to be informed of new releases, let me know -- i
45 maintain a mailing list for that purpose (scroll down a bit for details).
46 don't worry -- the volume won't fill your inbox.
47
48 paul fox, pgf@foxharp.boston.ma.us (original author)
49 kevin buettner, kevin@buettner.to
50 tom dickey, dickey@invisible-island.net (current maintainer)
51
52 ------------------------------------------------------
53 Up-to-date copies of vile, including executables for DOS, Win32 and
54 OS/2 are found at
55 ftp://invisible-island.net/vile/
56
57 which is mirrored at
58 ftp://ftp.phred.org/pub/vile/
59
60 Development patches are found at
61 ftp://invisible-island.net/vile/patches/
62 ftp://ftp.phred.org/pub/vile/patches/
63
64 In addition, we have distributed copies at other sites, including
65 metalabs.unc.edu, hobbes.nmsu.edu (OS/2) and the VMS Freeware
66 CDROM's.
67
68 ------------------------------------------------------
69
70 There is a project mailing list. You can subscribe to it here:
71 https://savannah.nongnu.org/projects/vile/
72
73 To submit bug reports, either subscribe to the list (since
74 non-subscribers aren't allowed to post) or use the bug system at
75 that same URL.
76
77 ------------------------------------------------------
78
79 extracts from the original README, from February, 1992:
80
81 VILE -- VI Like Emacs: a vi workalike put together from Micro-Emacs by Paul Fox
82 -------------------------------------------------------------------------------
83
84 This editor grew out of a frustration that although lots of
85 eager programmers have tackled rewrites of Emacs, with new and
86 better features (not to mention free source), I've not seen
87 anything similar done with the Second True Editor. (The
88 First, of course, being /bin/ed)
89
90 ...
91
92 vile retains the multiple buffer/multiple window features of
93 MicroEMACS, but the "finger-feel", if you will, is very much
94 that of vi. It is definitely not a clone, in that some
95 substantial stuff is missing, and the screen doesn't look
96 quite the same. But what matters most is that one's "muscle
97 memory" does the right thing to the text in front of you, and
98 that is what vile tries to do for vi users. THIS IS NOT A
99 "CLONE"! But it feels good. (Put another way, the things
100 that you tend to type over and over probably work -- things
101 done less frequently, like configuring a .exrc file, are quite
102 different.)
103
104 ...
105
106 The collective developers of Micro-Emacs should be
107 complimented that the changes were as easy as they were.
108 ...
109
110 Paul G. Fox June, 1991, and February, 1992
111
112 p.s. By the way, I'm _not_ the same Paul Fox who wrote Crisp, the Brief
113 work-alike.
114
115
116 -----------------------
117
118 September, 1992
119
120 I don't have much to add to the original README -- vile has gotten a lot
121 better since I first released it, thanks to a lot of users and a lot of
122 bug reports. It compiles and runs without modification on most major UNIXes,
123 and under DOS. It offers vi finger feel, and most (not all) of its features.
124 I hope it fills someone's need out there. -pgf 9/92
125
126 (Special thanks to Dave Lemke and Pete Rucszinski, for X and DOS support,
127 and (in no particular order) to Eric Krohn, Willem Kasdorp, J.C.Webber,
128 Warren Vik, Julia Harper, Chris Sherman, Thomas Woo, Yanek Martinson, Miura
129 Masahiro, Tom Dickey for lots of bug reports and suggestions and patience.)
130
131 ------------------------------
132
133 April, 1993
134
135 Well, here's an update on vile. The first release was a long time
136 ago (a couple of years?). Tom Dickey has been contributing a _whole_ lot
137 of good changes. vile now runs on VMS, and is much more stable on DOS
138 thanks to Tom. For me, vile is becoming an "old" program -- I first worked
139 on it in 1989 sometime. So it's been fun to have someone contributing
140 fixes so energetically. Thanks Tom.
141
142 One thing that's changed since I first started vile is that "lots of eager
143 programmers" have now tackled rewrites of vi. There are several good work-
144 alikes out there: elvis (the "king" :-), xvi, vim, stevie, and recent
145 versions of vip-mode in GNU emacs. [add "nvi" to that list. and whatever
146 happened to xvi? -pgf 12/94] From what little I've used any of
147 these, they all seem like real good programs. vile feels different from
148 most of them, mainly due to its roots in MicroEmacs. You may or may not
149 like it. If you don't, try one of the others. There's certainly no reason
150 to not have a vi-like editor on just about any machine you choose. (yeah,
151 I know -- I'm assuming you _want_ a vi-like editor... :-) Enjoy.
152
153 Oh yes -- building it. On UNIX, type "make", and choose one of the predefined
154 targets. Like "make linux". [ not anymore -- use "configure; make" -pgf 12/94]
155
156 DOS makefiles are named after the compiler they support: makefile.tbc for
157 Turbo-C, makefile.wat. There is support in "makefile" for Microsoft-C, but
158 it's next to useless -- if anyone puts together a good "nmake" makefile,
159 could you pass it along? [that support isn't there anymore. -pgf 12/94]
160
161 The Watcom C/386 v9.0 compiler should also work -- the makefile to use is
162 makefile.wat.
163
164 The latest version of vile is usually available for ftp at "ftp.cayman.com",
165 in the pub/vile directory. [not anymore -- it's at "id.wing.net" in the
166 "pub/pgf/vile" directory. -pgf 12/94] Sometimes there's a compiled DOS
167 binary there too. I don't maintain a mailing list, or anything like that
168 to inform folks of new releases -- you just sort of have to check once in a
169 while, or send me mail... [ I've set up a mailing list -- contact me to be
170 added -pgf 7/93]
171
172 paul
173
174 ------------------------------
175
176 July, 1993
177
178 More new features: infinite undo, modification time checking, and, at
179 long last, primitive support for the :map command. [:map is now fully
180 functional -pgf, 12/94] I've also received patches that let vile compile
181 for DOS with the DJ GCC compiler. Have I mentioned filename completion?
182 Tom Dickey provided that and variable/modename/command completion too.
183
184 If you would like to be informed, via email, of new vile releases (bearing
185 in mind that the newest release may be _more_ likely to be buggy, rather
186 than _less_), please send me mail, and I will add you to my list. The email
187 will probably contain a capsule summary of the most recent changes to the
188 code.
189
190 Thanks to Tuan Dang for the Watcom and DJ GCC work. I don't know much
191 about djgpp, the DOS port of djgcc, but take a look at makefile.djg.
192
193
194 pgf
195
196
197 -------------------------------
198
199 March, 1994
200
201 The X support in xvile has been given a huge boost with contributions from
202 Kevin Buettner -- scrollbars, Motif widget support make it feel like a real
203 application... We now have rectangular regions. DOS support is getting
204 better all the time. The major version number got bumped to 4 somewhere
205 along the line, because Tom and I were getting tired of 3. There are quite
206 a few new "modes", some to support vi functionality, some altogether new.
207 We should have keyboard selections and highlighted regions soon...
208
209 pgf, pgf@foxharp.boston.ma.us
210
211
212 -------------------------------
213 December, 1994
214
215 hmmmm -- lets see. new stuff. see the CHANGES and help files for details.
216
217 - vile is now completely autoconf'ed -- you should be able to type
218 either "./configure; make" or "./configure --with-screen=x11" to build
219 it on any (unix-like) platform.
220
221 - :map and :map! are now much more complete, but still by no means
222 done. expect to have to edit your favorite macros to make
223 them work.
224
225 - :abbr now works.
226
227 - along with proper :map support comes proper function key support.
228 function keys defined for your terminal in the termcap/info database
229 are now premapped and can be bound to as #-1 etc. so those of
230 you with ESC [ 10 ~ style function keys should be happy now.
231
232 - mouse clicks which move the cursor now count as proper motion
233 commands in both xvile and vile-in-an-xterm. this means, for
234 instance, that '' or `` will get you back to where you were before
235 you clicked the mouse, and you can apply operators to mouse
236 movements. for example -- click the mouse somewhere, hit 'd' to
237 start a delete operation, and click the mouse somewhere else. the
238 text between the two mouse-click locations will be deleted.
239
240 - on-line help (just a single line) for every function, available
241 with describe-{bindings,function,key} commands.
242
243 - new modes to better control beeping and the "working..." message.
244
245 - autowrite mode now supported, on a global or buffer-by-buffer basis.
246
247 - popup windows now adjust their size to their contents -- less screen
248 space is wasted for small window, and more is used for big windows.
249
250 - file and command completion is now more emacs/bash/tcsh-like, in
251 that possible choices are shown when you hit a second TAB key. this
252 can be tuned via a new mode, "popup-choices"
253
254 - "quoted" motions, which highlight the text they will act on. type
255 a 'q', and start moving around, then type another 'q'.
256
257 - various fixes to the macro language, for core dumps and usability.
258
259 - file.bak and file~ backup files now supported.
260
261 - infinite (?) screen sizes should now be supported under X.
262
263 - it's now possible to break lines by putting ^M in the replacement
264 pattern.
265
266 - selections, the modelines, and the cursor, under xvile, can all
267 have different colors.
268
269 - color support for termcap, at least on the linux console.
270
271 - put'ing from registers (i.e. 'p' and 'P' commands) should be much
272 faster.
273
274 - multiple (error) messages arising from running a macro or a startup
275 file will now accumulate in a new popup window.
276
277 - a simple, probably incomplete file-locking protocol is available,
278 but is not compiled in by default. the organization which
279 contributed the code (Baan Development) uses it to aid their
280 multi-user development. turn on OPT_LCKFILES in estruct.h and
281 "set usefilelock" in your .vilerc to play with it.
282
283 - Windows NT support -- console mode only. anyone want to port this
284 to the Windows95 console? it's probably not hard, though i haven't
285 looked into it very hard.
286
287 - lots of bug fixes
288
289 -------------------------------
290 Febrary, 1995
291 xvile now supports color attributes, which means we can do some
292 primitive syntax coloring of C programs, using the external filter,
293 "c-filt". this is still pretty new stuff. expect it to get better
294 with age.
295
296
297 -------------------------------
298 November, 1995
299 lots of new users in the last year, due to better advertising
300 and inclusion in some of the big linux and freebsd archives.
301 support for NT and OS/2 has gotten much better, and lots of
302 little bugs have been fixed, and features added. Win32 support
303 is very good these days, thanks mostly to the efforts of Rick
304 Sladkey.
305
306 -------------------------------
307 June, 1996
308 gee, i don't remember _what_ we've done recently. enjoy.
309
310 -------------------------------
311
312 September, 1996
313 tom dickey has volunteered to take over releases, and maintaining
314 "official" sources. i'll still contribute, but more as part of the
315 "audience". tom has done a _huge_ amount of work over the years
316 on vile -- i _really_ appreciate it... -pgf
317
318 -------------------------------
319
320 May, 1998
321 vile 8.0 is released. Major new features include: an embedded
322 perl interpreter (available on Unix and Win32 hosts), an editable
323 mini-buffer, majormodes, enhancement of user-defined procedures to
324 the point that they may now be bound to user-defined keystrokes,
325 tag completion, and addition of a win32 gui (called winvile).
326
327 -------------------------------
328
329 Oct, 1998
330 vile 8.1 and 8.2 are released. These are primarily bugfix releases.
331 Refer to the CHANGES files for details. Tom Dickey continues to
332 improve winvile, which now supports scroll bars and two new
333 command-line options that control the editor's geometry and font.
334
335 Apr, 1999
336 vile 8.3 is released. This release includes much enhanced syntax
337 filter capabilities. The filters are now much faster, mainly because
338 vile uses a new command attribute-from-filter to apply their output
339 directly as attributes to the buffer rather than modifying (and
340 allowing undo).
341
342 The organization of the keyword files for the syntax filters is now
343 associated with majormodes. Syntax filters are defined for most of the
344 predefined majormodes which include:
345
346 adamode jsmode perlmode
347 awkmode keymode sccsmode
348 batmode latexmode shmode
349 cmode lexmode sqlmode
350 cshmode m4mode tcmode
351 cwebmode mailmode tclmode
352 dclmode makemode timode
353 diffmode mmsmode txtmode
354 htmlmode nrmode vilemode
355 imakemode pasmode yaccmode
356 javamode
357
358 Other changes of note (this is not an exhaustive list):
359
360 + removed/rewrote code which would prevent us from making vile available
361 under more liberal licensing.
362
363 + winvile and xvile have icons.
364
365 + new macro directives added, including:
366
367 ~local ~hidden ~with ~endwith ~elsewith
368
369 + many VMS bug fixes and enhancements. 8.3 is a keeper if you use VMS.
370
371 Nov, 1999
372 vile 8.4/9.0 is released, distributed with GPL licensing.
373
374 In addition to improvements to syntax highlighting, e.g., user-definable
375 color schemes, vile's macro language has been extended
376
377 + procedures can be parameterized.
378
379 + several new functions simplify handling of external filenames, and
380 parsing strings.
381
382 Further improvements have been made to winvile: drag/drop, file open
383 dialog, better integration with the Windows Explorer and DevStudio.
384
385 Jan, 2000
386 vile 9.1 is released. Highlights since 9.0:
387
388 + continued improvement of syntax coloring (much work here)
389
390 + add an Exporter-like mechanism to Perl5 interface. Instead
391 of exposing a module's functions to the caller, it exposes them to
392 vile as registered commands. By renaming the extensions as `.pm',
393 and making some minor changes to use Vile::Exporter, an extension
394 becomes visible by simply adding:
395 use extension;
396 to vileinit.pl. There is also provision for only including some
397 commands provided by the extension, and for overriding the keybinding
398 defined by the developer (documented in the attached module).
399 Of course you can still say:
400 require extension;
401 and do the registering yourself if you so choose.
402
403 + vile's perl interface includes a new Vile::Window module, which may
404 be used to manipulate vile windows. Examples of the use of this
405 module may be found in winops.pm.
406
407 + rename most .pl files to .pm (makefile.in).
408
409 + add/improve several perl scripts, including
410
411 - capture.pl - implements a perl version of capture-command. This
412 version incrementally updates the window however.
413
414 - shell.pl - revised to use IO:Pty instead of Comm.pl (which
415 seems to be no longer maintained).
416
417 - Manual.pm - display embedded POD documentation.
418
419 + implement watchfd support for the termcap/terminfo versions of vile.
420
421 + added autocolor feature, which updates color syntax highlighting when
422 the keyboard is inactive for a specified period.
423
424 + Vileserv now also works for vile.
425
426 + changed vmsbuild.com to accept a compiler specification on the VMS
427 command line, which is much more convenient than editing the build
428 script by hand. compiler defaults to VAXC on Vax hosts and DECC on
429 Alpha hosts.
430
431 + Several Win32-specific improvements:
432
433 - add the Win32 common dialog "save as" feature to both console
434 vile and winvile.
435
436 - modify directory.pm and dirlist.pm to make them work on win32, i.e.,
437 by not executing portions that will not work (such as mime types).
438
439 - implement autoscrolling feature for winvile, which makes the buffer
440 scroll in the direction where the mouse leaves the window,
441 automatically extending selection highlighting.
442
443 + modify backspacelimit mode to allow backspacing through a newline
444 when nobackspacelimit is specified.
445
446 + add single-quoted strings, which eliminate the need for escaping
447 backslash (useful in startup/command files)
448
449 + Added binding / support for ^X-_ aka
450 "historical-buffer-to-current-window".
451
452 + modify logic in ins_any_time() to interpret control characters which
453 are bound to GOAL or MOTION commands rather than inserting them
454 without quoting. This allows ^E and ^Y as commands within an insert.
455
456 Oct, 2000
457 vile 9.2 is released. Highlights since 9.1 (modulo bug fixes):
458
459 + improve performance of syntax highlighting with configure option
460 for compiling-in any of the syntax filters. Use the configure
461 --with-builtin-filters option. Both internal (built-in) and
462 external filters are supported.
463
464 + add key binding functions for the different editing modes (insert,
465 command, minibuffer and default), making it simpler to bind a
466 space or tab to a given function without having it confused for a
467 function while in insert mode.
468
469 + Vileserv now uses the registry, so 'perl "use Vileserv"' in your
470 .vilerc automagically adds the commands startserv, stopserv, and
471 vileserv-help.
472
473 + added gdb.pm, which runs gdb in a vile window and tracks changes
474 in editor. (Must be used with shell.pm.)
475
476 Several Win32-specific improvements:
477
478 + allow pasting of one line of text into mini-buffer.
479
480 + winopen, winopen-nocd, winsave, and winsave-nocd accept an
481 optional directory argument, which specifies the initial directory
482 opened by the Open/Save Win32 common dialogs.
483
484 Other Modes:
485
486 + add insert-exec mode to control logic in ins_any_time() which
487 interprets control characters which are bound to GOAL or MOTION
488 commands rather than inserting them without quoting (see 9.0a and
489 9.0b changes). This restores the default behavior, since some
490 users had control characters bound to a function which was then
491 executed.
492
493 + add unique-buffers mode, which does dev/inode checking to be sure
494 files aren't edited more than once.
495
496 Syntax Filters:
497
498 + add syntax filters for sed, imake
499
500 + implement abbreviations for syntax keywords, using '*' as the
501 default delimiter.
502
503 + filters now attribute multi-line regions when appropriate, e.g.,
504 multi-line comments in C.
505
506 Macros and Scripting Support:
507
508 + add &dquery function which prompts for input with a given default
509 value.
510
511 + implement function &error, which returns true if its argument was
512 an ERROR token. Modify built-in functions to return ERROR if an
513 argument was ERROR.
514
515 + add variable $filename-expr, to specify the actual pattern used
516 for %F in [Error Expressions]. On DOS and Win32, this is
517 initialized to a more complex pattern, to accommodate drive
518 letters.
519
520 + make the ~local directive work for modes.
521
522 + add ~trace directive, which sets or reports the value of the
523 $debug variable. Use this to trace into internal buffer [Trace].
524
525 + add macros/shifts.rc, which implements left/right shifting of
526 words in the current line to align with the cursor.
527
528 Other Changes:
529
530 + modify color support in xvile to allow the pre-8.3s color scheme
531 as a special case: setting bcolor to fcolor makes xvile use the
532 bcolorN resources on syntax-highlighted text rather than the color
533 selected by bcolor (which is actually taken from the fcolorN
534 resource in this case).
535
536 + added pushd, popd, dirs commands with accompanying [DirStack].
537
538 June, 2002
539 vile 9.3 is released. Highlights since 9.2 (aside from bug fixes):
540
541 + add dirs-clear and dirs-add commands
542
543 + added select-all and selection-clear commands.
544
545 + change default for $XSHELLFLAGS from "-c" to "-e", which matches the
546 documentation for $xshell-flags.
547
548 + add write-all-buffers command; writes all buffers whether modified or not
549
550 + add setenv (set-environment-variable) command.
551
552 + added a swap-title mode and $title-format variable.
553
554 + if the user specifies ":w!", and the file is not writable, vile will
555 (try to) temporarily chmod the file for writable access.
556
557 + added $findpath and $find-cmd state variables and, on win32 and unix
558 hosts, modified capturecmd (aka ^X-!) to support find operations that
559 span directory tree(s).
560
561 + reimplement ":args" command to accept a filename expression.
562
563 + add commands "ww!" and "wall!", to respectively write all changed
564 buffers and write all buffers, using the "w!" behavior of ignoring
565 readonly file permissions.
566
567 + implement three functions for working with timestamps: &ftime, &stime,
568 and &date, respectively for file modification time, system time, and
569 formatted date/time.
570
571 + extend insert-exec to allow ^A and ^X prefixes to be interpreted
572 in insert mode
573
574 + implemented support for reading/writing Macintosh files, i.e.,
575 recordseparator=cr. New commands set-rs-cr, set-rs-lf, set-rs-crlf
576 extend the set-unix-mode and set-dos-mode commands to include Mac's.
577
578 + add &stoken function, which searches for a token in a string, e.g.,
579 "perl" in $cfgopts by
580 &stoken "perl" "," $cfgopts
581
582 + add &translate function, e.g.,
583 &trans "," " " "a,b"
584 to change commas to spaces
585
586 + add commands leading-detab-til and leading-entab-til, binding those
587 to ^X-' ' and ^X-^I. Most of the logic was available internally.
588
589 + implemented '< and '> marks, which denote the limits of the
590 selection.
591
592 Perl Interface:
593
594 + add a new command to shell.pm called "xterm", which starts a shell in one
595 of vile's buffers just as "start-shell" already does, but also starts an
596 xterm through which one may (also) interact with the shell. The shell
597 output (and echoed input) is displayed in both the xterm and a vile
598 buffer.
599
600 + implement perl/Breadcrumbs.pm
601
602 + add perl/Help.pm
603
604 + add perl/CaptHook.pm, which provides useful wrappers for Vile's
605 "hook" variables.
606
607 Win32-Specific:
608
609 + added basic win32 printing for winvile
610
611 + modify ntconio.c so that default fcolor is 7
612
613 + change paste in winvile to insert at DOT rather than after. Also,
614 when pasting in insert mode, set DOT to the end of the inserted
615 text.
616
617 + improve paste-by-right-mouse-click operation in winvile by NOT
618 setting the insertion point at the position where the mouse happens
619 to be when executing the right-click, but rather pasting at the
620 current DOT (i.e. right-mouse-click never sets DOT).
621
622 + when popup-menu is inactive, if text is selected, right-click copies
623 to w32clipboard; otherwise right-click pastes from w32clipboard.
624
625 + added icursor (insertion cursor) mode.
626
627 Syntax Filters:
628
629 + add Verlog and ECLiPSe (Prolog dialect) filters
630
631 + add syntax filter for BASIC, and majormodes basicmode and
632 Visual Basic (vbmode).
633
634 Other Changes:
635
636 + add 'mouse' mode for OS/2 (CSet), to disable mouse when not wanted.
637
638 + add $prompt variable, to allow changing the command-line prompt.
639
640 Aug, 2003
641 vile 9.4 is released. Highlights since 9.3 (aside from bug fixes):
642
643 General changes:
644
645 + regular expressions and searches allow null characters.
646
647 + minibuffer editing commands are more complete, implementing all of the
648 inline cursor search- and motion-commands.
649
650 + implement new editing commands in the minibuffer: r, ~, x, X.
651
652 + use insert-mode bindings when mini-edit mode is active. Use insert-key
653 to toggle, rather than set mini-edit mode.
654
655 + modify buffer- and filename-completion on Unix to escape backslashes
656 which are stored in the [Completions] buffer. Doing this allows one
657 to complete a buffer or filename containing a backslash.
658
659 + improve history-editing by quoting tokens which contain embedded blanks
660 or other special characters, using that to retrieve tokens from the
661 history buffer unambiguously.
662
663 + save/restore window modes such as linewrap when rereading a file,
664 or when executing a shell command.
665
666 + use realpath() if it is available, and "$VILE_PWD" environment variable
667 rather than "." as parameter to getcwd() if it is valid, to speed up
668 operation on quasi-filesystems such as ClearCase.
669
670 + add configure option --with-screen=XawPlus for XawPlus library.
671
672 + add configure option --with-screen=ncursesw to allow building the
673 curses driver using the wide-character version of ncurses.
674
675 + add check in tcap.c for terminfo kmous capability like xterm, in case
676 we are running in screen, which also supports xterm mouse protocol.
677
678 + modify support for "^X-e" to make it use the whole line if the current
679 buffer is a directory.
680
681 Locale Improvements:
682
683 + change default for --with-locale option to yes. Note that this
684 option is only tested if locale support is found, and it is becoming
685 less common to encounter systems with broken locale support.
686
687 + add "locale" to the "$cfgopts" variable if vile is compiled with
688 locale support.
689
690 + modify vile-manfilt to decode UTF-8 emitted by groff 1.18
691
692 + in UTF-8 locale, adjust termcap driver to use UTF-8 to display codes
693 in the 160-255 range, setting vile's locale to non-UTF-8 locale.
694 (yes, this is a short-term fix).
695
696 + add configure check for wctype functions, to work around defect in
697 glibc's ctype functions: in UTF-8 locale, the latter return useless
698 information on character classes. This works on Solaris.
699
700 + move upper/lower case-conversion into tables so that locale support can
701 augment the built-in translation.
702
703 New Commands:
704
705 + "which-keywords" macro shows the location of files containing keywords
706 for the given majormode.
707
708 + "edit-buffer" simplifies "which-keywords" and similar macros.
709
710 + "encode-attributes-til" and "write-encoded-til" convert the syntax
711 highlighting in a region back to control/A sequences, or write the
712 corresponding data to a file. There is a corresponding alias
713 "decode-attributes-til" for "attribute-cntl_a-sequences-til".
714
715 + "substitute-all-til" implements the "^X-s" binding.
716
717 New Modes:
718
719 + add "overlap-matches" mode, to control whether highlighting for the
720 visual-matches mode should skip to the next character, or past the
721 current match when checking.
722
723 + add "percent-crlf" mode, which controls the threshold at which the
724 whole file will be considered DOS-format (CRLF record separators)
725 if the given percentage already ends with CR/LF.
726
727 + "yankmotion" mode controls whether the cursor should be moved as in vi
728 after yanking text.
729
730 + add "xterm-title" mode.
731
732 + add logmode majormode, to distinguish some makefiles from logfiles.
733
734 + add "texmode" majormode, as a variation of latexmode.
735
736 New Variables and Functions:
737
738 + add several short-named relational operators "&geq", ">", "&leq",
739 "<", "&neq", "&sgeq", "&sgt", "&sleq", "&slt", "&sneq" to reduce
740 the need for "¬".
741
742 + add "$pathname-separator" variable.
743
744 Syntax Filters:
745
746 + add Ruby syntax filter.
747
748 + add syntax filter for rpm ".spec" files.
749
750 + add syntax filter for PostScript ".ps" files.
751
752 + add syntax filter for enscript ".st" files.
753
754 + add xml-filter based on html-filter.
755
756 + add pot-filt.l, to highlight ".po" files. Using sh-filt.l was
757 not satisfactory since the quoting rules were not close enough.
758
759 + add syntax filters and corresponding modes for assembler (GNU and M$),
760 info and texinfo.
761
762 + add -j option to c-filt.c, to implement some java-specific features
763 such as "$" as part of an identifier, and \u escapes.
764
765 + add un-filters (atr2ansi, atr2html, atr2text) which convert encoded
766 control/A text to different forms.
767
768 + modify spell.rc, spellflt.l and select.c to allow spell filter to
769 work as a built-in filter.
770
771 + modify built-in spell filter to work with encrypted files.
772
773 + add a -t option to filters, to pass tabstop value. Use this in
774 makefilt.l to provide better highlighting of problems with leading
775 whitespace.
776
777 + modify manpage.rc to check if the current buffer is perl, and if so,
778 to render contents using pod2man or pod2text.
779
780 + set "vilemode" for [History] buffer.
781
782 + reorder lex-based filters to allow building with flex 2.5.31, which
783 introduces several incompatibilities with respect to flex 2.5.4
784 and lex.
785
786 + add configure check/warning for flex 2.5.31, which has broken support
787 for the "-P" option used for built-in filters.
788
789 Win32 changes:
790
791 + implemented tilde-expansion on win32. Actually it was present, but
792 globbing did not work, and the environment variables did not match
793 the Windows 2000 configuration.
794
795 VMS changes:
796
797 + filename matching is case-independent, allowing majormodes to be
798 recognized.
799
800 July 2005,
801 vile 9.5 is released. Highlights since 9.4 (aside from bug fixes):
802
803 General changes:
804
805 + syntax filters can now be dynamically loaded. This allows the
806 main executable to be smaller, and is faster than external
807 filters. Loadable filters are configured using the
808 "--with-loadable-filters" option to configure script. This works
809 for several platforms using gcc.
810
811 + add configure script option for largefile support, change buffer
812 size datatypes an unsigned type to allow for reading files larger
813 than a signed value would allow.
814
815 + modify historical-buffer to allow tab/back-tab to cycle through
816 the first 9 buffers, solves the problem of seeing more than the
817 first few possibilities on the message line. Toggling with the
818 repeated '_' selects the first buffer shown.
819
820 + modify name-completion to allow completion of filenames containing
821 a '$'.
822
823 + relax a check in ":w" by checking if the given name differs from
824 the current filename. If so, do not require ":w!" to write a
825 readonly file to a different location. This allows one to reuse
826 the filename history for ":w".
827
828 + modify special treatment of "#" which prevents it from being
829 shifted with ">>" by disabling that when cindent is unset.
830
831 + add a few ex-commands: nu, j!, wq!
832
833 + modify statevars.c to make read/write of $title consistent, i.e.,
834 will warn that it cannot be set in the termcap configuration.
835
836 + modify [Messages] buffer so that it is only invisible, not a
837 scratch buffer. The latter makes it be automatically removed
838 after viewing and closing the window.
839
840 + add pattern for "ant" (Java make-program) to a few of the patterns
841 in finderr.c
842
843 + modify PromptAndSet() to allow a cancelled prompt for variable's
844 value to store an ERROR token, which can be tested in scripts with
845 &error.
846
847 + split-out modes.rc from filters.rc to make configuration more
848 flexible, e.g., for configure --disable-filters.
849
850 + modify minubuffer editing to allow one to use ^Ga to toggle
851 miniedit mode and append to the buffer shown from a previous
852 command rather than having it erased.
853
854 + modify name-completion for majormode names used as macro
855 parameters to use the long name (with "mode" ending) rather than
856 the short name, for consistency.
857
858 + modify perl.xs to allow for $VILE_LIBDIR_PATH to be a list of
859 paths. Only add the corresponding xxx/perl names to @INC if they
860 correspond to a real directory.
861
862 + change minimum/maximum repeat counts for regular expressions from
863 a byte to an integer.
864
865 + modify interpretation of "~local", "~with", "~elsewith" and
866 "~endwith" so they are within the normal "~if"/"~endif" hierarchy.
867
868 + modify minibuffer editing to shift the display left/right as
869 needed after doing the initial tab of a name-completion, in case
870 that left the cursor position past the end of the line.
871
872 + add experimental plugin support and example.
873
874 Locale Improvements:
875
876 + workaround for broken locale table on Solaris8 and Windows2000,
877 etc., which shows tab as both as printable and a control
878 character. The ISO C standard states that control characters are
879 not printable.
880
881 + extend workaround for UTF-8 locale in termcap driver to translate
882 UTF-8 input to Latin-1.
883
884 + improve/extend checks for locales which correspond to 8-bit
885 character encoding, resetting to POSIX locale (ASCII) if the
886 nl_langinfo() function returns a value that does not look like
887 ASCII or ISO-8859-x. This change applies to the termcap/terminfo
888 and X11 drivers.
889
890 + show locale and encoding values in the header of the [Printable
891 Chars] buffer.
892
893 + add $encoding and $locale variables to show what vile's internal
894 8-bit encoding and locale are set to.
895
896 + turn on locale feature on win32
897
898 New Commands:
899
900 + add macro "which-menu" to which.rc, which shows the locations that
901 xvile checks for a menu-file.
902
903 + add macro "show-each-buffer" (file showeach.rc), which splits up
904 the screen into equal chunks to display as many of the non-scratch
905 buffers as possible.
906
907 + add macro "which-filter" to show which locations would be checked
908 for an external filter. If the filter happens to be built-in,
909 this is also noted, in the message line.
910
911 + improve "eval" command, provide for mixture of functions and other
912 tokens which are passed to the script interpreter.
913
914 + modify SpellFilter macro to use the results from [Filter Messages]
915 with the error-finder to step through the misspellings.
916
917 + add macro "show-filtermsgs" to show syntax filter messages,
918 setting the list to the error-buffer to provide simple stepping
919 through the errors which are found.
920
921 + add commands "popup-buffer" and "popdown-buffer", which open/close
922 windows for the given buffer rather than changing the current
923 window to show a different buffer. The "popup-buffer" command is
924 a wrapper for the existing logic used for help and similar
925 commands. The "popdown-buffer" command differs from
926 "delete-window" by closing all windows for the given buffer.
927
928 + add command "for-buffers", which performs the same command for the
929 specified buffers.
930
931 New Modes:
932
933 + add "reader-policy" mode, which allows one to control whether vile
934 will fall-back to line-by-line reading if it encounters an error.
935
936 + add mode "for-buffers", which specifies whether kill-buffer (and
937 for-buffers) command use globbing or regular expressions.
938
939 + add "filtermsgs" mode, for built-in filters to report syntax
940 errors into [Filter Messages] buffer so that one may use the error
941 finder to locate these.
942
943 + add mode "ignoresuffix", which tells vile to strip the given
944 pattern from a filename before matching majormode suffixes against
945 it.
946
947 + add mode "showchar", which turns on a field in the modeline that
948 tells what the character value is at the current editing position.
949
950 New Variables and Functions:
951
952 + add new operators to make it simpler for macros to check for
953 features: "&isa", "&classof" and "&mclass".
954
955 + add "&match" and "&cmatch" functions for checking if a given
956 regular expression matches a string.
957
958 + add "$error-tabstop" variable, to allow changing the tabstop value
959 used when interpreting "%C" results in the error finder. Most
960 programs assume 8, and that does not work well when editing
961 buffers with other tabstops such as 4.
962
963 + add "$goal-column" variable for debugging.
964
965 Syntax Filters:
966
967 + modify ".table" command in filters parsing to read the user's
968 color definitions, e.g., from .vile.keywords, as is done in a
969 ".source" command.
970
971 + add a ".brief" to filters parsing, which uses "?" to match zero or
972 all of the following characters, in constrast to ".abbrev" which
973 uses "*" to match zero or more of the following characters.
974
975 + several new majormodes, with corresponding syntax filters:
976
977 + ".jsp" files are really (close to) a variety of HTML files.
978 Add simple support for JSP in htmlfilt.l
979 + add iss-, nsis- and ini-modes
980 + add lispmode, to use vile-lisp-filt.
981 + add nmakemode, for special cases such as M$'s ".dsp" files.
982 + add syntax filter for AutoIt version 3 and majormode au3mode.
983 + add syntax filters for iss- and ini-modes.
984 + add vbsmode using ".vbs" suffix based on basmode.
985
986 + extend suffixes for several majormodes:
987
988 + add ".asp" to jspmode suffixes
989 + add ".cls" filetype for vbmode, add symbols for Visual Basic
990 class modules to vb.key
991 + add ".dcl" filetype for dclmode.
992 + add ".el" to suffixes for lispmode.
993 + add ".hpp" to suffixes for cppmode.
994 + add ".jad" suffix for javamode for Java Disassembler.
995 + add ".mm" to nroff mode.
996 + add ".ph" and ".pph" to esqlmode suffixes.
997 + add ".shar" to shmode suffixes.
998 + add ".termcap" and ".terminfo" suffixes for tcmode and timode
999 + add ".tic" as a suffix for timode.
1000 + make "TODO" a txtmode file.
1001 + modify pattern for logmode to allow filenames such as gmake.out
1002
1003 + add a mode-pathname setting for cppmode, so files under (for
1004 example) /usr/include/g++ will be treated as C++. Newer C++
1005 headers have no suffixes.
1006
1007 + add an "-s" option to c-filt.c, for JavaScript (to support
1008 jsmode). Use this to control whether to allow regular expressions
1009 in certain cases.
1010
1011 + modify ShowFormatted macro to support "-mm" macros.
1012
1013 + modify spellflt.l to allow it to be used in winvile, using npopen,
1014 as a built-in filter.
1015
1016 + rewrote pascal syntax filter in lex, adding highlighting for
1017 numbers, and TurboC, Delphi comments.
1018
1019 + modify cppmode's suffixes to look for .C, .H and .CC only on
1020 systems where filenames are case-sensitive.
1021
1022 + split up the majormode "suffixes" into suffixes, mode-filename and
1023 mode-pathname to make it clearer how to associated regular
1024 expressions with the filename for majormodes.
1025
1026 + change highlighting for misspelled words to Error class.
1027
1028 + add environment variable VILE_SPELL_FILT to vile-spell-filt, to
1029 allow overriding the compiled-in program and options used for
1030 performing the lookup.
1031
1032 + many improvements to parsing and highlighting in existing filters
1033 (see CHANGES).
1034
1035 X11 changes:
1036
1037 + add --disable-imake option to configure script, from xterm.
1038
1039 + modify xvile's wheelScrollAmount resource to scroll by pages if
1040 the resource value is negative.
1041
1042 + revise lookup for xvile's menu file to look for dotnames in the
1043 current and home-directories, while non-dotnames may be found
1044 there and in $HOME/.vile and on $startup-path. Combine this with
1045 changing the default for $menu-file back to ".vilemenu" as
1046 documented rather than "vilemenu.rc". The latter name is used in
1047 the non-dotname locations if $menu-file is a dot-name.
1048
1049 Win32 changes:
1050
1051 + several changes to allow winvile to remember recent files and
1052 folders
1053
1054 + winvile remembers up to 20 of the files it has recently
1055 opened/created (feature disabled by default).
1056
1057 + winvile remembers up to 20 of the folders it has recently
1058 visited via an implicit or explicit cd (feature disabled by
1059 default).
1060
1061 + Remembered files/folders are accessible and "replayable" from
1062 winvile's system menu.
1063
1064 + Two new modes: recent-folders and recent-files specify maximum
1065 number of folders/files that may appear in winvile's system
1066 menu. Range is 0-20; a value of 0 disables feature.
1067
1068 + Two new commands: purge-recent-folders and purge-recent-files
1069 clear the list of folders/files that appear in winvile's system
1070 menu.
1071
1072 + modes and commands work in console mode (minimizes conflicts
1073 when sharing a single vile.rc), but the files/folders that
1074 console vile accesses are _not_ remembered.
1075
1076 + improve the winvile resize/status window:
1077
1078 + make resize window wide enough to show geometries that exceed 99
1079 columns
1080
1081 + make resize window continually center itself over the editor's
1082 frame (NT and XP only).
1083
1084 + modify dequoting of winvile's command-line in ntwinio.c to allow
1085 for quoting to be within parameters, e.g.,
1086
1087 winvile +"100" makefile
1088
1089 + reenable SHIFT+INSERT in the win32 mini-buffer (for both vile.exe
1090 and winvile.exe). Unfortunately, the cygwin shell eats
1091 SHIFT+INSERT for console vile (mini-buffer input only). now, it's
1092 once again possible to:
1093
1094 $ vile somefile
1095 /<shift+insert> <- search for string sitting on clipboard
1096
1097 + modify environment variable lookup for win32 to look in the
1098 registry for the VILE* environment variables:
1099
1100 VILEINIT
1101 VILE_HELP_FILE
1102 VILE_LIBDIR_PATH
1103 VILE_STARTUP_PATH
1104 VILE_ERROR_ABORT
1105
1106 This change is made to make it more easily installable; Windows
1107 changes to environment variables apparently do not take effect
1108 until the machine is rebooted. Registry changes take effect
1109 immediately.
1110
1111 + add package script for winvile using Inno Setup.
1112
1113 + improve cursor display in winvile:
1114
1115 + when selecting text, show I-beam cursor.
1116
1117 + when selecting a movable mode line, show a double-headed,
1118 north-south cursor.
1119
1120 + when moving the mouse over a movable mode line, show a
1121 double-headed, north-south cursor.
1122
1123 + don't allow mouse capture if the left mouse button is pressed in
1124 the area encompassing the editor's last two lines (message line
1125 and nonmovable mode line). Don't allow mouse capture if the left
1126 mouse button is pressed on movable mode line. Corrects
1127 long-standing winvile bugs.
1128
1129 + add graphical change-directory to [win]vile via new command
1130 "wincd". The graphical change-directory is also accessible via
1131 winvile's system menu and right mouse popup menu.
1132
1133 + ensure that files created via winvile's "Save As" and vile's ":f"
1134 commands are remembered in winvile's "Recent Files" list.
1135
1136 + make filename completion with cygwin ignore case.
1137
1138 VMS changes:
1139
1140 + add VMS mode record-attrs, modify logic in vms_creat() to use this
1141 information to make the default VFC files written from DCL
1142 editable. Those use PRN (print file format) record attributes.
1143
1144 + modify which.rc to use &pcat rather than $pathname-separator,
1145 since the latter is ambiguous on VMS.
1146
1147 + modify infer_majormode() to work with VMS pathnames.
1148
1149 + correct logic for VMS pathnames so that a directory buffer will,
1150 as on Unix, give the same buffer name as the directory leaf.
1151
1152 + improve fakevms test-driver and related OPT_VMS_PATH code for VMS
1153 pathnames, making name-completion work for VMS pathnames on Unix.
1154
1155 + modify catnap() function to use IEEE floating point on IA64, since
1156 that platform does not support F-floats.
1157
1158 + modify vmsbuild.com and descrip.mms to work with IA64.
1159
1160 December 2007,
1161 vile 9.6 is released. Highlights since 9.5 (aside from bug fixes):
1162
1163 General changes:
1164
1165 + implement basic support for Unicode (see Locale Improvements).
1166
1167 + implement vi-style modeline, limited to setting buffer- and window-
1168 modes, or majormodes.
1169
1170 + implement patterns as line-specifiers in ex-mode.
1171
1172 + revised command-line option parsing to use scripting more effectively:
1173
1174 + multiple startup files are allowed.
1175
1176 + most command-line options are translated to their equivalent script
1177 and executed, rather than saving state for the most recent of each
1178 option. This makes the -s, -S, -g, -G options obsolete (but still
1179 accepted).
1180
1181 + add "-c" option (the POSIX form of "+").
1182
1183 + disallow source'ing from the current directory if the source'd file
1184 might be writable by other users.
1185
1186 + make mouse work for curses driver just like the termcap/terminfo
1187 driver.
1188
1189 + improve majormodes for complex fences by initializing the (non-string)
1190 buffer mode values for submode groups according to the values in
1191 the submode. This makes ignorecase work as expected in the complex
1192 fence matching for vbmode.
1193
1194 + improve name-completion by saving/restoring the original window and
1195 buffer when [Completions] closes, rather than the closest window.
1196
1197 + add named marks for decimal digits .
1198
1199 + modify ":describe-bindings" to show whether the command accepts a
1200 range, and whether it is undoable.
1201
1202 + correct comparisons used for handling bounds in regular expressions,
1203 e.g., the "2" in "\(this\|[l-m]\)\{2\}".
1204
1205 + change behavior of regular expression OR'd alternatives - only the
1206 first match was used rather than the longest one.
1207
1208 + modify "filename" shown in :show-filtermsgs to use the buffer name
1209 if no filename is available.
1210
1211 Locale Improvements:
1212
1213 + several changes to provide usable Unicode support:
1214
1215 + add mode percent-utf8 to set a threshold for file-encoding mode
1216 "auto" detection of UTF-16/UTF-32 files.
1217
1218 + file-encoding mode can be set to "auto", to detect UTF-16 files,
1219 which are loaded as UTF-8.
1220
1221 + UTF-8 files are detected based on the file-encoding mode as well.
1222
1223 + Unicode values are displayed (where no locale controls) as "\uXXXX"
1224 in 4 hexadecimal digits.
1225
1226 + add unicode-as-hex mode to override locale, forcing Unicode values
1227 to display as "\uXXXX".
1228
1229 + for buffers with UTF-8 encoding, show illegal bytes as "\?XX".
1230
1231 + Unicode values can be inserted into buffers using ^VuXXXX form.
1232
1233 + modify manfilt.c to provide UTF-8 output in a UTF-8 locale.
1234
1235 Limitations:
1236
1237 + terminal drivers support Unicode display in varying degrees:
1238
1239 + winvile - multicolumn characters, depends on font selection
1240
1241 + termcap/terminfo - relies on terminal emulator, knows about
1242 multicolumn characters
1243
1244 + xvile - displays only single-column characters
1245
1246 + curses - depends on the curses library, e.g., ncursesw
1247
1248 + win32 console - not yet implemented
1249
1250 + combining characters are not combined.
1251
1252 + registers hold byte data, will show the UTF-8 encoding for data
1253 rather than a \uXXXX (unless the file-encoding for [Registers]
1254 is changed).
1255
1256 + some "characters" such as the report for yanked text is still
1257 really a byte-count.
1258
1259 + inserting a \uXXXX into the minibuffer will display the UTF-8
1260 encoding.
1261
1262 + regular expressions are not wide-character aware.
1263
1264 + UTF-16 and UTF-32 files are detected based on BOM and/or the
1265 contents of the first line of the file.
1266
1267 + external syntax filters do not handle BOM or UTF-16, UTF-32.
1268
1269 + add character classes [:ident:], [:octal:] and [:path:], and change
1270 the association of \w and \W to [:ident:], making [:alnum:] no longer
1271 include "_".
1272
1273 + modify regexp.c so tab is not matched by \p or [[:print:]] for
1274 consistency with POSIX regular expressions.
1275
1276 New Commands:
1277
1278 + add rename-other-buffer command, use that to modify spell.rc so it
1279 can work with scratch buffers which otherwise would be lost, e.g.,
1280 "[Help]".
1281
1282 + add "describe-&functions" and "describe-$variables" commands.
1283
1284 + add ":goto-percent" command.
1285
1286 + add (nvi/vim) ex-commands: a!, c!, i!
1287
1288 + add ":c" as alias for ":change-til" (nvi/vim).
1289
1290 New Modes:
1291
1292 + UTF-8 is supported via new modes "byteorder-mark" and
1293 "file-encoding"
1294
1295 + add mode xterm-fkeys, to allow termcap driver to generate
1296 shift/control/alt modifiers for function keys.
1297
1298 + add "rectangle-insert-mode".
1299
1300 + add "showvariables" mode, for testing expressions used in [Variables].
1301
1302 + add "echo-to-clipboard" mode for Win32 hosts:
1303 all text selected with the mouse is automatically
1304 copied to the Windows clipboard.
1305
1306 + add "bufname-expr", "identifier-expr" and "pathname-expr" buffer modes to
1307 provide regular expression parsing of $bufname, $identifier and $pathname
1308 in the show-variables command as well as for the related expansion of
1309 tokens from the cursor position. If the expressions are empty, the code
1310 falls through to use the corresponding older character-class parsing.
1311 Default values are provided for each *-expr mode.
1312
1313 + add cursor-tokens mode to control whether vile uses regular
1314 expressions, character classes or a combination to obtain tokens
1315 from the screen.
1316
1317 New Variables and Functions:
1318
1319 + add new symbols "$return" and "$_" which can be used to implement simple
1320 functions .
1321
1322 + add "%n" and "%N" substitutions for $title-format
1323
1324 + change "%n" in modeline substitutions to use file name (pathleaf)
1325 rather than relative path (shorten_path). Use "%r" for the latter.
1326
1327 + add ">motion" function for scripts.
1328
1329 + add $buf-fname-expr to show the combined bufname-expr, pathname-expr
1330 used to interpret ^X-e.
1331
1332 + improve handling of enumerated values by forcing all to lowercase,
1333 e.g., to eliminate the need for the special case in 9.1x to handle
1334 "TRUE" and "true".
1335
1336 + update title when doing a "cd", in case it uses %r substitution.
1337
1338 Syntax Filters:
1339
1340 + modify syntax filters to use flex's character classes.
1341
1342 + add configure check for lex's which support character classes, and
1343 add filters/noclass.sh to work around those which do not.
1344
1345 + several new majormodes, with corresponding syntax filters:
1346
1347 + add confmode for "ordinary" config-files.
1348 + add csmode (for C# ".cs" files).
1349 + add csvmode for ".csv" files.
1350 + add delphi mode
1351 + add docbookmode
1352 + add lua mode
1353 + add mcrlmode for mCRL/mCRL2 modeling language.
1354 + add midlmode, for Microsoft IDL.
1355 + add rtfmode for RTF files.
1356 + add wbtmode for WinBatch.
1357 + add xpmmode
1358 + add majormodes for bnf, css, php
1359
1360 + extend suffixes for several majormodes:
1361
1362 + add ".ebuild" suffix for shmode.
1363
1364 + modify preamble for xml- and html-modes to ensure that the first
1365 tag determines the type.
1366
1367 + add output from rcshist to diffmode.
1368
1369 + add ".vbp" files to inimode.
1370
1371 + add ".reg" files to inimode.
1372
1373 + add ".ddl" suffix to sqlmode.
1374
1375 + add ".dsr" suffix to vbmode.
1376
1377 + add several package-related suffixes to sqlmode.
1378
1379 Other improvements to majormodes:
1380
1381 + modify majormode inferencing to check preamble for [Standard Input]
1382 and [Output] buffers.
1383
1384 + modify preamble patterns for shell modes such as awk, etc., to allow
1385 for programs without an absolute pathname, e.g., "#! awk".
1386
1387 + improved cppmode's identifier-expr.
1388
1389 + updated python keywords
1390
1391 + improve bas-filt.l by not highlighting incidental matches in the
1392 attribute section of a Visual Basic form-file.
1393
1394 + add section definitions to vbmode.
1395
1396 + add complex fences to vbmode.
1397
1398 + improve vl-filt.l based on Verilog LRM draft
1399
1400 + fill in complete list of event names for xres.key from Xt/TMParse.c
1401
1402 + fix sh-filt.l for parameter substitutions containing an escaped
1403 quote, e.g.,
1404 VERSION=${VERSION#*VERSION \"}
1405 VERSION=${VERSION%\"*}
1406
1407 + change htmlfilt.l to highlight character- and URI-references as
1408 numbers to make them distinct from strings with ordinary text.
1409
1410 + add "+", ",", "&", "@" and ";" to URL patterns in filters.
1411
1412 + fixes for termcap syntax highlighter, i.e., tcmode:
1413 + allow description field to be empty
1414 + color the "|" between aliases.
1415 + improve string- and escape-parsing
1416
1417 + fixes for terminfo syntax highlighter, i.e., timode:
1418 + allow description field to be empty
1419 + color the "|" between aliases.
1420 + allow aliases to contain blanks.
1421
1422 + add check in m4-filt.c for unbalanced quote, show the affected area
1423 as an error.
1424
1425 + several improvements and fixes to lex-filt.l (a rewrite which
1426 makes it very complete, however it now requires flex).
1427
1428 + minor fixes to make most of the lex filters build with "old" lex,
1429
1430 + make autocolor work for curses-driver, e.g., --with-screen=ncurses
1431
1432 + improve vilefilt.l, highlighting mode names and displaying error
1433 for unknown mode, function and state variables.
1434
1435 + modify spellflt.l to chop words according to Camel-case, so
1436 tokens such as "ChopWords" are treated by the spell checker as
1437 multiple words.
1438
1439 + modify spell- and txt-filters to allow users to add words to their
1440 respective ".keywords" files to override the builtin highlighting.
1441
1442 + make ShowFormatted macro more configurable by allowing environment
1443 variables $VILE_NROFF_FILT and $VILE_TABLE_FILT to override the
1444 choice of programs therein.
1445
1446 X11 changes:
1447
1448 + add -class option to xvile.
1449
1450 + make cursor-adjustment after paste in xvile dependent on whether the
1451 pasted text ended with a newline.
1452
1453 Win32 changes:
1454
1455 + change winvile's registry subkey for recent-folders and recent-files
1456 to match environment variable settings from 9.4r, e.g., change
1457 "Software\winvile\MRUFiles"
1458 to
1459 "Software\VI Like Emacs\MRUFiles"
1460
1461 + modify winvile's command-line parsing, adding "-i" option to perform
1462 the case used for "Send To": use the part of the command line after
1463 options as the filename and change working directory to match.
1464
1465 + improve paste-performance in winvile by passing whole-line chunks
1466 to the insert-function.
1467
1468 + improve repainting in winvile while processing external command.
1469 also modify keyboard handling to provide type-ahead while processing
1470 external command.
1471
1472 + correct order of evaluation from 9.4w when setting record-separator,
1473 which was setting "crlf" ending temporarily when computing the buffer
1474 size, even when "lf" was intended. That would cause an immediate
1475 write from winvile (without change) for a buffer to write too many
1476 characters.
1477
1478 + add a character-class check to find_b_file() to prevent names such
1479 as "<vile.1>" from being canonicalized into "vile.1" on win32 via
1480 FindFirstFile(). This fixes a problem where ^X-n would sometimes
1481 display the wrong buffer.
1482
1483 + add shifted-cursor-key bindings for winvile, like xterm.
1484
1485 + add KEY_xxx definitions to OS/2 and Win32 drivers, defining up to
1486 KEY_F35 for the former and KEY_F24 for the latter .
1487
1488 + add &pquote in manpage.rc, to allow it to format html output when
1489 vile-manfilt, etc., reside in directories containing spaces in their
1490 name.
1491
1492 + correct check of return of ffread() in spellflt.l's workaround for
1493 platforms such as win32 which have no usable popen(). That made
1494 spelling checks require two ^X-i presses.
1495
1496 + modify ntwinio.c to invoke build_recent_file_and_folder_menus() in
1497 the WM_INITMENUPOPUP event rather than WM_SYSCOMMAND. This makes
1498 winvile initialize the recent-folders and recent-files if one uses a
1499 right-click on the title of the window.
1500
1501 + modify spell filter so that it can get VILE_SPELL_FILT from the
1502 registry on win32.
1503
1504 + improved winvile's "flash".
1505
1506 + fixes for 64-bit warnings of Visual Studio .NET 2003
1507
1508 + modify wvwrap.exe to work with pathnames containing "$", "&" and "'".
1509
1510 + improve winvile.iss (Inno Setup):
1511 + use values in patchlev.h to set the package version information.
1512 + add context menu and Send To shortcuts
1513 + install the keyword files
1514
1515 VMS changes:
1516
1517 + minor build-fixes for VMS:
1518
1519 + modify vmsbuild.com to simplify workaround for broken MMS 3.8
1520
1521 + provide dummy variables for xvile to reflect modularization changes
1522 with respect to vmsvt.c
1523
1524 + move VMS-specific code from termio.c to vmsvt.c
1525
1526 Other portability:
1527
1528 + use va_copy() in dofmt() to work with Linux on powerpc
1529
1530 + modify configure script to omit lex-filt.l from build if lex is not
1531 really flex, since the tables are too large for the older program.
1532
1533 + improve os2vio.c, adding a check to distinguish between fullscreen
1534 and VIO to allow using bright background colors in the latter .
1535
1536 + modified regexp.c, add headers vl_regex.h, vl_alloc.h and vl_ctype.h
1537 to allow it to be easily built outside vile .
1538
1539 + add KEY_BackTab to the output of show-key-names
1540
1541 + fix kcod2prc() so that a shifted-tab is converted to "Shift+^I"
1542 rather than emitting a literal tab in the result.
1543
1544 Performance:
1545
1546 + modify the symbol-table lookup in filters.c to use tsearch() when
1547 available. For an 8Mb rtf file this improved performance by about
1548 a factor of two (on Linux - Visual C++ has no tsearch).
1549
1550 + use new module blist (binary search of lists) to reduce linear
1551 searches in the places where btree is not already used.
1552
1553 + add configure check for getc_unlocked(), putc_unlocked() and
1554 tsearch() to use in performance improvements for syntax filters.
1555
1556 -------------------------------
1557 $Header: /usr/build/vile/vile/RCS/README,v 1.100 2007/12/28 03:22:22 tom Exp $
1558 -------------------------------