LUIT - Change Log

Copyright 2006-2021,2022 by Thomas E. Dickey

This file contains a list of the changes that I have made for luit.

2022/10/28 -

- fix a few compiler-warnings
- updated `plink.sh`, from xterm.
- updated configure script, to work around regression in grep 3.8
- updated configure macros for compiler-warning fixes.
- update config.guess, config.sub, install-sh

2022/01/11 -

- rename `package/debian` to avoid misuse by Debian build-system.
- updated `plink.sh`, from xterm, to work around poor performance of gcc on Fedora.
- updated configure macros for compiler-warning fixes.
- update config.guess, config.sub

2021/02/18 -

- repair/improve the check for X manpage's section, using a fix from xterm patch #302.
- if a “`.enc`” file is found, but no built-in character set description is found, add that to the internal font-encoding table to allow it to be used, like the built-in character sets.
- modify `annotate-enc` to handle the external “`.enc`” which were used with the older `luit`.

2021/02/14 -

- add `annotate-enc` script, use that to annotate the ".enc" files.
- add built-in encoding `apl2` (prompted by patch by Jerome Ibanes).

2021/01/14 -

- minor cleanup of file-descriptors, for readability.
- updated configure macros for quoting/escaping fixes.
- update config.guess, config.sub

2020/10/03 -

- updated configure macros:
  - compiler-warning fixes
  - build-fixes for OpenBSD and macOS
- update config.guess, config.sub

2019/12/31 -

- updated configure macros.
- update config.guess, config.sub

2019/01/06 -

- updated configure macros to work around a non-POSIX feature of BSDs.
- add a dummy "check" rule to makefile for Arch packages.
- add `COPYING` file for Arch packages.
- use consistent wording for copyright notice in source-files.
- update config.guess, config.sub

2018/12/11 -

- build-fixes/updates for cygwin to accommodate configure-macro changes.
- updated configure macros:
  - `CF_CC_ENV_FLAGS`, add check for preprocessor-options in `$CFLAGS`.
  - `CF_FUNC_GRANTPT`, amend the `posix_openpt` vs `grantpt` change to work with BSDs
  - `CF_GNU_SOURCE`, fixes a regression for Cygwin. The check for _DEFAULT_SOURCE should apply to "recent" Cygwin (since early 2016), and except for "NEWLIB" vs "GLIBC" in the test, acts the same if I pretend that "newlib" is the GNU C library. Without this, the check falls through to the _XOPEN_SOURCE test, which breaks the pseudoterminal checks for xterm.
  - `CF_LD_RPATH_OPT`, suppress check if `--disable-rpath` is given.
  - `CF_XOPEN_SOURCE`, add midnightbsd to special cases with freebsd
- update config.guess, config.sub

2018/06/28 -

- modify configure script to avoid using OpenBSD's nonfunctional POSIX pseudoterminal interface.
- add null-pointer checks for all strings printed in trace calls.
- updated configure macros, deprecating use of `_GNU_SOURCE` symbol for `DEFAULT_SOURCE`, and preferring `man2html` over groff's html conversion.
- update config.guess, config.sub

2016/05/08 -

- adapt Solaris fix for C11 changes from xterm #325.
- modify `parseArgs` to check for a special case, e.g., from xterm, where a shell command that cannot be exec'd is passed as a single parameter. For that case, run the command via the shell.
- reset `IEXTEN` when turning off canonical mode, needed to make `lnext` control/V work consistently on BSD platforms (report/patch by Christian Weisgerber).
- updated configure macros:
  CF_FUNC_POLL
    add a fallback to checking with `posix_openpt()`, in case someone's running the configure script in batch mode.
  CF_LD_RPATH_OPT
    change FreeBSD to use `-Wl,-rpath` rather than `-rpath` option. According to FreeBSD #178732, either works since FreeBSD 4.x; however `scons` does not accept anything except the `-Wl,-rpath` form.
  CF_WITH_MAN2HTML
    use configured shell rather than `/bin/sh`
  CF_XOPEN_SOURCE
    add a case for OS/2
- update config.guess, config.sub

2015/07/06 -

- add configure option `--with-man2html`
- updated configure macros, mostly formatting changes from xterm, etc.
- update config.guess, config.sub

2014/12/04 -

