What's new in Vile 9.8z
May 12, 2024
- Modify configure script to check validity of $IMAKE_LOADFLAGS
- Modify curses driver to work around configurations of ncurses where the SIGWINCH handler has been disabled.
- Modify vl_get_encoding() to allow for nl_langinfo(CODESET) returning an empty string, recover from this error using checks on the locale variable (report by David Snyder).
- Updated wcwidth.c, from xterm #389
- Modify spec-file to work around a bug in make 4.4.1
- Reduce compiler-warnings in configure script checks.
- Disallow newline in quoted string in ini filter.
- Adjust dlsym lookup to account for special case of define_key, to avoid conflict with ncurses.
- Fix mandoc warnings in vile.1
- Fix a use-after-free in parse_nondirective() due to free() in the actual_color() function of key-filt.c
- Change VIDEO_TEXT type to "unsigned", allowing display of Unicode values past BMP for drivers which support this.
- Modify curses configuration to handle ncurses KEY_RESIZE (prompted by discussion with Sebastian Neuper).
- Fix typo in cross-compile check in CF_KILLPG macro (Debian #1029956)
- Update config.guess, config.sub
New in Vile 9.8y (Jan 16, 2023)
- Build-fixes for --disable-extensions and --disable-shell configure options.
- Amend fix for 9.8w change to map.c, so that both UTF-8 in scripts as well as interactive insertions of UTF-8 are handled (report by Chris Green).
- Reduce compiler warnings in configure script checks.
- Modify CF_RESTARTABLE_PIPEREAD to include <sys/wait.h>, if found, to prototype wait() (Redhat #2158163).
- Improve configure macros CF_CURSES_TERMCAP, CF_TERMCAP_LIBS, and CF_XOPEN_SOURCE.
- Fix shellcheck warnings in version.sh and xshell.sh
- Add pattern to vile-libdir-path to allow for Debian multiarch.
New in Vile 9.8x (Dec 27, 2022)
- Trim some obsolete comments about OpenLook from the help-file.
- Update Debian test-package, based on Brendan's package.
- Drop ftp URLs from documentation.
- Document short usage message "-?" option in manpage.
- Make the new mapping feature a mode: "mini-map".
- Modify command- and minibuffer-mapping to allow for a ":map" command to map a Unicode value past 255 into an ASCII byte (report by Yuriy)
- Amend change in filters/vilefilt.l for Coverity warning (cf: 9.8w)
- Add $look-in-cwd, $look-in-home variables to allow override of macro search path.
- Improve icons for WinVile:
- Generate ".ico" files using Inkscape to convert the ".svg" files to 512x512 ".png" file, and then ImageMagick to convert those into multi-image icons. This includes a 256x256 32-bit color image, for Windows' "Large" icons.
- Change the default directory for the winvile ".iss" installers to use "-" rather than " " in the directory name. This works around two of the bugs seen with Windows 10: if the pathname used for the icon (i.e., the ".exe" file) contains blanks, Windows 10 shows only the lowest-resolution image for "Medium" icons. It also ignores the largest image.
- Update URLs in help-file, adding /archives on main site.
- Re-use the configure check for -rdynamic to replace -export-dynamic in the --enable-plugins configure option (Savannah #62785).
- Use setgroups() to clear supplementary group-IDs when resetting uid/gid values.
- When retrieving a "'" mark, it may not have been set. For that case, use the first-line and first-column of the current buffer (report by Yuriy).
- Modify vile-pager to decompress the input file if it is compressed.
- Clean up shellcheck warnings in non-configure scripts.
- Modify configure script to "always" check for gcc attributes, working around spurious warnings reported by packagers (Gentoo #880941).
- Update configure script to work around regression in grep 3.8
- Add configure check for exit_curses(), exit_terminfo(), use in leak-checking
- Improve configure check for crypt(), non-working with OpenBSD
- Update package/freebsd/*
- Update package/pkgsrc/*
- Add package/openbsd/*
- Fix a few compiler-warnings.
- Update install-sh
- Update config.guess, config.sub
New in Vile 9.8w (Aug 22, 2022)
- Brendan O'Dea:
- The font specification in /etc/X11/app-defaults/UXVile was being overridden by the one in XVile. Additionally update the xvile font to use the Latin-1 equivalent (9x18 instead of 8x13).
- Apply memory-leak fix from pl-filt.c in 9.8v to pl6filt.c
- Rename perl6mode and corresponding syntax filter to "raku" (report by Steve Lembark).
- Update suffix-list for rakumode.
- Tom Dickey:
- Portability-fixes for plink.sh
- Fixes for regexp.c:
- Build-fix for test_regexp
- Add parentheses in non-multibyte is_CLASS() macro to correct a problem with pointer expressions.
- Add I/i toggle in test_regexp to exercise ignorecase.
- Revise change for lins_chars() to handle UTF-8 in scripts, as that interfered with normal insertions (report by Chris Green).
- Fix a check in vile-manfilt, to ensure that stepping into previous lines does not use flushed/discarded rows.
- build-fix for perl 5.36 (Debian #1014289)
- Modify error-message from vile-manfilt to show the program name.
- Fix a state-transition in sh-filt.l, which left some text uncolored (report by Wayne Cuddy).
- Add markdown mode (mdmode).
- Update copyright dates
- Update package/freebsd/*
- Fix some issues found with Coverity.
- Fix a few compiler-warnings.
New in Vile 9.8u (May 18, 2020)
- Brendan O'Dea:
- Add smartcase mode (prompted by suggestion by Marc Simpson).
- Michael von der Heide:
- Modify vile-spell-filt to allow for umlauts in UTF-8
- Tom Dickey:
- Add "install-keywords" and "uninstall-keywords" targets to the top-level and filters makefiles.
- Prove separate a "nmake" highlighter from "make", to color conditional directives and handle special cases of trailing "".
- Modify winvile.iss to make the 64-bit installers more distinct from the 32-bit installers.
- Enable registry-lookup as getenv fallback for WinVile64
- modify nmakemode: allow for whitespace after "!" in conditional lines
- Ignore case when matching keywords; fix some issues found with Coverity.
- Quiet a few gcc9 warnings
- Correct size-parameter of ZeroMemory calls in ntwinio.c
- Resave SVG-files with Inkscape 0.92.4 (5da689c313, 2019-01-14), to accommodate version-creep.
- Improved configure macros to lessen unused-variable warnings in config.log
- Workaround in configure checks for ncurses vs xcode's c99 "-W" option
- Fix - python filter should recognize triple single-quoted string (report/patch by Marc Simpson).
- Fix typos reported by codespell.
- Add null-pointer checks for continue-search and reverse-search to handle the case where a pattern string was given, but it failed to compile (report by Marc Simpson).
- Add tpumode, separating it from dclmode because the keywords differ. also add tpu syntax filter, since syntax differs.
- Modified a configure-macro to appease autoheader-252.
- Switch back to the original buffer after displaying result of the show-marks command in "[Named Marks]" (report/patch by Marc Simpson).
- Modify message when setting a mark in "[Named Marks]" to show that it is ignored (report by Marc Simpson).
- Regenerate the doc-files from html, using links2 2.14 in Debian 9. also reformat the html files.
- Trim some unwanted blanks in vile.hlp, overlooked in converting to html (report by Marc Simpson).
- Add "go" and "typescript" majormodes.
- Fix a loop-limit in manfilt.c for ANSI CUP.
- Clone pl-filt.c as pl6filt.c to support perl6, added corresponding "perl6" mode (discussion with Steve Lembark).
- Add a limit-check in reallyEditMiniBuffer to handle a case where mini-edits clear the working buffer, including the padding (Savannah #56627).
- Fix no-return warnings from libXt 1.2.0 headers
- Updated "rev=made" to "rel=author" in html-files.
- Add configure check for handling of "const" with X Toolkit library
- Add html meta tags to atr2html for generator and charset.
- Update gnreight.h from Debian/testing libc6 2.28-6
- Add FreeBSD package-files to help with maintaining (FreeBSD #234527, FreeBSD #234528). Note that because of the distinfo files, those will always be one patch behind.
- Update config.guess, config.sub
- Improve configure script for MacOS port:
- Check for X11 headers in /usr/X11, reflecting Apple's removal of of /usr/include and /usr/include/X11
- Suppress -Winline
- Cleanup *.dSYM directories
- Don't add gcc/clang options for c89/c99 wrappers which cannot tell what version of gcc/clang they hide.
- Improved configure macros: CF_GNU_SOURCE, CF_INSTALL_OPTS, CF_INSTALL_OPT_S, CF_LD_RPATH_OPT, CF_POSIX_C_SOURCE, CF_VA_COPY, CF_XOPEN_SOURCE, mainly to solve two problems:
- Non-POSIX use of predefined symbols on BSD platforms
- An install option was needed to preserve timestamps
New in Vile 9.8t (Apr 14, 2019)
- fix a typo in tcap.h (Savannah #52872).
- use strncpy() rather than memcpy() for copying hashed key from crypt(), to work with Fedora 28 which does not necessarily use a fixed-size buffer.
- modify x11.c to avoid clearing the window manager flags that control focus behavior, to work with ctwm.
- add WinVile64 package script for Inno Setup.
- show "win64" for $os symbol if built for 64-bit Windows.
- add ifdef in winvile.iss to accommodate changes with Inno Setup 5.6.1
- use GetModuleFileNameEx() in preference to looking for winvile's registry keys or the PATH when finding the executable path for the "-Or" option.
- improve coloring of "f" font markers in the nroff filter.
- fix a mis-setting in api.c from 9.8q cleanup.
- document winvile registry settings in the help-file.
- create symbolic links for the utility program's manual pages, point to the base manpage.
- document the utility programs and scripts which normally are packaged in the manual page.
- if $VILE_LIBDIR_PATH is set, prefer that in vile-libdir-path corrected glob expression for vile-libdir-path
- several fixes using Visual Studio 2017 code analysis, including w32cmd.c, correct if-statement for IsDialogMessage call w32misc.c, correct size of allocation for buffer
- ensure no leak on failed realloc
- modify casts to avoid truncation
- Some parts of the analysis are false positives; it appears to have problems in the flow analysis for reporting uninitialized values and dereferencing null pointers. In particular, it does not understand the idiom for reallocating an array of types.
- build-fix for Visual Studio 2012 and later: the "FILE" struct is opaque.
- use registry value for PaddedBorderWidth in winvile to account for misleading results from GetSystemMetrics introduced by Vista.
- modify makefile.wnt to allow build with Visual Studio 2012 and later, which omit the Win32.mak file.
- fix a couple of unescaped "?" in suffixes for majormodes, e.g., in mvmnmode.
- add vcproj and vcxproj majormodes.
- add a "report" target in makefile.wnt to show the symbols used in a build to help troubleshoot upgrades to newer Visual Studio. For instance, it is possible to build using Visual Studio Express 2012 with Windows SDK 7.1 by setting APPVER to "5.01".
- reorder a comparison in regmatch() to avoid indexing past limits in some cases of multibyte characters.
- add a check in set_vattrs() to ensure loop limit is greater than zero to handle a boundary case with double-width characters.
- fix or work around gcc8 warnings.
- improve initialization of hashed-key for crypt() using memset() on the buffers rather than assuming the hash is the documented length.
- Even with this, valgrind warns about buffer mismanagement within libcrypt.so.
- check for _nc_free_tinfo() for leak-checking with ncurses' tinfo library.
- modify perl/ruby filters to ensure the in-memory file ends with nul.
- add filters for yaml, rust-modes to develop for a tutorial.
- improve iss-filt.l, handling named constants such as {app}.
- update iss.key, e.g., setup-directives and runtime functions.
- compiler-warning fixes for gcc 7.2.1 with SuSE.
- regenerate doc/*.doc from Debian 7 to Debian 8; the table-width
- changed from links 2.7 to 2.8
- add dummy "]]" in sh-filt.l to work around breakage with flex 2.6.1, which insists on preprocessing C source using m4.
- modify character class assumed for tags, to check for graphic characters. Previously that used qident (cf: 9.7g), which did not
- allow for dots in filenames which could be present in a ctags file if it were generated using "ctags --extra=+f *" (Savannah #51774).
- update ftp site url
- improved configure macros:
- CF_ADD_CFLAGS, CF_ADD_INCDIR, CF_BUILD_CC, CF_CC_ENV_FLAGS,
- CF_CURSES_CPPFLAGS, CF_CURSES_FUNCS, CF_CURSES_LIBS, CF_FIND_LINKAGE,
- CF_GCC_WARNINGS, CF_GNU_SOURCE, CF_LARGEFILE, CF_MAKEFLAGS,
- CF_MKSTEMP, CF_NCURSES_CONFIG, CF_NCURSES_VERSION, CF_POSIX_C_SOURCE,
- CF_PROG_EXT, CF_PROG_GROFF, CF_SIZECHANGE, CF_STRUCT_TERMIOS,
- CF_TRY_XOPEN_SOURCE, CF_WITH_ICON_THEME, CF_WITH_MAN2HTML,
- CF_XOPEN_CURSES, CF_XOPEN_SOURCE, CF_X_ATHENA_CPPFLAGS
- modify ti-filt.l to allow hexadecimal, as per X/Open Curses documentation. This is different from termcap, which (like terminfo) supports octal and decimal numbers.
- build-fixes for Visual Studio 2015
- build-fixes to allow test-compile with ActiveState Perl 5.24.1, which does not work with winvile because its DLL does not provide COM entrypoints, e.g., CoTaskMemFree and CoRegisterClassObject
- update config.guess, config.sub
New in Vile 9.8 (Jan 11, 2018)
- add command-line parsing for "--" token, assumed by visudo in the
- 1.8.12 - 1.8.16 changes (report by Wayne Cuddy).
- > Tom Dickey:
- recompute majormode order when "after", "before" or "qualifiers" is
- modified for a majormode.
- add yamlmode (discussion with Steve Lembark)
- modify DSTRING definition in lex-filter to handle continuation lines.
- modify cfgmode to reduce false-matches with random ".cfg" files.
- improve ps syntax filter
- interpret %%BeginData / %%EndData keywords
- interpret %%BeginPreview / %%EndPreview keywords
- add ".mcrl2" as suffix for mcrlmode.
- fixes from test-script: conf, hs, nr, rc, rcs, txt, xq, xml
- improved regression test-script to check for places where the syntax
- filter might have mixed buffered- and unbuffered-calls in the same
- state, causing tokens in the markup to "move".
- remove a statement from flt_putc in the standalone filters that
- converted a bare ^A to ^A?.
- remove escaping from digraphs.rc, since change in 9.7zg made that
- both unnecessary and incorrect (reports by Marc Simpson, Brendan
- O'Dea).
- improve tcl syntax filter
- color backslash-escapes in double-quotes.
- add rules to handle regexp and regsub regular expressions. This
- does not yet handle -regexp switch cases.
- add call to flt_bfr_error to flag unbalanced quotes here and in
- a few other filters.
- modify newline patterns to allow for cr/lf endings in continuations
- add special case for literals like "{1}" and "{\1}".
- add special case for html entities such as "{{}" and "{&foo;}"
- improve sh syntax filter
- allow quoted strings within '${' parameter, a detail that can
- happen with ksh brace groups (report by j. van den hoff).
- handle ksh's "ANSI C quotes", i.e., "$'xxx'" using single quotes
- after a dollar sign.
- use the ksh ("-K") option for bashmode and zshmode syntax.
- interpret "$name" within '${' parameter
- don't warn for inline-here documents
- handle special case where matching tag for a here-document is on
- the same line as a closing ")" in $(xxx) command.
- highlight ksh's "[[", "((", "$((" bracketing like "{".
- handle ksh's "((" and "$((" arithmetic expressions.
- handle ksh's base#value numbers
- improve perl syntax highlighter:
- fix state used to guess where a pattern might occur, e.g., after
- an "if" keyword with no preceding operator to account for line
- breaks.
- correct a check for illegal numbers, which flagged hexadecimal
- numbers containing "e".
- distinguish special case of "format =" vs "format =>".
- allow pod to begin without a preceding blank line, but warn.
- allow for case where pod mode is turned on/off with only one blank
- line between the directives.
- check for simple patterns that may follow operators such as "map".
- allow '$', '+' or '&' as a quote or substitution delimiter
- allow angle brackets for quotes after 'q', etc.
- fix highlighting when square-brackets are used as delimiters in a
- perl substitution, e.g., s[foo[bar]xxx][yyy]
- quiet some unnecessary compiler warnings with glibc > 2.20 by adding
- _DEFAULT_SOURCE as needed.
- improve version-comparison for "new" flex to allow for 2.6.0, and
- accept that for built-in filters. Also modify filters/mk-2nd.awk
- to work with "new" flex ifdef's to ignore yywrap (Debian #832973).
- correct long-name for filename-ic mode (report Marc Simpson).