Vile Changelog

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).