- add table entries for luit to work as expected with CP865 — MS-DOS with Nordic letters. This code page was commonly used on BBSes in Norway, Denmark and Sweden running the MBBS and compatible systems in the 90s (patch by Hans Petter Jansson).
- add to search-list for encodings.dir file to accommodate Fedora.
- updated configure macros:
  - add `/usr/pkg` and `/opt/local` to help configuring with pkgsrc and macports.
  - fixes for Clang and MinGW, Solaris and Unixware.
  - improve "docs" rule in makefile.
  - CF_RPATH_HACK: use sort and uniq rather than sort -u, to work with HPUX 11.11, etc.
  - CF_ADD_LIBS: filter duplicate library names
- update config.guess, config.sub

2013/02/17 -

- bump to 2.0, reflecting changes
- add character-set entries for CP1255 and CNS-11643 planes 1-3 to allow use of some of the remaining ".enc" files.
- modify `-list` option to show character set sizes.
- add `-prefer` option to control the lookup order between iconv, fontenc, builtin and posix character set data.
- add `-show-builtin` option to show details of a particular built-in encoding.
- add `-list-builtin` option to show built-in encodings embedded. This is available only for the iconv configuration; the fontenc library has no API for retrieving the information.
- change defaults for configure script options `--enable-iconv` and `--enable-fontenc` to deprecate the fontenc library.
- replaced existing built-in encoding tables with augmented set generated from iconv to obviate need for fontenc's tables as a fallback.
- add prefix translations from `IBM-CP` to `CP` ), etc., to make fontenc's encoding name "ibm-cp866" work with luit.
- add `koi8-e` to locale-charsets table, to make that encoding work.
- add `-show-iconv` to show a given encoding from iconv using the ".enc" format.
- add `-fill-fontenc` option to control output format of `-show-fontenc`.
- add `-show-fontenc` option to show a given encoding, e.g., from a ".enc" file using the ".enc" format.
- add `-list-fontenc` option to show available encodings using the ".enc" files which should be distributed with the fontencoding library.
- add `-list-iconv` option to show encodings and corresponding locales supported in the iconv configuration.
- document `-kg0`, etc., in manpage.
- revise the help option `-h`, providing a summary of each option rather than the abbreviated listing. The abbreviated listing is still provided when an unrecognized option is encountered.
- improve error recovery in the iconv configuration by falling back to POSIX encoding if no encoding can be found in the system's tables.
- apply workaround from xterm patch #279 to make window size set for pty implementation such as Mac OS X which lose this when opening the other side of the connection.
- fix issues from Coverity scan; all were minor.
- update config.guess, config.sub

2012/10/14 -

