Several changes are involved since they are all interrelated. These
changes affect about 1000 files.
The first major change is rewriting bsd.builtin.mk as well as all of
the builtin.mk files to follow the new example in bsd.builtin.mk.
The loop to include all of the builtin.mk files needed by the package
is moved from bsd.builtin.mk and into bsd.buildlink3.mk. bsd.builtin.mk
is now included by each of the individual builtin.mk files and provides
some common logic for all of the builtin.mk files. Currently, this
includes the computation for whether the native or pkgsrc version of
the package is preferred. This causes USE_BUILTIN.* to be correctly
set when one builtin.mk file includes another.
The second major change is teach the builtin.mk files to consider
files under ${LOCALBASE} to be from pkgsrc-controlled packages. Most
of the builtin.mk files test for the presence of built-in software by
checking for the existence of certain files, e.g. <pthread.h>, and we
now assume that if that file is under ${LOCALBASE}, then it must be
from pkgsrc. This modification is a nod toward LOCALBASE=/usr. The
exceptions to this new check are the X11 distribution packages, which
are handled specially as noted below.
The third major change is providing builtin.mk and version.mk files
for each of the X11 distribution packages in pkgsrc. The builtin.mk
file can detect whether the native X11 distribution is the same as
the one provided by pkgsrc, and the version.mk file computes the
version of the X11 distribution package, whether it's built-in or not.
The fourth major change is that the buildlink3.mk files for X11 packages
that install parts which are part of X11 distribution packages, e.g.
Xpm, Xcursor, etc., now use imake to query the X11 distribution for
whether the software is already provided by the X11 distribution.
This is more accurate than grepping for a symbol name in the imake
config files. Using imake required sprinkling various builtin-imake.mk
helper files into pkgsrc directories. These files are used as input
to imake since imake can't use stdin for that purpose.
The fifth major change is in how packages note that they use X11.
Instead of setting USE_X11, package Makefiles should now include
x11.buildlink3.mk instead. This causes the X11 package buildlink3
and builtin logic to be executed at the correct place for buildlink3.mk
and builtin.mk files that previously set USE_X11, and fixes packages
that relied on buildlink3.mk files to implicitly note that X11 is
needed. Package buildlink3.mk should also include x11.buildlink3.mk
when linking against the package libraries requires also linking
against the X11 libraries. Where it was obvious, redundant inclusions
of x11.buildlink3.mk have been removed.
in the process. (More information on tech-pkg.)
Bump PKGREVISION and BUILDLINK_DEPENDS of all packages using libtool and
installing .la files.
Bump PKGREVISION (only) of all packages depending directly on the above
via a buildlink3 include.
Changes:
Highlights since 9.3:
+ Bug fixes, lots. See the CHANGES file for details.
General changes
===============
+ regular expressions and searches allow null characters.
+ minibuffer editing commands are more complete, implementing all of the
inline cursor search- and motion-commands.
+ implement new editing commands in the minibuffer: r, ~, x, X.
+ use insert-mode bindings when mini-edit mode is active. Use insert-key
to toggle, rather than set mini-edit mode.
+ modify buffer- and filename-completion on Unix to escape backslashes
which are stored in the [Completions] buffer. Doing this allows one
to complete a buffer or filename containing a backslash.
+ improve history-editing by quoting tokens which contain embedded blanks
or other special characters, using that to retrieve tokens from the
history buffer unambiguously.
+ save/restore window modes such as linewrap when rereading a file,
or when executing a shell command.
+ use realpath() if it is available, and "$VILE_PWD" environment variable
rather than "." as parameter to getcwd() if it is valid, to speed up
operation on quasi-filesystems such as ClearCase.
+ add configure option --with-screen=XawPlus for XawPlus library.
+ add configure option --with-screen=ncursesw to allow building the
curses driver using the wide-character version of ncurses.
+ add check in tcap.c for terminfo kmous capability like xterm, in case
we are running in screen, which also supports xterm mouse protocol.
+ modify support for "^X-e" to make it use the whole line if the current
buffer is a directory.
Locale Improvements
===================
+ change default for --with-locale option to yes. Note that this
option is only tested if locale support is found, and it is becoming
less common to encounter systems with broken locale support.
+ add "locale" to the "$cfgopts" variable if vile is compiled with
locale support.
+ modify vile-manfilt to decode UTF-8 emitted by groff 1.18
+ in UTF-8 locale, adjust termcap driver to use UTF-8 to display codes
in the 160-255 range, setting vile's locale to non-UTF-8 locale.
(yes, this is a short-term fix).
+ add configure check for wctype functions, to work around defect in
glibc's ctype functions: in UTF-8 locale, the latter return useless
information on character classes. This works on Solaris.
+ move upper/lower case-conversion into tables so that locale support can
augment the built-in translation.
New Commands
============
+ "which-keywords" macro shows the location of files containing keywords
for the given majormode.
+ "edit-buffer" simplifies "which-keywords" and similar macros.
+ "encode-attributes-til" and "write-encoded-til" convert the syntax
highlighting in a region back to control/A sequences, or write the
corresponding data to a file. There is a corresponding alias
"decode-attributes-til" for "attribute-cntl_a-sequences-til".
+ "substitute-all-til" implements the "^X-s" binding.
New Modes
=========
+ add "overlap-matches" mode, to control whether highlighting for the
visual-matches mode should skip to the next character, or past the
current match when checking.
+ add "percent-crlf" mode, which controls the threshold at which the
whole file will be considered DOS-format (CRLF record separators)
if the given percentage already ends with CR/LF.
+ "yankmotion" mode controls whether the cursor should be moved as in vi
after yanking text.
+ add "xterm-title" mode.
+ add logmode majormode, to distinguish some makefiles from logfiles.
+ add "texmode" majormode, as a variation of latexmode.
New Variables and Functions
===========================
+ add several short-named relational operators "&geq", ">", "&leq",
"<", "&neq", "&sgeq", "&sgt", "&sleq", "&slt", "&sneq" to reduce
the need for "¬".
+ add "$pathname-separator" variable.
Syntax Filters
==============
+ add Ruby syntax filter.
+ add syntax filter for rpm ".spec" files.
+ add syntax filter for PostScript ".ps" files.
+ add syntax filter for enscript ".st" files.
+ add xml-filter based on html-filter.
+ add pot-filt.l, to highlight ".po" files. Using sh-filt.l was
not satisfactory since the quoting rules were not close enough.
+ add syntax filters and corresponding modes for assembler (GNU and M$),
info and texinfo.
+ add -j option to c-filt.c, to implement some java-specific features
such as "$" as part of an identifier, and \u escapes.
+ add un-filters (atr2ansi, atr2html, atr2text) which convert encoded
control/A text to different forms.
+ modify spell.rc, spellflt.l and select.c to allow spell filter to
work as a built-in filter.
+ modify built-in spell filter to work with encrypted files.
+ add a -t option to filters, to pass tabstop value. Use this in
makefilt.l to provide better highlighting of problems with leading
whitespace.
+ modify manpage.rc to check if the current buffer is perl, and if so,
to render contents using pod2man or pod2text.
+ set "vilemode" for [History] buffer.
+ reorder lex-based filters to allow building with flex 2.5.31, which
introduces several incompatibilities with respect to flex 2.5.4
and lex.
+ add configure check/warning for flex 2.5.31, which has broken support
for the "-P" option used for built-in filters.
up with latest perl API. While here, modify the builds so that vile and
xvile don't conflict when xpkgwedge is installed.
Fixes pkg/10947 by Matthias Scheler <tron@lyssa.zhadum.de>.
and obviating the need for two distinct distfiles.
Update the vile package to version 8.3.
Remove the USE_MENUS /etc/mk.conf definition, which had very little
point. Add configuration args to use xpm, and to make perl support
legitimate.
Changes since 8.2 include:
+ Add xpm support in xvile.
+ make C-style indent logic available as a mode 'cindent', so it can be
assigned as part of a majormode. It is part of the builtin cmode.
+ added "-132" and "-80" command-line switches to set screen width from
command line.
+ many other bug fixes, restructuring, and changes.
+ check for null top_widget in x_close; other xvile crashes on VMS.
+ modify glob-expansion to always recognize "~" as a synonym for
$HOME if Unix-style passwd interface does not return anything
useful (adapted from a patch by Ed Henderson).
+ rename vile.spec to vile-8.1.spec, change configure option to use
Athena widgets so xvile is built with menu support (Radek Liboska).
** This is not an 8.3 filename, but is used only on Linux.
+ modify to use X11R6 input method and dead key support (patch by
Stanislav Meduna <stano@trillian.eunet.sk>).
+ correct click-timeout value for xvile, overlooked in 8.1u (reported
by Ryan Murray).
+ minor fixes to menu.c so that xvile builds on OpenVMS 7.2 with DEC C.
> patches by Clark Morgan (mostly for visvile):
+ modified the w32 versions of vile so that during clipboard copy
operations any character, c, in the following range:
c > '~' && c >= val(printing-low) && c <= val(printing-high)
is not translated to a hex representation (\xdd).
(from report by Jukka Keto <Jukka.Keto@kati.fi>)
+ extended/updated README.PC
+ add explanation of filterregion() portability (spawn.c)
+ modify in conjunction with visvile, to have the ability to redirect
user-specified keystrokes to DevStudio.
+ add a new file called visvile/visvile.dsm (a collection of DevStudio
macros).
+ added an environment variable called $cfgopts to the editor.
+ add logic to ins_anytime() to prevent recursion or use in minibuffer,
e.g., when pressing the insert-key.
+ correct an ifdef for SYS_VMS in main.c from 8.0s which left other
platforms using vfork (reported by Ryan Murray and Billy Little).