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