- review/improve no-leaks checking with valgrind.
- add null-pointer checks in `copyOut` in case a non-8bit encoding was used with the iconv configuration.
- document environment variables used by luit in its manpage.
- amend the check using `nl_langinfo(CODESET)` in 2011/10/30 changes, ignoring that section if the `-encoding` option was given (report by Alexios Zavras).
- support `--datarootdir` option in configure script.
- updated configure macros:
  CF_FUNC_GRANTPT
    add another step to the test-program.
  CF_FUNC_POLL
    fix the case where stdin is redirected, e.g., in rpm/dpkg builds (reported in Debian #676461). Also correct return-check, which could have been confused by typing on the keyboard while the check was running.
  CF_GCC_ATTRIBUTES
    use AC_DEFINE_UNQUOTED() rather than appending to confdefs.h, since long-ago concern about the ability to pass-through parameterized macros appears to be not a problem, testing with 2.13 and 2.52
  CF_GCC_VERSION
    add workaround for Debian's modification of the version message
  CF_GCC_WARNINGS
    add check for clang
  CF_PATHSEP
    add message to show the actual value used.
  CF_PATH_SYNTAX
    also match (for substitution) variables such as ${includedir}
  CF_WITH_PATH
    fix after changes in ncurses to use --datarootdir
  CF__GRANTPT_BODY
    add an ifdef'd chunk #5 for testing the 'tty' (rather than 'pty') and moved the important 'pty' chunk before opening the slave device as a simple way of making the test program lose any possible race between parent/child processes in initializing both sides of the pseudoterminal (report by Christian Weisgerber).
  miscellaneous
    cleanup based on byacc 20121003.
- update config.guess, config.sub

2012/1/29 -

- improve portability of the iconv configuration by checking alternate forms for the encoding name passed to `iconv_open`.
- add configure check for working `posix_openpt`, which may be broken in Mac OS X's current release 10.7 Lion (report by Kirby Zhou).
- add some error checking for the `poll` and `select` logic to avoid looping when a file descriptor is no longer valid.
- improve configure check for working `poll` function to avoid using Mac OS X's broken implementation (tested with Darwin 10.8.0).
- updated configure script macros:
  CF_FUNC_GRANTPT
    modify check to exclude Darwin 9.x and lower from using posix_openpt. Bug report for xterm by Christian Ebert for 9.8.0 says screensize does not work for the pty.
  CF_XOPEN_SOURCE
    fixes for redefinition of _XOPEN_SOURCE on a few platforms: Mac OS X, IRIX64. Also workarounds for header inconsistencies with OpenBSD and MirBSD.

2011/10/30 -

- modify configure script to add `X_LIBS` symbol after resolving fontenc library, to use the associated `-L` option in subsequent configure-checks.
- add `-t` to simplify testing available locales versus luit's tables and the `locale.alias` file.
- add "US-ASCII" for C/POSIX to the locale-charset table.
- add entries to the locale-charset table to correspond with the font-encoding table, making it possible to use locales defined with each named charset (reported by Andrey Ivanov, also reported in Freedesktop #41857).
- modify the lookup by locale charset to help match results from `nl_langinfo(CODESET)` by mapping commonly used prefixes into the prefixes used by luit.
- check for, and use `nl_langinfo(CODESET)` to augment X's `locale.aliases` file for determining the encoding to use.
- workaround limitation in copying terminal settings on Solaris from original tty to pty.
- add /usr/openwin/lib/locale to search-list of locale.alias for Solaris 10.
- improve configure script so that it does not error-out if fontenc is unavailable, using iconv instead.
- bump version to 1.2, noting xorg hackers having marked (with only cosmetic changes) the 2010/6/1 snapshot as "1.1.0".
- add/use configure check for `posix_openpt`, prompted by FreeBSD ports/161480.
- updated configure script macros: CF_ANSI_CC_CHECK CF_DISABLE_RPATH_HACK CF_LD_RPATH_OPT CF_PKG_CONFIG CF_RPATH_HACK CF_SVR4 CF_WITH_ZLIB CF_XOPEN_SOURCE
- update config.guess, config.sub

2010/11/28 -

- use `plink.sh` script from xterm to reduce unneeded library dependencies, e.g., from fontenc's buggy package script.
- eliminate quoted- and duplicate-includes.
- make `-g0` and similar options actually work, by adding checks in `initIso2022`.
- add messages for the repeated `-v` option, to show which parts of the font-encoding configuration fail, for troubleshooting.
- add configure option `--disable-leaks`, etc.
- add configure option `--enable-trace`.
- add configure option `--enable-iconv`, to use GNU iconv, which is far more portable than fontenc.
  - Initially, this supports single-byte encodings such as ISO-8859-x.
  - DEC special and technical character sets are supported via custom tables.
- use static variables and functions consistently, where external linkage is not required.
- updated configure script macros, e.g., to deprecate shell syntax no longer supported by bash.
- modify manpage to use "misc" category for the miscellaneous Linux manpages cited in the "SEE ALSO" section, prompted by xorg change for 1.1.0 version.

  Aside from that (and some cosmetic changes to C source, as well as providing a different configure script), and omitting this change-log, the xorg 1.1.0 is the same as the 2010/6/1 version. Its release notes state:

  > This release includes these changes from Thomas Dickey's luit-20100601:
  > - add -alias option to allow override of locale.alias pathname.
  > - improve fix waitForInput as suggested in Freedesktop #26383.
  > - fix warnings from clang --analyze

2010/6/5 -

- fix a typo in ifdef for `<sys/param.h>` which made setuid feature not work properly for FreeBSD.
- improve configure check for `locale.alias` file for OpenSolaris.
- add configure option `--disable-rpath-hack`, modified configure script to normally supply an rpath option if possible to simplify linkage to libraries in unusual places.

2010/6/1 -

- add makefile rules for generating pdf, etc., for manpage.
- modify `minstall.sh` to update program name if the configure script options such as `--program-prefix` were used to rename the program.
- add Debian package scripts (requires some assembly...).
- add rpm spec-file (see my ftp area for binaries).
- add `-alias` option to allow override of `locale.alias` pathname.
- improve configure check for `locale.alias` file for NetBSD.
- improve fix `waitForInput` as suggested in Freedesktop #26383.
- drop `mkdirs.sh`, use `mkdir -p`.
- improve configure script for ctags/etags, e.g., to work with pkgsrc.
- drop `Imakefile`
- fix warnings from `clang --analyze`
- updated configure script macros, mostly for quoting- and variable initialization fixes.
- update config.guess, config.sub

2009/10/14 -

- add `-V` version option.
- work around defective implementation of gcc attribute warn_unused_return.
- add configure check for `openpty`, use that on systems such as OpenBSD rather than requiring setuid operation.
- ifdef `open` to work with incomplete definitions for `O_NOCTTY` and `TIOCSCTTY` (adapted from patch by Yaakov Selkowitz).

2009/8/16 -

- reset connection to blocking mode on exit.
- modify `poll`-flavor of `waitForInput` to also check if the connection has hung up.
- improve initialization for `-p` command-line option to work with more BSD-flavors.
- improve configure script checks for font encoding library using AC_PATH_XTRA, and noting that font encoding library may depend upon z library.
- replace #ifdef to define `HAVE_GRANTPT` with configure script.
- improve use of `const` more consistently in sources.
- clean up include-dependencies by including config.h before other includes.
- add change from xorg git:
  - luit: Convert platform #ifdefs to configure tests for functions & headers
    (adds configure checks for functions and headers used to open pty's, uses that to replace a derived #define for `HAVE_POLL`, #ifdef's the corresponding headers and modifies #ifdef for `I_PUSH` ioctl to add `__SVR4`).
- updated configure script macros: CF_ADD_CFLAGS CF_ADD_INCDIR CF_ADD_LIBDIR CF_ADD_SEARCHPATH CF_FIND_LINKAGE CF_GCC_ATTRIBUTES CF_GCC_WARNINGS CF_HEADER_PATH CF_LIBRARY_PATH CF_PATH_PROG CF_PKG_CONFIG CF_XOPEN_SOURCE CF_X_FONTENC
- update configure utility scripts (config.guess, config.sub, install-sh, mkdirs.sh).

2008/8/29 -

- add `-p` option, to make the wait-pipe workaround from XFree86 optional. The default behavior is the older one.

2008/8/24 -

- add ifdef for `NO_LEAKS`, to check for memory leaks. Found none in luit; font encoding library does have leaks.

2008/8/23 -

- update `minstall.sh` from xterm to fix possible scripting dependency upon locale.
- set ncurses' `NCURSES_NO_UTF8_ACS` environment variable to simplify use of line-drawing characters in `luit`.
- improve default value for `locale.alias` pathname by checking in the more common X11 locations.

2008/8/21 -

- use codepage change from luit 1.0.2
- modify configure script so `--with-fontenc-cflags` and `--with-fontenc-libs` options with when `pkg-config` is not available.
- fixes for configuring fontenc library without `pkg-config`.
- fixes for gcc `-Wwrite-strings` warnings.
- fixes for gcc `-Wconversion` warnings.
- updated configure script macros CF_ANSI_CC_REQD, CF_CHECK_CACHE, CF_FIND_LIBRARY, CF_GCC_ATTRIBUTES, CF_GCC_WARNINGS, CF_IMAKE_CFLAGS, CF_MSG_LOG, CF_PATH_SYNTAX, CF_POSIX_SAVED_IDS, CF_SUBDIR_PATH, CF_TYPE_FD_SET, CF_VERBOSE, CF_WITH_PATH, CF_WITH_ZLIB, CF_XOPEN_SOURCE.
- update configure utility scripts (config.guess, config.sub, install-sh, mkdirs.sh).

2006/8/20 -

- import snapshot from XFree86 (last change 2005/2/9).
- inspected Xorg sources, found no newer changes of note.
- wrote a configure script.
- minor code cleanup (fix compiler warnings, add ifdef's to prevent repeated inclusion of header files, remove redundant #include's, indented code).