Searching XEmacs
help
Quick Links About XEmacs Getting XEmacs Customizing XEmacs Troubleshooting XEmacs Developing XEmacs

XEmacs 21.5.35 "kohlrabi" is released

goto announcement, summary, changes

From: "Aidan Kehoe" <kehoea@parhasard.net>
Subject: XEmacs 21.5.35 "kohlrabi" is released.
Organization: The XEmacs Project
* XEmacs 21.5.35 "kohlrabi" is released.
 "kohlrabi" is the thirty-sixth in the VEGETABLE series.
This release is the first beta release since 2013. The most important change
included is a merge of Ben Wing’s work providing Unicode as an internal
format. The bulk of this work was done coming up to 2010 and it was merged to
the trunk in 2016. To enable it, pass --with-mule
--with-unicode-internal as arguments to the configure
script.
Important other changes are Jeff Sparke’s work updating the GTK support to
handle GTK3, Jerry James’ work to add transport level security (TLS, including
SSL) support to the network code, Aidan Kehoe’s to improve algorithmic
complexity problems related to use of character positions in C code, Jaakko
Salomaa’s work to support the OpenSSL bignum implementation, work from
multiple people to have XEmacs build on 64-bit Windows.
Changes to improve maintainability include removal of support for Windows
95/98/ME, removal of support for unexec, removal of support for 
incremental garbage collection (slower, more memory-intensive, and buggier
than the alternative), removal of support for non-KKCC memory descriptions
(KKCC was done as part of the incremental GC work, but is stable, fast and
reliable), removal of several redundant C-level hash table implementations,
moving many non-hotspot functions from C to Lisp.
This is the development line. The current series started with XEmacs
21.5.0 (an alias for XEmacs 21.4.0 "Solid Vapor", the first release in
the current stable line). 21.5 is the code base for introduction of
major new subsystems and fixes to design bugs that experience shows will
introduce instability. So far the main effort has been on improved
support for Unicode, updates to the build infrastructure, and development
of new features in memory allocation.
For general information about XEmacs, the developers, and the user
community, see our home page,
		 http://www.xemacs.org/
* XEmacs 21.5.35 is "beta" software. 
The usual "no warranty" disclaimer (see etc/COPYING, sections 10 and 11)
applies. At this point in time, it is the version that most developers
are using for their daily work. However, it is certain that many bugs
remain and new ones will be introduced as development proceeds. Be sure
to take care to save your work often and follow a regular backup regime.
* Availability
Anonymous ftp:
 ftp://ftp.xemacs.org/pub/xemacs/xemacs-21.5
See http://www.xemacs.org/Install/ for more information about building
from source.
Also, if you don't have the packages yet, see
 http://www.xemacs.org/Documentation/packageGuide.html.
Mercurial repository:
 https://foss.heptapod.net/xemacs/xemacs
This is a read-only Mercurial repository. To check out XEmacs 21.5.35,
use the command
 hg clone -r r21-5-35 https://foss.heptapod.net/xemacs/xemacs
to create a new Mercurial workspace, or
 hg pull -u -r r21-5-35
if you already have a local workspace from Mercurial. To update to the
most recent commits to the official repository, use
 hg pull -u tip
For more details, see
 http://www.xemacs.org/Develop/hgaccess.html .

Changes in XEmacs 21.5.35 "kohlrabi"

goto announcement, summary, changes

Major Features, Bugfixes, and Backward Incompatible Changes

User-Visible Bug Fixes and Improvements

Build Infrastructure and Source Tree

Documentation

Lisp API

Internal API and Implementation

Testing and Debugging

ChangeLogs for XEmacs 21.5.35 "kohlrabi"

goto announcement, summary, changes

ChangeLog Entries from ChangeLog

goto announcement, summary, changes

2023年05月13日 Aidan Kehoe <kehoea@parhasard.net>
 * XEmacs 21.5.35 "kohlrabi" is released.
2022年12月24日 Aidan Kehoe <kehoea@parhasard.net>
 * configure.ac: Revise Mats' change of 8dac3e59da3f to avoid
 extended regular expressions, not guaranteed to work with sed(1),
 and not necessary.
 Mats' change allowed for patch numbers in makeinfo(1)'s version
 output, as does this.
 * configure: Regenerate.
2022年10月28日 Jaakko Salomaa <jaakko.salomaa@iki.fi>
 * configure.ac:
 In my previous change, the preprocessor detection of a Canna version
 that uses the CANNA_NEW_WCHAR_AWARE preprocessor define was broken with
 preprocessors that split the result of two tokens in the same line to
 two lines. Use the standard C preprocessor substitution and
 concatenation to make the test robust.
 In operating systems where the standard headers define _WCHAR_T,
 autodetecting Canna's RK.h fails unless CANNA_NEW_WCHAR_AWARE is
 defined. Split the header detection to check the requirement from
 jrkanji.h and then use the result to detect RK.h.
2022年10月25日 Jaakko Salomaa <jaakko.salomaa@iki.fi>
 * configure.ac:
 Canna detection was attempting to use an environment variable,
 $ac_header_compiler, to deduce the result of simple header checks. It
 might have worked in some previous version of autoconf, but not
 anymore, resulting in the detection being non-functional. Also I'm not
 sure what the check for -DCANNA_NEW_WCHAR_AWARE tried to do, since I
 tested the Canna versions previous to where that flag was introduced,
 and as far as I can tell, the test has never worked. U WOT M8.
 Rewrite the detection. Make configure error out if Canna was requested
 explicitly with --with-canna and detection didn't pan out.
 * configure: Renegerate.
2022年07月31日 Jaakko Salomaa <jaakko.salomaa@iki.fi>
 * configure.ac:
 $with_infopath was written as $with_info_path, causing the config
 flag --with-infopath to generate an empty define for PATH_INFOPATH
 for src/paths.h. Fix.
 * configure: Renegerate.
2022年07月24日 Jaakko Salomaa <jaakko.salomaa@iki.fi>
 * configure.ac:
 Remove the check for a Cygwin sscanf() bug. It was encountered by Ben
 Wing in 2004, and is fixed nowadays.
 * configure: Regenerate.
 * Makefile.in.in:
 Tiny change unrelated to the Unicode mapping: Fix the checking of
 test ! -d $${dir} for mkdir $(DESTDIR)$${dir} to
 test ! -d $(DESTDIR)$${dir}.
2022年07月10日 Jaakko Salomaa <jaakko.salomaa@iki.fi>
 * configure.ac:
 Add detection from Free/Net/OpenBSD libkvm's for the memory usage API.
 Add the POSIXly correct -Wl,-R option to the tested list of compiler-
 to-linker passthrough parameters. Thanks to nbhauke for pointing to
 this.
 * configure: Regenerate.
2022年07月08日 Jaakko Salomaa <jaakko.salomaa@iki.fi>
 * configure.ac:
 Add Solaris >= 10 _XOPEN_SOURCE=600 define so that sys/feature_test.h
 doesn't choke on C99 mode. See
 https://docs.oracle.com/cd/E88353_01/html/E37853/xpg6-7.html for
 details.
 Fix /usr/ucbinclude in known include paths, add /usr/sfw/include to
 them.
 Improve libmp type detection.
 * configure: Regenerate
2022年06月30日 Jaakko Salomaa <jaakko.salomaa@iki.fi>
 * configure.ac: Fix the PostgreSQL header detection.
 * configure: Regenerate.
2022年06月19日 Jaakko Salomaa <jaakko.salomaa@iki.fi>
 * configure.ac:
 Fix the broken linker -R flag detection under BSD.
 Generalize the include directory detection mechanism, broadening the
 FreeType detection while at it.
 Fix a pattern of incorrect "test_command; if test "$?"; then ...; fi"
 usage that made configure quite unreliable.
 Remove the hardcoded pkg-config dependency that caused configure error
 messages and compile errors with the assumption that a non-existent
 pkg config yielded a working "--libs". Make all call sites that
 actually require pkg-config fail-fast autodetection instead of giving
 false positives that crash builds. This also fixes ncurses support in
 systems without pkg-config.
 * configure.ac (XE_PROTECT_LINKER_FLAGS):
 Fix LLVM compilation by making XE_PROTECT_LINKER_FLAGS() recognize
 -f flags for CLANG like -fstack-protector-strong and not pass them to
 the linker with -Xlinker.
 * configure.ac (XE_ADD_TO_LIST):
 New macro, adds an entry if it isn't already in an environment var.
 * configure.ac (XE_TLS_TEST):
 * configure.ac (XE_LOCATE_NSS):
 Revamp completely the TLS detection mechanism so that it now actually
 works with and without pkg-config.
 * configure: Regenerate.
2022年06月16日 Aidan Kehoe <kehoea@parhasard.net>
 * configure.ac: Don't check for intptr_t, not needed.
 * configure: Regenerate.
2022年05月18日 Jaakko Salomaa <jaakko.salomaa@iki.fi>
 * configure.ac:
 Add --with-bignum=openssl for the OpenSSL bignum driver.
 * configure: Regenerate.
2021年10月27日 Aidan Kehoe <kehoea@parhasard.net>
 * configure.ac:
 We have removed support for the old GC mark algorithms, and so
 --with-kkcc is no longer needed, since it is the default.
 * configure: Regenerate.
2021年10月27日 Aidan Kehoe <kehoea@parhasard.net>
 * configure.ac:
 Remove support for unexec from configure.ac, which means no longer
 any need for --with-pdump, it is the default.
 * configure: Regenerate.
2021年10月27日 Aidan Kehoe <kehoea@parhasard.net>
 * configure.ac (AC_LANG):
 * configure.ac (XE_COMPLEX_ARG):
 * configure.ac (TAB):
 * configure.ac (CPP_MAKEFILE):
 Run autoupdate on configure.ac, take its advice regarding the lack
 of a need to #define STDC_HEADERS, the lack of a need for a
 RETSIGTYPE #define, the lack of a need for a TIME_WITH_SYS_TIME
 #define that is distinct from HAVE_SYS_TIME_H.
 * configure: Regenerate.
2021年10月23日 Aidan Kehoe <kehoea@parhasard.net>
 * configure: Regenerate.
 * configure.ac (XE_COMPLEX_ARG):
 * configure.ac (TAB):
 Remove support for --with-newgc from this file, it is slower, more
 unstable, and uses more memory than the old GC.
2021年09月09日 Aidan Kehoe <kehoea@parhasard.net>
 * README (Note):
 Update a link in this file, now Bitbucket support for Mercurial is
 no longer extant. Thank you J Lewis Muir on Heptapod!
2021年01月01日 Henry S. Thompson <ht@home.hst.name>
 * configure.ac: make explicit --with-ncurses work again
 --with-ncurses stopped working as a result of the 2020年03月29日
 change that made it unnecessary, fixed.
 * configure: Regenerate.
2020年11月25日 Aidan Kehoe <kehoea@parhasard.net>
 * configure.ac: Check for strsignal().
 Only in its absence check for sys_siglist, which recent glibc no
 longer provides given its lack of thread safety.
 * configure: Regenerate.
2020年03月29日 Aidan Kehoe <kehoea@parhasard.net>
 * configure.ac:
 Use pkg-info if available to determine the linked libraries
 necessary for ncurses, thank you Mats Lidell.
 * configure: Regenerate.
2018年11月01日 Jerry James <james@xemacs.org>
 * configure.ac: OPENSSL_init_crypto is gone; check for
 OPENSSL_init_ssl instead.
 * configure: Regenerate.
2018年04月10日 Aidan Kehoe <kehoea@parhasard.net>
 * configure.ac (TAB):
 No longer check for wcwidth().
2017年11月23日 Aidan Kehoe <kehoea@parhasard.net>
 * configure.ac:
 Don't just take the first link-time option to disable ASLR that
 links, check that it actually disables ASLR (in the same way we
 checked for ASLR in the first place) before choosing it. Thank
 you for the bug report, Stephen Turnbull.
 * configure: Regenerate.
2017年11月23日 Stephen J. Turnbull <stephen@xemacs.org>
 * configure.ac (Disable ASLR): Output $no_pie in AC_MSG_RESULT.
 * configure: Regenerate.
2017年11月23日 Aidan Kehoe <kehoea@parhasard.net>
 * configure.ac (XE_COMPLEX_ARG):
 Make a HAVE_GLIBC #define available, turns out autoconf is too
 enthusiastic about _GNU_SOURCE, #defining it even on non-glibc
 systems.
 Accept MAP_ANON, a BSDism, as an alias for MAP_ANONYMOUS here.
 Be careful not to redefine an existing definition for MAP_ANONYMOUS
 Remove a caddr_t variable, this type is long obsolete and the
 variable was unused.
 * configure: Regenerate.
2017年11月23日 Aidan Kehoe <kehoea@parhasard.net>
 * configure.ac (XE_COMPLEX_ARG):
 Remove gmalloc.c, remove the configure line options
 --with-dlmalloc, --with-system-malloc, --with-debug-malloc. Always
 use the system malloc. Autodetect __after_morecore_hook, use it
 for our memory-full warning if available, otherwise ignore it.
 Use mcheck.h if ERROR_CHECK_MALLOC is defined, as we had planned
 for years pending its maturity.
 * configure.ac (have_libmcheck): Make this available.
 * configure: Regenerate. 
2017年11月15日 Aidan Kehoe <kehoea@parhasard.net>
 * configure: Regenerate.
 * configure.ac:
 Take a more general approach to checking for ASLR; check for the
 technique itself initially, don't just examine the operating
 system or the compile-time #defines. Then to work around it try a
 list of techniques, using the first one that compiles.
 This may bring an end to the XEmacs tradition of a single-line
 configure.ac commit every time a new Mac OS version is released.
2017年11月14日 Aidan Kehoe <kehoea@parhasard.net>
 * configure: Regenerate.
 * configure.ac:
 Detect and disable ASLR on Linux as well as on Darwin, it doesn't
 work with our approach to dumping.
 Limit this to the main xemacs binary, not movemail, gnuclient and so
 on.
2017年11月07日 Aidan Kehoe <kehoea@parhasard.net>
 * configure.ac (XE_COMPLEX_ARG):
 Document that we default to the system malloc.
 * configure.ac:
 Implement this. Use src/gmalloc.c if --with-system-malloc=no was
 supplied, otherwise use the system malloc.
 Document that the right next step is to remove src/gmalloc.c, and
 to use __after_morecore_hook and malloc_set_state if those are
 available in the system malloc, not otherwise.
 * configure:
 Regenerate.
2017年03月13日 Aidan Kehoe <kehoea@parhasard.net>
 * ChangeLog:
 Update mid.gmane.org to mid.xemacs.org. We miss you, Gmane.
2016年12月27日 Aidan Kehoe <kehoea@parhasard.net>
 * configure:
 Regenerate for the GTK branch.
2017年01月23日 Jeff Sparkes <jsparkes@gmail.com>
 * configure.ac (HAVE_XFACE): giflib 5.0 removed a function we
 were checking for.
 * configure: Rebuild.
2017年03月15日 Aidan Kehoe <kehoea@parhasard.net>
 * configure.ac:
 Don't #define _BSD_SOURCE or _SVID_SOURCE on glibc, even if xmkmf
 asks us to. Silences a warning on Linux. Thank you Mats Lidell.
 * configure: Regenerate.
2016年11月05日 Michael Sperber <mike@xemacs.org>
 * configure.ac: Disable ASLR on macOS Sierra..
 * configure: Rebuild.
2016年10月13日 Jerry James <james@xemacs.org>
 * configure.ac: Fix OpenSSL detection for versions >= 1.1.0.
 * configure: Regenerate.
2016年09月26日 Aidan Kehoe <kehoea@parhasard.net>
 * src/doprnt.c (doprnt_2): Increase the complexity of this
 function, handle flags as appropriate for rationals (not just
 strings). We don't take rationals as arguments just yet, this is
 an incremental change.
2015年10月28日 Marcus Crestani <crestani@xemacs.org>
 * configure.ac: Disable ASLR on El Capitan.
 * configure: Rebuild.
2015年05月05日 Stephen J. Turnbull <stephen@xemacs.org>
 * configure.ac (Installation): Report all compiler switches.
 * configure: Regenerate.
2015年05月05日 Stephen J. Turnbull <stephen@xemacs.org>
 * configure.ac (XE_EXPAND_VARIABLE):
 (CPP_to_sh):
 (CPP_boolean_to_sh):
 (COLON_TO_SPACE_WARN):
 Collect with other macro definitions.
 * configure: Regenerate.
2015年05月05日 Stephen J. Turnbull <stephen@xemacs.org>
 * configure.ac (PostgreSQL): Fix shell syntax error.
 * configure: Regenerate.
2015年05月04日 Stephen J. Turnbull <stephen@xemacs.org>
 * configure.ac (PostgreSQL): Allow specification of subdir.
 Add most recent versioned directories for multiversion
 installations (eg, MacPorts.
 * configure: Regenerate.
2015年04月09日 Aidan Kehoe <kehoea@parhasard.net>
 * configure.ac:
 If X509_check_host() is available, check the number of arguments
 it takes. Don't use it if it takes any number of arguments other
 than five. Also don't use it if <openssl/x509v3.h> does not
 declare it, since if that is so there is no portable way to tell
 how many arguments it should take, and so we would end up smashing
 the stack.
 * configure: Regenerate.
2015年03月26日 Vin Shelton <acs@xemacs.org>
 * configure.ac: Recognize and support 64-bit cygwin, thanks to
 Henry S. Thompson <ht@inf.ed.ac.uk>.
 * configure: Regenerated.
2015年02月28日 Mike Kupfer <mike.kupfer@xemacs.org>
 * README: fix note about which Bitbucket repository to push to.
2015年03月19日 Stephen J. Turnbull <stephen@xemacs.org>
 * configure.ac (TLS): Prevent unintended fall-through to OpenSSL.
 * configure: Rebuild.
2015年01月11日 Stephen J. Turnbull <stephen@xemacs.org>
 * configure.ac (Xft): Remove dupes from pkg-config --cflags.
2015年01月10日 Stephen J. Turnbull <stephen@xemacs.org>
 * configure.ac (Postgresql): Improve Installation text.
 * configure: Rebuild.
2015年01月08日 Stephen J. Turnbull <stephen@xemacs.org>
 Fix progress bar crashes.
 Thanks to Ralf Soergel for diagnosis and a patch.
 * configure.ac (Athena widgets):
 Test for "international" resource in SimpleWidgetClass in libXaw3d.
 * configure: Rebuild.
2014年12月20日 Jeff Sparkes <jsparkes@gmail.com>
 * configure.ac: Remove obsolete gdk_imlib check.
2014年11月09日 Jeff Sparkes <jsparkes@gmail.com>
 * configure.ac (HAVE_GNUTLS): Add SSL/TLS libraries to $LIBS, not
 $LDFLAGS.
2014年10月10日 Marcus Crestani <crestani@xemacs.org>
 * configure.ac: Disable ASLR on Yosemite.
 * configure: Rebuild.
2014年10月09日 Jerry James <james@xemacs.org>
 * configure.ac: Check for TLS headers as well as libraries.
2014年10月07日 Jerry James <james@xemacs.org>
 * configure.ac: Add TLS support.
2014年02月11日 Jerry James <james@xemacs.org>
 * .hgignore: Add man/Makefile.
2013年11月19日 Jeff Sparkes <jsparkes@gmail.com>
 * configure.ac: Add support for --with-gtk=2 and --with-gtk=3 to
 build with a specific major version.
 * configure: Regenerate.
2013年11月15日 Jeff Sparkes <jsparkes@gmail.com>
 * configure.ac: Output exact GTK version.
 Simplify version checking code.
 Check for GTK 3.X first, then 2.X.
 (HAVE_GTK2): Remove incorrect second setting.
 * configure: Regenerate.
2013年10月28日 Marcus Crestani <crestani@xemacs.org>
 * configure.ac: Disable ASLR on Mavericks.
 * configure: Rebuild.
2013年09月15日 Jeff Sparkes <jsparkes@gmail.com>
 * configure.ac: Force -lX11 for GTK to link XKeycodeToKeysym.
 * configure: Regenerate.
2013年09月08日 Marcus Crestani <crestani@xemacs.org>
 * configure.ac: x86_64 Macs also use POSIX virtual-dirty-bit write
 barrier.
 * configure: Rebuild.
2013年07月28日 Stephen J. Turnbull <stephen@xemacs.org>
 * configure.ac (makeinfo):
 Use basic regexp. Avoid autoconf errors on empty version strings.
 Report version found if insufficient. Lightly tested.
2013年06月25日 Jerry James <james@xemacs.org>
 * INSTALL: Update required makeinfo version.
 * Makefile.in.in: Check for usable makeinfo before invoking submake.
 * configure.ac: Try to find makeinfo >= 4.12.
2013年06月23日 Stephen J. Turnbull <stephen@xemacs.org>
	* XEmacs 21.5.35 "kohlrabi" is released.
2013年06月17日 Jerry James <james@xemacs.org>
	* configure.ac: Support bignums with MPIR.
2013年06月17日 Jerry James <james@xemacs.org>
	* configure.ac: Add check for mp_set_memory_functions.
2013年03月12日 Jerry James <james@xemacs.org>
	* config.guess: Update to latest upstream version.
	* config.sub: Ditto.
	* install-sh: Ditto.
2013年03月04日 Jerry James <james@xemacs.org>
	* configure.ac: Check for large file support.
2013年03月04日 Jerry James <james@xemacs.org>
	* configure.ac: Complete removal of need_modules_common, forgotten
	in the previous patch.
2013年03月02日 Jerry James <james@xemacs.org>
	* configure.ac: Make symbolic links in src for module source files
	if they are built into the executable, so they are built with the
	same CFLAGS as the non-module source files.

ChangeLog Entries from etc/ChangeLog

goto announcement, summary, changes

2023年05月13日 Aidan Kehoe <kehoea@parhasard.net>
 * XEmacs 21.5.35 "kohlrabi" is released.
2022年10月24日 Jaakko Salomaa <jaakko.salomaa@iki.fi>
 * Emacs.ad:
 Specify the resolution_x and resolution_y fields for the default
 fonts that have 75 and 100 DPI versions in the X.org base distribution
 to prioritize the 75 DPI versions.
2017年09月30日 Aidan Kehoe <kehoea@parhasard.net>
 * HELLO:
 Encode the IPA using ISO-IR 196 rather than our proprietary
 charset, which we dropped in the process of merging the
 unicode-internal support.
2017年03月13日 Aidan Kehoe <kehoea@parhasard.net>
 * unicode/unicode-consortium/EASTASIA/OBSOLETE/BIG5.TXT:
 Update mid.gmane.org to mid.xemacs.org. We miss you, Gmane.
2015年01月25日 Jeff Sparkes <jsparkes@gmail.com>
 * xemacs.css: CSS styling file for Gtk 3.0.
2014年12月05日 Jerry James <james@xemacs.org>
 * xemacs.appdata.xml:
 * xemacs.desktop:
 * xemacs-icon.svg: New files for distribution packaging.

ChangeLog Entries from lib-src/ChangeLog

goto announcement, summary, changes

2023年05月13日 Aidan Kehoe <kehoea@parhasard.net>
 * XEmacs 21.5.35 "kohlrabi" is released.
2023年04月06日 Aidan Kehoe <kehoea@parhasard.net>
 * make-mswin-unicode.pl:
 The W32API headers have some preprocessor directives that end up
 matched by $rettype_re, remove them before further processing.
2022年07月15日 Jaakko Salomaa <jaakko.salomaa@iki.fi>
 * Makefile.in.in:
 Change the installation of scripts to use the command in the
 INSTALL_SCRIPT variable. This fixes attempting to install the script
 files with install(1)'s -s flag and failing because strip(1) doesn't
 work with shell scripts.
2022年06月19日 Jaakko Salomaa <jaakko.salomaa@iki.fi>
 * fakemail.c (cuserid): Fix FreeBSD compile.
2021年11月29日 Aidan Kehoe <kehoea@parhasard.net>
 * gnuclient.c (filename_expand):
 * winclient.c (doFile):
 * winclient.c (parseCommandLine):
 Fix some types, silence some unused-variable warnings in these
 files for the sake of clang++-8.
2021年10月27日 Aidan Kehoe <kehoea@parhasard.net>
 * etags.c:
 * fakemail.c:
 * hexl.c:
 * ootags.c:
 No longer check for STDC_HEADERS in these files, pre-C89 compilers
 are long obsolete.
2021年10月20日 Aidan Kehoe <kehoea@parhasard.net>
 * make-mswin-unicode.pl:
 Revise this now we have removed support for Win95/98/Me; generate
 the Unicode encapsulated code as inline headers that no longer
 check at runtime whether the Unicode versions of the functions
 should be called. No longer generate intl-auto-encap.c.
 Revise the file to better deal with the Cygwin headers and types,
 in a way that is compatible with Visual Studio 8.
2021年09月09日 Aidan Kehoe <kehoea@parhasard.net>
 * gnuserv.c (handle_unix_request):
 Update a link to a specific changeset on Heptapod here, now
 Bitbucket's Mercurial support is dead.
2020年03月17日 Aidan Kehoe <kehoea@parhasard.net>
 * gnuclient.c:
 * gnuclient.c (filename_expand):
 * gnuclient.c (clean_string):
 cygwin_conv_to_posix_path() has been removed, use
 cygwin_conv_path() instead.
2019年03月21日 Jerry James <james@xemacs.org>
 * pop.c: Prevent potential buffer overflows. The size argument to
 strncat() must be at most 1 less than the buffer size, to leave room
 for the terminating null byte. See strncat(3).
2018年04月27日 Aidan Kehoe <kehoea@parhasard.net>
 * make-case-conv.py:
 Remove this file, replaced by lisp/mule/make-case-conv.el
2017年11月09日 Aidan Kehoe <kehoea@parhasard.net>
 * make-case-conv.py:
 Document why this file's approach didn't work. Slot it for deletion.
2017年09月24日 Aidan Kehoe <kehoea@parhasard.net>
 * b2m.c (main):
 * etags.c:
 * etags.c (just_read_file):
 * movemail.c (main):
 * ootags.c (just_read_file):
 Silence a few compiler warnings in these files.
2017年03月15日 Aidan Kehoe <kehoea@parhasard.net>
 * make-docfile.c (scan_lisp_file):
 Don't wrap the integer counter when reading the length of a #@
 comment. Thank you for the tracker bug report, Hao Sun in tracker
 issue 870!
2015年03月08日 Aidan Kehoe <kehoea@parhasard.net>
 * gnuserv.c (echo_request):
 No longer close the file handle unconditionally, leave this to the
 individual socket types.
 * gnuserv.c (handle_internet_request):
 Close the file handle here.
 * gnuserv.c (handle_unix_request):
 Don't close the file handle here, document why (it broke gnuclient
 under OS X). It should actually be OK, but my suspicion is that
 the issues is that the Unix (local) domain sockets are still
 underdocumented compared to the internet sockets.
2014年12月05日 Jerry James <james@xemacs.org>
 * gnuserv.c (echo_request): close the socket when done
 (handle_unix_request): do not call echo_request on accept failure
2014年12月05日 Jerry James <james@xemacs.org>
 * pop.c (socket_connection): Do not leak a socket if the POP
 server's address cannot be determined.
2014年10月18日 Aidan Kehoe <kehoea@parhasard.net>
 * ootags.c (substitute):
 Cast the result of strlen to int before comparing it with a signed
 value, for the sake of compiler warnings.

ChangeLog Entries from lisp/ChangeLog

goto announcement, summary, changes

2023年05月13日 Aidan Kehoe <kehoea@parhasard.net>
 * XEmacs 21.5.35 "kohlrabi" is released.
2023年05月08日 Aidan Kehoe <kehoea@parhasard.net>
 * byte-optimize.el (byte-optimize-zerop):
 Don't use #'byte-optimize-zerop incorrectly in this function, use
 #'cl-safe-expr-p instead, which also checks that subforms do not
 have side effects.
 * byte-optimize.el (byte-optimize-side-effect-free-p):
 Add a docstring to this function, all going well preventing the
 above bug going forward.
2023年04月16日 Aidan Kehoe <kehoea@parhasard.net>
 * mule/compiled-unicode-tables.el (unicode-ignore-first-column):
 * mule/compiled-unicode-tables.el (harvest-unicode-files):
 * mule/compiled-unicode-tables.el (search-for-unicode-path-strings):
 * mule/compiled-unicode-tables.el (match-all-unicode-files):
 Revise these functions to respect directory-sep-char,
 necessary for building for win32-native.
2023年01月29日 Aidan Kehoe <kehoea@parhasard.net>
 * bytecomp.el (display-call-tree):
 Don't error within this when dealing with anonymous functions.
2022年12月24日 Aidan Kehoe <kehoea@parhasard.net>
 * info.el (Info-find-file-node):
 Info-tag-table-marker is buffer-local, and we need to
 #'set-marker on the value in the original buffer, not the tag
 table buffer. Avoid error with C-u F1 i ../info/lispref.info RET
 with this change.
2022年12月18日 Aidan Kehoe <kehoea@parhasard.net>
 * compat.el:
 * diagnose.el:
 * dialog-gtk.el:
 * dialog-items.el:
 * dump-paths.el:
 * font-menu.el:
 * font.el:
 * gdk.el:
 * generic-widgets.el:
 * glade.el:
 * gnome-widgets.el:
 * gnome.el:
 * gpm.el:
 * gtk-compose.el:
 * gtk-extra.el:
 * gtk-faces.el:
 * gtk-ffi.el:
 * gtk-file-dialog.el:
 * gtk-init.el:
 * gtk-mouse.el:
 * gtk-package.el:
 * gtk-password-dialog.el:
 * gtk-select.el:
 * gtk-widget-accessors.el:
 * gtk-widgets.el:
 * gtk.el:
 * gutter.el:
 * hash-table.el:
 * help-macro.el:
 * itimer.el:
 * loadup-el.el:
 * msw-faces.el:
 * msw-init.el:
 * msw-select.el:
 * mule/compiled-unicode-tables.el:
 * mule/general-early.el:
 * mule/iso-with-esc.el:
 * mule/kinsoku.el:
 * mule/mule-category.el:
 * mule/mule-coding.el:
 * mule/mule-composite-stub.el:
 * mule/mule-msw-init-late.el:
 * mule/mule-win32-init.el:
 * mule/windows.el:
 * next-error.el:
 * occur.el:
 * package-net.el:
 * post-gc.el:
 * printer.el:
 * raw-process.el:
 * resize-minibuffer.el:
 * term/bobcat.el:
 * term/cygwin.el:
 * term/linux.el:
 * term/scoansi.el:
 * term/tvi970.el:
 * term/vt102.el:
 * term/vt125.el:
 * term/vt200.el:
 * term/vt201.el:
 * term/vt220.el:
 * term/vt240.el:
 * term/vt300.el:
 * term/vt320.el:
 * term/vt400.el:
 * term/vt420.el:
 * unicode.el:
 * widgets-gtk.el:
 Add missing ";;; FILE.el ends here" lines at the end of all these
 Lisp files, a good practice that I want to encourage.
2022年11月06日 Aidan Kehoe <kehoea@parhasard.net>
 * info.el (Info-find-file-node):
 Avoid provoking a warning when calling #'match-end in a buffer
 that is distinct from the current-buffer at the time of
 #'looking-at, something usually suggestive of a bug but actually
 OK in this context.
2022年11月04日 Aidan Kehoe <kehoea@parhasard.net>
 * fill.el (fill-region-as-paragraph):
 * simple.el (do-auto-fill):
 If fill-column is most-positive-fixnum, (1+ fill-column) can be
 negative on non-bignum builds. Avoid passing this negative number
 to #'move-to-column when filling.
2022年08月31日 Aidan Kehoe <kehoea@parhasard.net>
 * files.el (set-auto-mode):
 Use #'file-system-ignore-case-p now it is available. Remove a
 comment from 2000 basically regretting that it was not available.
 Switch to #'string-match-p throughout this function in passing,
 reducing match data conflicts.
2022年08月31日 Aidan Kehoe <kehoea@parhasard.net>
 * files.el (file-relative-name): 
 Correct a bug introduced into this function by the last commit,
 the length of the filename examined by #'mismatch should be at
 most two.
 Compare using #'equalp in passing for case-insensitivity,
 appropriate for drive letters under Windows.
2022年08月29日 Aidan Kehoe <kehoea@parhasard.net>
 Deprecate #'string-equal, #'string-equal-ignore-case, encourage
 use of #'equal, #'equalp instead, with or without the caller's own
 type checking. Some small other changes in passing.
 * build-report.el (build-report-make-output-get):
 Revise this slightly, (eql (length build-report-make-output-dir)
 0) is equivalent to checking it against "" and nil. 
 * byte-optimize.el:
 * byte-optimize.el (byte-compile-side-effect-free-ops):
 Remove the optimizers from #'string=, #'string-equal, now they are
 marked as GNU Emacs compatible and deprecated for other uses.
 * bytecomp.el:
 * bytecomp.el (152): Keep the byte-defop of byte-string= for the
 sake of the disassembler.
 Comment out the corresponding byte-defop-compiler statements.
 * cmdloop.el (yes-or-no-p-minibuf):
 Use #'canoncase rather than #'downcase, as is more correct for
 this use case.
 * dragdrop.el (experimental-dragdrop-drop-mime-default):
 Switch from string= to equal in this function, as is done
 elsewhere in this changeset.
 * dragdrop.el (dragdrop-is-some-url):
 Revise the checking that we correspond to some METHOD to avoid
 #'string-equal and to use a CL function that doesn't allocate
 dynamic memory.
 * find-paths.el:
 * find-paths.el (paths-decode-directory-path):
 Be a bit more sensible in this function, use #'mapcan instead of
 (delete "" (mapcar ...)), switch to #'equal instead of
 #'string-equal.
 * files.el (kill-some-buffers):
 Make this a bit more idiomatic, use #'dolist, avoid #'string-equal.
 * obsolete.el:
 * obsolete.el (string-equal): New.
 * obsolete.el (string-equal-ignore-case): New.
 Move the implementation of these functions here from fns.c.
 * obsolete.el (canonicalize-string-equal-argument): New. Used by
 the implementation of the above.
 * replace.el (perform-replace):
 Switch to #'canoncase from #'downcase in this function, which is
 more appropriate for this use case.
 * shadow.el (find-emacs-lisp-shadows):
 Use #'file-name-sans-extension instead of re-implementing it.
 * subr.el (string-equal-ignore-case): Removed.
 * subr.el ('string=): Removed.
 Move these to obsolete.el
 * x-font-menu.el:
 * x-font-menu.el (x-font-menu-load-font-core):
 Make this a bit more idiomatic, #'return-from the function rather
 than using #'catch, 
 * x-init.el (x-initialize-keyboard):
 Use #'string-match-p in this function given the match data are not
 used.
 
 * abbrev.el (define-abbrev):
 * autoload.el (generate-autoload-type-section):
 * autoload.el (update-file-autoloads):
 * autoload.el (update-autoload-files):
 * cus-edit.el (customize-set-value):
 * cus-edit.el (customize-set-variable):
 * cus-edit.el (customize-save-variable):
 * cus-edit.el (customize):
 * cus-edit.el (customize-other-window):
 * cus-edit.el (custom-browse-insert-prefix):
 * cus-file.el:
 * cus-file.el (make-custom-file-name):
 * etags.el (visit-tags-table):
 * etags.el (complete-symbol):
 * etags.el (display-tag-info):
 * files.el (create-file-buffer):
 * files.el (find-buffer-visiting):
 * files.el (find-file-noselect):
 * files.el (set-visited-file-name):
 * files.el (write-file):
 * files.el (file-relative-name):
 * files.el (delete-auto-save-file-if-necessary):
 * files.el (file-newest-backup):
 * files.el (rename-uniquely):
 * files.el (rename-auto-save-file):
 * fill.el (maybe-adapt-fill-prefix):
 * fill.el (fill-region-as-paragraph):
 * fill.el (justify-current-line):
 * fill.el (unjustify-current-line):
 * font-menu.el (font-menu-family-constructor):
 * font-menu.el (font-menu-weight-constructor):
 * font.el (font-spatial-to-canonical):
 * font.el (x-font-create-object):
 * gtk-faces.el (gtk-convert-font-slant-from-xlfd):
 * gtk-faces.el (gtk-convert-font-size-from-xlfd):
 * gtk-ffi.el (gtk-ffi-check-function):
 * gtk-font-menu.el (gtk-reset-device-font-menus):
 * gtk-font-menu.el (gtk-font-menu-load-font):
 * gtk-marshal.el (define-marshaller):
 * hyper-apropos.el (hyper-apropos):
 * indent.el (beginning-of-line-text):
 * info.el (Info-find-file-node):
 * info.el (Info-follow-reference):
 * info.el (Info-menu):
 * isearch-mode.el (isearch-update-ring):
 * ldap.el (ldap-decode-boolean):
 * lisp.el (lisp-complete-symbol):
 * list-mode.el (choose-completion-delete-max-match):
 * make-docfile.el (done):
 * minibuf.el (defun):
 * minibuf.el (minibuffer-do-completion-1):
 * minibuf.el (minibuffer-do-completion):
 * minibuf.el (completing-read):
 * minibuf.el (exit-minibuffer):
 * minibuf.el (read-file-name-internal):
 * minibuf.el (append-expand-filename):
 * msw-font-menu.el (mswindows-font-menu-load-font):
 * mule/ethio-util.el (ethio-tilde-escape):
 * mule/ethio-util.el (ethio-flag-to-language):
 * mule/ethio-util.el (i):
 * mule/korea-util.el (quail-hangul-switch-symbol-ksc):
 * mule/mule-cmds.el (activate-input-method):
 * mule/mule-cmds.el (inactivate-input-method):
 * mule/mule-cmds.el (describe-language-environment):
 * newcomment.el (comment-normalize-vars):
 * newcomment.el (comment-quote-nested):
 * newcomment.el (comment-padright):
 * newcomment.el (comment-padleft):
 * newcomment.el (comment-region-internal):
 * newcomment.el (comment-region):
 * newcomment.el (comment-dwim):
 * newcomment.el (comment-auto-fill-only-comments):
 * occur.el (multi-occur):
 * package-admin.el (package-admin-find-top-directory):
 * package-get.el (package-get-interactive-package-query):
 * package-get.el (package-get):
 * package-get.el (package-get-info-version):
 * package-get.el (package-get-info-prop):
 * packages.el (packages-split-path):
 * regexp-opt.el (regexp-opt-charset):
 * regexp-opt.el (regexp-opt):
 * simple.el:
 * simple.el (delete-indentation):
 * simple.el (interprogram-paste-function):
 * startup.el (command-line-early):
 * startup.el (load-user-init-file):
 * startup.el (command-line-1):
 * startup.el (splash-screen-window-body):
 * subr.el (insert-face):
 * view-less.el (view-search-forward):
 * view-less.el (view-search-backward):
 * wid-edit.el (widget-prompt-spaceify):
 * wid-edit.el (widget-checklist-prompt-value):
 * wid-edit.el (widget-file-complete):
 * wid-edit.el (widget-color-complete):
 * x-faces.el (x-color-list-internal):
 * x-font-menu.el (x-reset-device-font-menus-core):
 Mechanically change from #'string-equal to #'equal in these files.
 
2022年08月19日 Aidan Kehoe <kehoea@parhasard.net>
 * isearch-mode.el (isearch-fix-case):
 * isearch-mode.el (isearch-complete1):
 Small changes to modernize this code; call #'string-match-p
 instead of wrapping #'string-match with #'save-match-data, no need
 to cons up an alist to pass to #'try-completion, the latter now
 accepts lists of strings without problems.
2022年08月02日 Aidan Kehoe <kehoea@parhasard.net>
 Abstract out the list of things to be saved and restored in
 #'isearch-push-state, using #'macrolet and #'setf.
 * isearch-mode.el:
 * isearch-mode.el (isearch-state-places): New. Symbol macro
 expanding to a list of those PLACEs to be manipulated for the
 isearch state stack.
 * isearch-mode.el (isearch-setf-state-places): New. Macro using
 isearch-state-places, for use in isearch-top-state.
 * isearch-mode.el (isearch-make-state-object): New. Macro using
 isearch-state-places, for use in isearch-push-state.
 * isearch-mode.el (isearch-top-state): Move within the
 #'macrolet. Use #'isearch-setf-state-places.
 * isearch-mode.el (isearch-pop-state): Move within the #'macrolet.
 * isearch-mode.el (isearch-push-state): Move within the #'macrolet.
2022年08月04日 Jaakko Salomaa <jaakko.salomaa@iki.fi>
 * setup-paths.el (paths-emacs-root-p):
 * setup-paths.el (paths-find-emacs-roots):
 * setup-paths.el (paths-find-site-lisp-directory):
 * setup-paths.el (paths-find-site-module-directory):
 * setup-paths.el (paths-find-lisp-directory):
 * setup-paths.el (paths-find-mule-lisp-directory):
 * setup-paths.el (paths-find-module-directory):
 * setup-paths.el (paths-construct-info-path):
 * setup-paths.el (paths-find-doc-directory):
 * setup-paths.el (paths-find-exec-directory):
 * setup-paths.el (paths-find-data-directory):
 * setup-paths.el (paths-construct-data-directory-list):
 Make all of these functions respect the -no-configured-paths command
 line flag and disregard the configured and built in paths.
 * startup.el (command-line-do-help):
 Document -no-configured-paths in the command line help text.
2022年08月03日 Jaakko Salomaa <jaakko.salomaa@iki.fi>
 * startup.el (startup-setup-paths):
 Clean up the path debugging code by replacing all clunky
 ([if/when] debug-paths (princ (format "...))) invocations with code
 from...
 * startup.el (startup-setup-paths-debug-vars):
 ...this new macro that prints variable names and values one per line
 in "variable name: variable value" format.
 The debugging output changes a little, splitting the "this-var and
 that-var\nvalue of this-var\nvalue of that-var\n" messages to easier
 to read multiple lines that all start with the name of the variable.
 * startup.el (startup-setup-paths-debug-dump-info):
 * startup.el (startup-setup-paths-missing-emacs-roots-warning):
 ...and these functions that move the error and debug messaging wholly
 out of #'startup-setup-paths.
 Print a newline after the "Couldn't find an obvious default for the
 root of the XEmacs hierarchy." message.
2022年07月29日 Jaakko Salomaa <jaakko.salomaa@iki.fi>
 * mule/compiled-unicode-tables.el:
 Use #'push instead of open coding with #'setq and #'cons.
2022年07月28日 Jaakko Salomaa <jaakko.salomaa@iki.fi>
 * cl-macs.el (apply-partially):
 Fix support for &rest lambdas.
 * subr.el (apply-partially):
 Use #'list* instead of #'list and #'append.
2022年07月24日 Jaakko Salomaa <jaakko.salomaa@iki.fi>
 * mule/compiled-unicode-tables.el:
 A new mechanism for packing the used Unicode translation tables from
 etc/unicode to a compiled .elc.
 At compile time, harvest from the Lisp codebase all files that could
 possibly be used in etc/unicode, dump them with
 unicode.c:Fdump_unicode_mapping_table() and create a search table out
 of them. unicode.c:Fload_unicode_mapping_table() will then call this
 file's #'set-compiled-unicode-file-search-table to make the compiled
 data available to it.
 * unicode.el:
 * mule/latin.el:
 * mule/mule-charset.el:
 The mapping files under etc/unicode/unicode-consortium/ISO8859 were
 renamed to make their filenames unambiguous for the Unicode table
 compiler. Change these files to reflect that.
2022年07月25日 Aidan Kehoe <kehoea@parhasard.net>
 * wid-edit.el (widget-sublist): Removed. Equivalent to #'subseq,
 but less general.
 * wid-edit.el (widget-remove-if): Removed.
 Usually equivalent to #'remove-if, always equivalent to (delete-if
 PREDICATE (copy-sequence LIST)), not used in the XEmacs packages,
 no indication to keep it.
 * wid-edit.el (widget-item-match-inline): Adjust this not to use
 widget-sublist, and to cons a little less. 
2022年07月23日 Aidan Kehoe <kehoea@parhasard.net>
 * pcase.el (pcase--u1):
 Suppress a warning about an unused variable bound by
 #'destructuring-bind, by not binding it and modifying EXPR
 appropriately.
2022年07月23日 Aidan Kehoe <kehoea@parhasard.net>
 * pcase.el: New. Imported from GNU, a version before the
 introduction of lexical binding there.
 The reasoning to put it here rather than xemacs-base is that it is
 completely routine for the GNU Emacs core code to use these
 macros, and as we synch our core files going forward we will need
 to have it available.
 The following relevant ChangeLog entries are taken from GNU's
 ChangeLog.15:
 2011年02月28日 Juanma Barranquero <lekktu@gmail.com>
 * emacs-lisp/pcase.el (pcase, pcase--u1, pcase--q1):
 Fix typos in docstrings.
 2011年02月27日 Stefan Monnier <monnier@iro.umontreal.ca>
 * emacs-lisp/pcase.el (pcase--if): Try to invert test to reduce depth.
 (pcase-mutually-exclusive-predicates): New var.
 (pcase--split-consp, pcase--split-pred): Use it.
 (pcase--split-equal, pcase--split-member): When splitting against
 a pure predicate, run it to know the outcome.
 (pcase--u1): Mark vars that are actually used.
 (pcase--q1): Avoid introducing unused vars.
 2011年02月18日 Stefan Monnier <monnier@iro.umontreal.ca>
 * emacs-lisp/pcase.el (pcase--u1): Understand non-linear patterns.
 2010年11月24日 Stefan Monnier <monnier@iro.umontreal.ca>
 * emacs-lisp/pcase.el: Improve pcase-let. Use "pcase--" prefix.
 (pcase--dontcare-upats): New var.
 (pcase-let, pcase-let*): Generate better code.
 Accept the same bodies as `let'.
 (pcase-dolist): New macro.
 (pcase--trivial-upat-p): New helper function.
 (pcase--expand): Strip leading "(let nil" if any.
 2010年11月12日 Stefan Monnier <monnier@iro.umontreal.ca>
 * emacs-lisp/pcase.el (pcase-let*, pcase-let): Add debug and
 indentation specs.
 2010年10月29日 Stefan Monnier <monnier@iro.umontreal.ca>
 * emacs-lisp/pcase.el (pcase): New `string' and `guard' patterns.
 (pcase-if): Add one minor optimization.
 (pcase-split-equal): Rename from pcase-split-eq.
 (pcase-split-member): Rename from pcase-split-memq.
 (pcase-u1): Add strings to the member optimization.
 Add `guard' variant of predicates.
 (pcase-q1): Add string patterns.
 2010年09月26日 Stefan Monnier <monnier@iro.umontreal.ca>
 * emacs-lisp/pcase.el (pcase-let*, pcase-let): plet -> pcase-let.
 2010年09月01日 Stefan Monnier <monnier@iro.umontreal.ca>
 * emacs-lisp/pcase.el (pcase-split-memq):
 Fix overenthusiastic optimization.
 (pcase-u1): Handle the case of a lambda pred.
 2010年08月10日 Stefan Monnier <monnier@iro.umontreal.ca>
 * emacs-lisp/pcase.el: New file.
2022年07月20日 Jaakko Salomaa <jaakko.salomaa@iki.fi>
 * subr.el (apply-partially):
 For a &rest argumented lambda, construct one in return in
 #'apply-partially instead of returning a lambda with an empty argument
 list and make it append together the pre-applied and provided &rest
 arg lists.
2022年07月18日 Aidan Kehoe <kehoea@parhasard.net>
 * byte-optimize.el (byte-optimize-zerop):
 #'numberp has a byte code, and so it's fine to transform (zerop
 OBJECT) into (if (numberp OBJECT) (= OBJECT 0)
 (signal 'wrong-type-argument 'number OBJECT).
 This avoids correctness problems introducted by the
 byte-compile-delete-errors option, revealed in
 tests/automated/lisp-tests.el.
2022年07月11日 Aidan Kehoe <kehoea@parhasard.net>
 * update-elc.el (do-autoload-commands):
 If we just need to rebuild the module autoloads, load autoload.el,
 something that wasn't done before.
 * update-elc.el (preloaded-file-list):
 full-arg-dir was not used, remove it, thank you the byte compiler.
2022年07月09日 Aidan Kehoe <kehoea@parhasard.net>
 * subr.el (format):
 Update the documentation of the integer length modifiers, now that
 ?z has been added.
2022年06月30日 Aidan Kehoe <kehoea@parhasard.net>
 * finder.el (finder-compile-keywords):
 Correct a thinko in c6966a009d0d , insert a coding cookie that
 reflects buffer-file-coding-system.
2022年06月30日 Aidan Kehoe <kehoea@parhasard.net>
 * update-elc.el (source-modules): New.
 Document where the C source is for modules, which differs from
 module-directory when --srcdir is specified. This is relevant when
 deciding whether to build auto-autoloads.el for modules.
 * update-elc.el (preloaded-file-list):
 Use this when examining for outdatedness of auto-autoloads.el.
 * update-elc.el (do-autoload-commands):
 Correct the code to build the modules' auto-autoload.el, which
 cannot just use batch-update-directory-autoloads, since that
 doesn't recurse. Thank you Stephen Turnbull, Mats Lidell, and the
 Gentoo users.
 * update-elc-2.el (batch-update-elc-2):
 Don't wrap errors loading the auto-autoloads for the modules, if
 that fails, whatever caused it to fail should be fixed.
2022年06月27日 Stephen J. Turnbull <turnbull@sk.tsukuba.ac.jp>
 * update-elc-2.el (batch-update-elc-2):
 Trap missing file errors for autoloads in modules. Currently
 there are none, and the build process apparently doesn't produce
 an empty file in this case.
2022年06月27日 Aidan Kehoe <kehoea@parhasard.net>
 * finder.el (finder-compile-keywords):
 Don't use the save-buffer infrastructure when generating
 finder-inf.el, since that leads to lock files, making parallel
 builds less likely to work. Thank you Mats Lidell and the Gentoo
 users!
2022年06月23日 Aidan Kehoe <kehoea@parhasard.net>
 * x-faces.el (:compile-toplevel):
 Only (require 'fontconfig) at compile time, meaning that file is
 not dumped on non-Xft builds.
2022年06月17日 Aidan Kehoe <kehoea@parhasard.net>
 * code-process.el:
 * code-process.el (:compile-toplevel):
 Silence compiler warnings about variables provided by starttls.el,
 functions provided by format-spec.el.
 * code-process.el (network-stream-open-starttls):
 Fix a bug in this function, thank you the byte compiler
 (#'make-network-process is not available on XEmacs, use
 #'open-network-stream-internal instead.)
 * x-faces.el (fontconfig):
 Silence byte compile warnings, just (require 'fontconfig)
 unconditionally, which works even if fontconfig support is not
 compiled in.
2022年06月16日 Aidan Kehoe <kehoea@parhasard.net>
 * update-elc-2.el (batch-update-elc-2):
 Remove the code to update auto-autoloads from this file.
 (It was buggy (e.g. it updated mule/auto-autoloads.el and then
 immediately compiled auto-autoloads.el) and caused dependency
 problems.)
 Load the module auto-autoloads when byte-compiling,
 which we didn't previously.
 * update-elc.el:
 * update-elc.el (need-to-rebuild-module-autoloads): New.
 * update-elc.el (need-to-recompile-module-autoloads): New.
 * update-elc.el (module-directory): Make this available when
 updating module auto-autoloads.
 * update-elc.el (aa-modules): New.
 * update-elc.el (aac-modules): New.
 The path to the module auto-autoloads.el, auto-autoloads.elc
 * update-elc.el
 (lisp-files-ignored-when-checking-for-autoload-updating):
 Add finder-inf.el to this list.
 * update-elc.el (or):
 Check explictly whether module/auto-autoloads.el is out of date in
 this file, which we did not do previously.
 * update-elc.el (do-autoload-commands):
 If there are no files to be byte-compiled but auto-autoloads need
 updated, do that here (using run-temacs with the byte-compiled
 files) rather than signalling to update-elc-2.el using
 ../src/REBUILD_AUTOLOADS. This should avoid dependency problems
 with massively parallel builds.
2022年03月23日 Aidan Kehoe <kehoea@parhasard.net>
 * custom.el:
 No need to #'require widget, both it and this file are dumped, and
 doing so makes the output of the dump a little more confusing.
 * dumped-lisp.el (preloaded-file-list):
 Move menubar, menubar-items, font-menu ahead of x-font-menu to
 avoid the latter forcing load of the former.
 * files.el (file-remote-p):
 Use and-boundp when checking for efs-path-regexp.
 * help.el (add-log-current-defun):
 Use and-fboundp when calling this function, provided as an
 autoload in xemacs-base.
 * mule/cyrillic.el:
 * mule/greek.el:
 Tell the byte-compiler where to find #'setup-case-pairs in these
 files.
 * mule/mule-charset.el:
 Tell the byte-compiler where to find #'init-windows-glyph-list-4
 in this file.
 * obsolete.el (define-obsolete-function-alias):
 * obsolete.el (define-compatible-function-alias):
 * obsolete.el (define-obsolete-variable-alias):
 * obsolete.el (define-compatible-variable-alias):
 Declare the WHEN argument special to avoid compiler warnings when
 using these functions.
 * unicode.el:
 Un-obsolete #'split-char, portable to GNU and very widely used
 (and not too bad of an API).
2022年03月19日 Aidan Kehoe <kehoea@parhasard.net>
 * apropos.el (apropos-documentation-check-doc-file):
 * buff-menu.el (Buffer-menu-toggle-read-only):
 * buff-menu.el (Buffer-menu-popup-menu):
 * compose.el (electric-diacritic):
 * cus-edit.el (custom-buffer-create-internal):
 * cus-edit.el (custom-variable-value-create):
 * cus-edit.el (custom-face-value-create):
 * cus-edit.el (custom-group-value-create):
 * files.el (insert-directory):
 * finder.el (finder-insert-at-column):
 * mode-motion.el (mode-motion-highlight-sexp):
 * mode-motion.el (mode-motion-add-help-echo):
 * mule/china-util.el (decode-hz-region):
 * mule/devan-util.el (indian-to-devanagari-region):
 * mule/devan-util.el (devanagari-to-indian-region):
 * mule/ethio-util.el (ethio-sera-to-fidel-english):
 * mule/ethio-util.el (ethio-sera-to-fidel-ethio):
 * mule/ethio-util.el (ethio-process-language-flag):
 * mule/ethio-util.el (ethio-tilde-escape):
 * mule/ethio-util.el (ethio-convert-digit):
 * mule/ethio-util.el (ethio-fidel-to-sera-buffer):
 * mule/ethio-util.el (ethio-modify-vowel):
 * mule/ethio-util.el (ethio-fidel-to-tex-buffer):
 * mule/ethio-util.el (ethio-tex-to-fidel-buffer):
 * mule/ethio-util.el (ethio-fidel-to-java-buffer):
 * mule/ethio-util.el (ethio-find-file):
 * mule/ethio-util.el (ethio-insert-space):
 * mule/ethio-util.el (ethio-gemination):
 * mule/japan-util.el (japanese-katakana-region):
 * mule/japan-util.el (japanese-hiragana-region):
 * mule/japan-util.el (japanese-hankaku-region):
 * mule/japan-util.el (japanese-zenkaku-region):
 * mule/kinsoku.el (kinsoku-process-shrink):
 * mule/tibet-util.el (tibetan-compose-region):
 * mule/tibet-util.el (tibetan-decompose-region):
 * mule/viet-util.el (viet-encode-viqr-region):
 * picture.el (move-to-column-force):
 * view-less.el (cleanup-backspaces):
 * wid-browse.el (widget-browse):
 * wid-edit.el (widget-after-change):
 * wid-edit.el (widget-default-format-handler):
 * wid-edit.el (widget-checklist-add-item):
 * wid-edit.el (widget-radio-add-item):
 * wid-edit.el (widget-group-value-create):
 Migrate #'following-char, #'preceding-char to #'char-after,
 #'char-before in these files.
2022年03月19日 Aidan Kehoe <kehoea@parhasard.net>
 * bytecomp.el:
 Document that the byte-following-char, byte-preceding-char defops
 are only kept around for the sake of the disassembler. 
 Remove the corresponding byte-defop-compiler, compile both the
 functions as normal calls, so the warning that they are obsolete
 comes through, and so there is no speed upside to calling them.
 * obsolete.el:
 * obsolete.el (following-char): New.
 * obsolete.el (preceding-char): New. Move the implementations of
 these functions to this file from C.
2022年03月21日 Aidan Kehoe <kehoea@parhasard.net>
 * loadup.el:
 We can no longer just (store-match-data nil) to clear the extent
 information for strings known to the search code before dumping;
 pass in an extent with its SEARCH property set to DISCARD
 instead.
2022年03月06日 Aidan Kehoe <kehoea@parhasard.net>
 * bytecomp.el:
 * bytecomp.el (byte-compile-default-warnings):
 Disable the format-not-constant warning by default, after
 discussion with Stephen Turnbull, thank you Steve.
2022年01月31日 Aidan Kehoe <kehoea@parhasard.net>
 #'check-type gives a clearer error message than
 #'check-argument-type (it lists PLACE in the error message). It is
 also better style. Prefer it in dumped Lisp except in those
 places where startup dependencies make it not available.
 * auto-save.el (recover-all-files):
 * coding.el:
 * coding.el (unencodable-char-position):
 * coding.el (check-coding-systems-region):
 * descr-text.el (unidata-initialize-unicodedata-database):
 * descr-text.el (unidata-initialize-unihan-database):
 * dialog.el (popup-dialog-box):
 * events.el:
 * events.el (set-character-of-keysym):
 * events.el (get-character-of-keysym):
 * files.el (file-system-ignore-case-p):
 * gui.el (insert-gui-button):
 * menubar.el (find-menu-item):
 * modeline.el (add-minor-mode):
 * mule/mule-category.el (define-category):
 * mule/mule-category.el (undefine-category):
 * mule/mule-category.el (category-doc-string):
 * mule/mule-category.el (modify-category-entry):
 * mule/mule-category.el (char-category-list):
 * mule/mule-charset.el (set-charset-registry):
 * mule/mule-charset.el (charset-after):
 * mule/mule-charset.el (find-translation-table):
 * mule/mule-charset.el (define-charset-tag):
 * mule/mule-charset.el (charset-tag-to-charset-list):
 * simple.el (warning-level-<):
 * simple.el (display-warning):
 * specifier.el (let-specifier):
 * subr.el (replace-in-string):
 * unicode.el (frob-unicode-errors-region):
 * widget.el (define-widget):
 * window-xemacs.el (display-buffer):
2021年11月09日 Aidan Kehoe <kehoea@parhasard.net>
 * info.el (Info-find-file-node):
 makeinfo(1) constructs its tag table using byte positions, and
 with significant non-ASCII contents info files it is routine for
 this to get out of synch with our character positions.
 This gave difficult-to-pin-down "No such node" errors with the
 Lispref.
 Take the discrepancy between byte and character positions on board
 when deciding where to start looking for a node.
 Thank you for the investigation and bug report, Henry Thompson!
 In passing there is no need to restrict the range of the position
 passed to #'goto-char, it has always limited its movement to the
 visible portion of the buffer.
2021年10月20日 Aidan Kehoe <kehoea@parhasard.net>
 * descr-text.el (describe-char-unicodedata-file):
 Only delete a trailing newline if one is present, avoiding
 build-time problems now mule/make-digit.el has (require
 'descr-text).
2021年10月23日 Aidan Kehoe <kehoea@parhasard.net>
 * backquote.el (backquote):
 Document that the support for the old-style backquote syntax is
 obsolete and will be removed soon.
2021年10月09日 Aidan Kehoe <kehoea@parhasard.net>
 * mule/make-digit.el:
 New. File to generate digit.el from UnicodeData.txt.
 * mule/digit.el:
 Regenerate this reflecting the same version of UnicodeData of last
 commit, last modification on unicode.org 2021年07月06日 12:31, md5
 c98cbeae07758b826ef080c65b9d4d61.
2021年10月09日 Aidan Kehoe <kehoea@parhasard.net>
 * mule/uni-case-conv.el:
 Update this file to reflect current UnicodeData.txt, last
 modification on unicode.org 2021年07月06日 12:31, md5
 c98cbeae07758b826ef080c65b9d4d61.
2021年07月15日 Aidan Kehoe <kehoea@parhasard.net>
 * files.el:
 * files.el (file-remote-p):
 If EFS is loaded, use efs-path-regexp to work out if FILE is remote.
 * minibuf.el (minibuffer-complete-and-exit):
 * minibuf.el (exit-minibuffer):
 Fix some indentation in these two functions.
 * minibuf.el (minibuffer-smart-mouse-tracker):
 Ignore ange-ftp, long deprecated.
 Trust that #'file-remote-p will recognise EFS pathnames if EFS is
 loaded.
 Use the newer #'test-completion, which always gives t for an exact
 match, rather than the older #'try-completion, where this is not
 guaranteed.
 * minibuf.el (minibuffer-smart-select-kludge-filename):
 ange-ftp is long deprecated, ignore it.
 Use the new support of #'file-remote-p for EFS, don't implement
 that ourselves.
2021年06月10日 Aidan Kehoe <kehoea@parhasard.net>
 * cl-extra.el (cl-do-prettyprint):
 Fix a bug in a regexp here, can't start a subexpression within a
 character set.
2021年05月10日 Aidan Kehoe <kehoea@parhasard.net>
 * subr.el (zerop):
 Error if NUMBER is a character or a marker in this function, as
 the C code did previously.
2021年05月06日 Aidan Kehoe <kehoea@parhasard.net>
 * easymenu.el (easy-menu-add):
 * easymenu.el (easy-menu-remove):
 In the normal course of events #'easy-menu-remove is called before
 #'easy-menu-add, and so the code in the latter to save any
 existing non-default mode-popup-menu fails. Add corresponding code
 to #'easy-menu-remove too.
2021年05月11日 Aidan Kehoe <kehoea@parhasard.net>
 * gtk-marshal.el (get-marshaller-type-info): New.
 Summarize the type info (so return type and argument type) of RVAL
 and ARGS as a string.
 * gtk-marshal.el (get-marshaller-name): Implement this using
 #'get-marshaller-type-info.
 * gtk-marshal.el (define-marshaller):
 Add a newline and appropriate indentation to the C definition of
 the function.
 Push the now-defined marshal function onto defined-marshallers.
 * gtk-marshal.el:
 When creating emacs-marshal.c, instead of creating a long list of
 puthash() calls to be called the first time any function is
 imported, create a table mapping the lower 16 bits of the type
 string hash to the corresponding function, which is faster in my
 testing (with 10,000 gtk-import-function-internal calls), and has
 more predictable performance than the old approach.
2021年02月14日 Aidan Kehoe <kehoea@parhasard.net>
 * replace.el (perform-replace): Update a
 (save-match-data ... (string-match "[[:upper:]]" ...)) call to
 call `string-match-p' without the encloding `save-match-data'
 instead, now `string-match-p' is available.
2021年02月14日 Aidan Kehoe <kehoea@parhasard.net>
 Minor changes to deal with moving the match data to being extents.
 
 * cl-extra.el (cl-prettyprint):
 Call #'replace-match instead of accessing the match data after
 deleting the relevant text in this function.
 * loadup.el:
 Clear the match data before dumping, now we use string extent info
 for it and that is not dumpable.
 * replace.el (perform-replace): Use the more exhaustive
 #'match-data-canonical instead of #'match-data when saving the
 match data associated with the real match in this function.
 Don't pass the INTEGERS argument to #'match-data given its
 performance issues with large buffers.
 * subr.el (save-match-data):
 Update this to save the match data with the more exhaustive
 #'match-data-canonical, and to explicitly detach any extents in
 the saved data once done with them.
 * subr.el (match-string): Moved to C, now its algorithmic
 complexity is better there.
 * subr.el (match-string-no-properties):
 Implement in terms of #'match-string.
2021年01月28日 Aidan Kehoe <kehoea@parhasard.net>
 * code-files.el (load):
 Revise my change of 2021年01月10日 looking for unwanted duplicate
 extensions to strip directory information before calling #'equal,
 something which will give us fewer false-positives.
2021年01月21日 Aidan Kehoe <kehoea@parhasard.net>
 * x-init.el (pseudo-canonicalize-keysym):
 Document why there's no need to call #'canonicalize-keysym in this
 function.
2021年01月11日 Aidan Kehoe <kehoea@parhasard.net>
 * cl-extra.el (bignump): New.
 * cl-extra.el (ratiop): New.
 * cl-extra.el (rationalp): New.
 * cl-extra.el (bigfloatp): New.
 * cl-extra.el (floatingp): New.
 * cl-extra.el (realp): New.
 Move all these from number.c.
 They are very short and mostly translate to one funcall +/- a
 couple of bytecodes, make them available with defsubst*.
 * make-docfile.el (docfile-out-of-date):
 #'integerp no longer available on bare-metal XEmacs, and it is only
 relevant if STATUS is zero; use #'fixnump instead.
2021年01月11日 Aidan Kehoe <kehoea@parhasard.net>
 Move some further simple functions to Lisp from C.
 * subr.el:
 * subr.el (integerp): New.
 * subr.el (car-safe): New.
 * subr.el (cdr-safe): New.
 * subr.el (copy-sequence): New.
 * subr.el (wrong-type-argument): New.
 All of these are from data.c.
2021年01月11日 Aidan Kehoe <kehoea@parhasard.net>
 * bytecomp.el (byte-compile-file-form-eval-boundary): Removed.
 * bytecomp.el (byte-compile-file-form-require): New.
 Use a more sensible name for #'require's byte hunk handler, also
 used by GNU. Only evaluate the call to require if
 byte-compile-eval-when-seen is non-nil, allowing users to
 explicitly avoid compile time evaluation if that is needed.
2021年01月10日 Aidan Kehoe <kehoea@parhasard.net>
 * bytecomp.el (byte-compile-file):
 When loading TARGET-FILE, pass a non-nil NOSUFFIX argument to
 #'load, avoiding issues when FILENAME.elc.elc exists in the target
 directory.
 * code-files.el (load):
 Warn if FILENAME.elc was supplied, NOSUFFIX is nil, and
 #'locate-file returned FILENAME.elc.elc.
 Don't error, this is rare and there may be compatibility issues if
 we do that.
2020年12月28日 Aidan Kehoe <kehoea@parhasard.net>
 * simple.el (delete-backward-char):
 Both COUNT and KILLP are optional in this function, declare them
 as such.
2020年11月24日 Aidan Kehoe <kehoea@parhasard.net>
 * device.el (get-device): New.
 Moved here from device.c, no need for it to be in C.
 * simple.el (delete-backward-char): New.
 Moved here from cmds.c, no need for it to be in C.
2020年11月17日 Aidan Kehoe <kehoea@parhasard.net>
 * events.el (keyboard-translate):
 Use `canonicalize-keysym' here, just introduced, so the keyboard
 translate processing is more reliable.
2020年11月17日 Aidan Kehoe <kehoea@parhasard.net>
 * events.el (keyboard-translate):
 * events.el (set-character-of-keysym):
2020年11月03日 Aidan Kehoe <kehoea@parhasard.net>
 * minibuf.el (read-coding-system):
 Correct the spelling in the docstring here.
 * subr.el (format):
 CONTROL-STRING isn't optional in #'format, correct the arglist
 here.
2020年09月01日 Aidan Kehoe <kehoea@parhasard.net>
 Some style, efficiency changes to wid-edit.el.
 * wid-edit.el:
 * wid-edit.el (widget-shadow-subrs): Removed.
 No longer necessary.
 * wid-edit.el (widget-princ-to-string):
 Remove the commented old implementation.
 * wid-edit.el (widget-member):
 Use #'plist-get rather than #'widget-plist-member (which
 ultimately calls #'plist-get).
 No need for a final clause that returns nil, that's what #'cond
 does by default.
 * wid-edit.el (widget-default-menu-tag-get):
 Call #'prin1-to-string rather than #'widget-princ-to-string, which
 calls #'prin1-to-string anyway. 
2020年08月25日 Aidan Kehoe <kehoea@parhasard.net>
 * bytecomp-runtime.el (eval-when-feature): Removed.
 This never worked (the after-load-alist entry syntax was
 incorrect), it is not used in packages and GNU have removed it. No
 indication to continue with it in XEmacs.
2020年03月25日 Aidan Kehoe <kehoea@parhasard.net>
 * code-cmds.el (universal-coding-system-argument):
 Use the DEFAULT argument to #'read-coding-system, trust it to
 rewrite the prompt rather than doing it ourselves.
 * code-files.el (set-buffer-file-coding-system):
 Call #'read-coding-system expicitly, take a default from
 coding-system-history.
 * code-files.el (set-buffer-file-coding-system-for-read):
 Call #'check-coding-system rather than #'get-coding-system, which
 is clearer for what we want.
 * code-files.el (insert-file-contents):
 Ditto.
 * code-process.el:
 * code-process.el (set-buffer-process-coding-system):
 Explicitly call #'read-coding-system in the (interactive) spec
 here, so we can pass in the existing default-process-coding-system
 as a DEFAULT argument.
 * coding.el (set-keyboard-coding-system):
 Explicitly call #'read-coding-system in the (interactive) spec
 here, displaying keyboard-coding-system as the default.
 * coding.el (set-terminal-coding-system):
 Explicitly call #'read-coding-system in the (interactive) spec
 here, displaying terminal-coding-system as the default.
 * minibuf.el (coding-system-history): New.
 * minibuf.el (read-file-name):
 Backslash some parentheses in the first column for the sake of
 fontification. 
 * minibuf.el (read-directory-name):
 Ditto.
 * minibuf.el (read-coding-system):
 Revise this to use coding-system-history, to adjust PROMPT
 depending on DEFAULT-CODING-SYSTEM, to ignore case (as does GNU).
 * minibuf.el (read-non-nil-coding-system):
 Revise this to use coding-system-history and to ignore case.
2020年03月23日 Aidan Kehoe <kehoea@parhasard.net>
 * simple.el (kill-line-1): Implement this with #'macrolet rather
 than keeping around a function in the dumped Lisp.
 * simple.el (kill-entire-line): Use the macro.
 * simple.el (kill-line): Use the macro.
 * simple.el (backward-kill-line): Use the macro. This function
 differs from the other two in that it previously did not use
 #'kill-line-1.
2020年03月23日 Aidan Kehoe <kehoea@parhasard.net>
 * simple.el (digit-argument):
 Use #'digit-char-p in this function rather than re-implementing
 it.
2020年03月23日 Aidan Kehoe <kehoea@parhasard.net>
 * byte-optimize.el:
 #'prefix-numeric-value is a pure function, optimise it as such.
2020年03月23日 Aidan Kehoe <kehoea@parhasard.net>
 * subr.el (with-trapping-errors):
 If RESIGNAL is non-nil and ERROR-FORM is nil, don't wrap the
 #'call-with-condition-handler with #'condition-case.
 If ERROR-FORM is nil and RESIGNAL is nil, use `block' to return
 control to the caller.
2020年03月20日 Aidan Kehoe <kehoea@parhasard.net>
 Further reduce potential match data corruption bugs by avoiding
 #'string-match when the match data isn't used, mostly using
 #'string-match-p instead but sometimes the CL sequence functions
 for particularly trivial regexps.
 * finder.el:
 * finder.el (finder-select):
 * font-lock.el (font-lock-set-defaults-1):
 As well as the above, use a label instead of binding a symbol's
 value to a lambda and then funcalling that.
 * newcomment.el (comment-indent-new-line):
 Use #'search instead of #'string-match for a trivial regexp.
 * package-admin.el (package-admin-get-install-dir):
 Ditto.
 * register.el (describe-register-1):
 * startup.el (load-terminal-library):
 * startup.el (find-init-file-1):
 * startup.el (command-line-1):
 Use #'string-match-p in these four functions.
 * startup.el (splash-screen-window-body):
 Use #'search instead of #'string-match for a trivial regexp.
 * syntax.el (syntax-string-to-code):
 * test-harness.el (test-harness-from-buffer):
 * test-harness.el (batch-test-emacs):
 * update-elc-2.el (do-update-elc-2):
 * update-elc.el:
 * update-elc.el (update-elc-chop-extension):
 * version.el (emacs-version):
 * wid-browse.el (widget-browse-sexp):
 * wid-edit.el (widget-field-use-before-change):
 Searching `emacs-version' for the string XEmacs is not the way to
 check whether this emacs is XEmacs, use featurep instead.
 * wid-edit.el (widget-field-validate):
 * wid-edit.el (widget-field-value-create):
 * window-xemacs.el (display-buffer):
 * x-scrollbar.el (x-init-scrollbar-from-resources):
 Use #'string-match-p for the last four.
2019年10月18日 Aidan Kehoe <kehoea@parhasard.net>
 * subr.el (with-trapping-errors):
 Revise this to use the Common Lisp keyword parsing
 infrastructure, which will accept :allow-other-keys t and explicitly
 have the trailing keyword override.
 Declare its indentation using (declare (indent ...)) rather than
 using #'put.
2020年01月24日 Aidan Kehoe <kehoea@parhasard.net>
 * wid-edit.el (widget-parsing-escapes): New.
 Macro to do most of the work of parsing %-escapes in widget format
 strings, refactored out.
 * wid-edit.el (widget-value-convert-widget):
 Use it. 
 Adjust the order of frequency of the value escape in passing, that
 is much more common in the customize code than in the about-xemacs
 code which I had been testing on.
 * wid-edit.el (widget-checklist-add-item, widget-radio-add-item):
 Use `widget-parsing-escapes' in these functions.
2020年01月22日 Aidan Kehoe <kehoea@parhasard.net>
 * wid-edit.el (widget-default-create):
 * wid-edit.el (widget-checklist-add-item):
 * wid-edit.el (widget-radio-add-item):
 * wid-edit.el (widget-editable-list-entry-create):
 Move away from code using #'re-search-forward to parse format
 strings within all these functions, use #'position instead.
 In #'widget-default-create, use the more reasonable and readable
 (case escape ...) rather than funcalling an uncompiled lambda
 which is in a vector indexed according to a string offset, which
 offset is produced using #'string-match.
2019年04月22日 Aidan Kehoe <kehoea@parhasard.net>
 * process.el (setenv):
 Sync the API of this function with GNU.
 Remove UNSET as an argument, giving nil for VALUE always has been
 equivalent.
 Add SUBSTITUTE-ENV-VARS in its stead, 
 Check that VARIABLE, VALUE can be encoded in the coding system of
 the system, error if they can't. 
2019年04月14日 Aidan Kehoe <kehoea@parhasard.net>
 * misc.el:
 * misc.el (make-weak-box):
 * misc.el (weak-box-ref):
 * misc.el (:load-toplevel):
 Remove #'weak-box-ref-1 from the dumped Lisp binary, using
 (eval-when (:load-toplevel) ...) to ensure a reasonable docstring.
2019年03月28日 Aidan Kehoe <kehoea@parhasard.net>
 * x-init.el (pseudo-canonicalize-keysym):
 * x-init.el (x-keysym-on-keyboard-sans-modifiers-p):
 * x-init.el (x-keysym-on-keyboard-p):
 Accept characters as keysyms in these functions, as well as
 strings and symbols. This is needed since changeset a69c6e871607
 of 2017年12月20日, which applied to the C code.
2019年03月21日 Jerry James <james@xemacs.org>
 * startup.el (startup-setup-paths): Silence startup warnings due to
 mismatched format strings and arguments. Patch thanks to Tim
 Landscheidt <tim@tim-landscheidt.de>.
2019年03月21日 Aidan Kehoe <kehoea@parhasard.net>
 Move several more functions, not loop hotspots and easily
 implemented in Lisp, from C to Lisp.
 * abbrev.el:
 * abbrev.el (insert-abbrev-table-description): New.
 Move this back to Lisp, now there's a penalty for it being in C
 with NEWGC.
 Remove comment with old Lisp implementation.
 * cmdloop.el:
 * cmdloop.el (prefix-numeric-value): New.
 Move this here from callint.c.
 * loadup.el:
 * loadup.el (really-early-error-handler):
 Use #'format-into rather than (princ (format ...)), now #'format
 is not available on a bare-metal XEmacs.
 * setup-paths.el (paths-default-info-directories):
 Use (string directory-sep-char) rather than (char-to-string
 directory-sep-char), now the latter is not available on a
 bare-metal XEmacs.
 * simple.el:
 * simple.el (backward-char): New.
 * simple.el (beginning-of-line): New.
 * simple.el (end-of-line): New.
 Move these three from cmds.c.
 * subr.el:
 * subr.el (format): New.
 Move this from doprnt.c
 * subr.el (arrayp): New.
 * subr.el (sequencep): New.
 * subr.el (natnump): New.
 * subr.el (nonnegativep): New.
 Move all these from data.c
 * subr.el (identity):
 Give this a better argument name and docstring.
 * subr.el (char-to-string): New.
 * subr.el (string-to-char): New.
 * subr.el (char-equal): New.
 Move these three from editfns.c.
 * x-misc.el:
 * x-misc.el (default-x-device): New.
 Move this from device-x.c.
2019年03月27日 Aidan Kehoe <kehoea@parhasard.net>
 * minibuf.el (read-file-name-internal-1):
 Revise this now #'user-name-completion returns two values and
 #'user-name-completion-1 is no longer available.
2011年03月05日 Aidan Kehoe <kehoea@parhasard.net>
 * bytecomp.el:
 * bytecomp.el (byte-compile-default-warnings):
 * bytecomp.el (byte-compiler-legal-options):
 * bytecomp.el (byte-compile-format): New.
 * bytecomp.el (byte-compile-message): New.
 Introduce `byte-compile-format', which warns if CONTROL-STRING is
 not constant, something that is reasonably often a security
 issue. Suppress this warning for calls to #'gettext, or
 if-statements both branches of which are constant strings.
2018年10月07日 Aidan Kehoe <kehoea@parhasard.net>
 * font-lock.el (font-lock-fontify-syntactically-region):
 Careful here, font-lock-cache-position can be a marker that
 doesn't point anywhere; thanks for the bug report, Michael
 Sperber!
2018年10月01日 Aidan Kehoe <kehoea@parhasard.net>
 * code-files.el (insert-file-contents):
 * cus-edit.el (custom-redraw):
 * font-lock.el (font-lock-fontify-syntactically-region):
 * help.el (Help-princ-face):
 * help.el (Help-prin1-face):
 * help.el (help-symbol-regexp):
 * indent.el (increase-left-margin):
 * indent.el (decrease-left-margin):
 * info.el (Info-find-file-node):
 * info.el (Info-cease-edit):
 * mouse.el (default-mouse-track-deal-with-down-event):
 * select.el (select-convert-to-lineno):
 * select.el (select-convert-to-sourceloc):
 * simple.el (kill-region):
 * simple.el (pop-global-mark):
 * simple.el (signal-error-on-buffer-boundary):
 * wid-edit.el (widget-setup):
 * window-xemacs.el (restore-saved-window-parameters):
 Don't call #'marker-position in the core Lisp code, as we have
 just advised in its docstring.
2018年09月28日 Aidan Kehoe <kehoea@parhasard.net>
 * byte-optimize.el (byte-optimize-car):
 * byte-optimize.el (byte-optimize-cdr):
 Leave erroring on zero arguments and returning nil on nil
 arguments to #'byte-optimize-predicate within these functions.
2018年09月16日 Aidan Kehoe <kehoea@parhasard.net>
 * alist.el: Remove this.
 It's indifferent to poor code, nothing uses it in core, and the
 file is in APEL already.
2018年09月05日 Aidan Kehoe <kehoea@parhasard.net>
 * cl-macs.el (cl-const-expr-p):
 Recognise that keywords are constant symbols within this
 function.
 * byte-optimize.el:
 * byte-optimize.el (byte-compile-trueconstp): Removed.
 * byte-optimize.el (byte-optimize-car):
 * byte-optimize.el (byte-optimize-cdr):
 * byte-optimize.el (byte-optimize-or):
 * byte-optimize.el (byte-optimize-if):
 * byte-optimize.el (byte-optimize-letX):
 Use `byte-compile-constp' instead in the places this macro was
 used, which recognises that keywords are constant symbols too, and
 so reduces the number of places this bug can happen.
2018年09月02日 Aidan Kehoe <kehoea@parhasard.net>
 * byte-optimize.el:
 * byte-optimize.el (:execute):
 * bytecomp.el (:execute):
 * cl-extra.el:
 * cl-extra.el (:execute):
 * cl-extra.el (streamp):
 * cl-macs.el:
 * cus-face.el:
 * cus-face.el (:compile-toplevel):
 * easy-mmode.el:
 * help.el:
 * help.el (:execute):
 * info.el (:compile-toplevel):
 * info.el (unless):
 * regexp-opt.el (regexp-opt-group):
 * syntax-ppss.el (font-lock-beginning-of-syntax-function):
 * syntax-ppss.el (syntax-ppss-depth):
 * wid-browse.el:
 * wid-browse.el (widget-browse):
 * x-init.el (:compile-toplevel):
 Now #'eval-when is in bytecomp-runtime, use it in those places
 where it is clearer than #'eval-when-compile.
 Many of the places #'eval-when-compile were used were actually
 unnecessary; remove them.
 * bytecomp-runtime.el (eval-when):
 Document #'eval-when in a little more detail.
2018年09月02日 Aidan Kehoe <kehoea@parhasard.net>
 * bytecomp.el (byte-compile-initial-macro-environment):
 Correct a comment here, there's no bug in defstruct or defsetf.
2018年09月02日 Aidan Kehoe <kehoea@parhasard.net>
 * bytecomp-runtime.el:
 * bytecomp-runtime.el (eval-when): Move the runtime part of this
 here from cl-macs.el.
 * bytecomp.el:
 * bytecomp.el (byte-compile-eval):
 * bytecomp.el (byte-compile-eval-when-seen): New.
 * bytecomp.el (byte-compile-initial-macro-environment):
 Implement the bulk of #'eval-when in the compiler, where it belongs.
 * cl-macs.el:
 * cl-macs.el (cl-not-toplevel): Removed.
 * cl-macs.el (eval-when): Removed.
 * cl-macs.el (arguments): Removed.
 * cl-macs.el (cl-compile-time-too): Removed.
 * cl-macs.el (define-setf-method):
 * cl-macs.el (defstruct):
 * cl-macs.el (deftype):
 * cl-macs.el (define-compiler-macro):
 * cl.el (declaim):
 Use the ANSI CL syntax for the stages in WHEN with #'eval-when.
 No need to worry about delaying loading cl-macs.el when using that
 syntax.
 * cl.el (cl-random-time):
 * ldap.el (:load-toplevel):
 Correct the syntax of this #'eval-when call.
2018年08月25日 Aidan Kehoe <kehoea@parhasard.net>
 * autoload.el (generate-file-autoloads):
 * autoload.el (generate-custom-defines):
 * autoload.el (generate-custom-defines-1):
 * bytecomp.el:
 * bytecomp.el (byte-compile-dest-file): New.
 * bytecomp.el (byte-compile-inline-expand):
 * disass.el (disassemble-1):
 * files.el:
 * files.el (parse-colon-path):
 * files.el (set-auto-mode):
 * files.el (hack-local-variables):
 * files.el (hack-local-variables-last-page):
 * files.el (hack-local-variables-prop-line):
 * files.el (file-relative-name):
 * files.el (revert-buffer):
 * files.el (recover-session):
 * files.el (file-expand-wildcards):
 * files.el (shell-quote-wildcard-pattern):
 * files.el (insert-directory):
 * files.el (insert-directory-adj-pos):
 * find-paths.el (paths-find-recursive-path):
 * font-lock.el (font-lock-lisp-like):
 * font-lock.el (font-lock-match-java-declarations):
 * font-mgr.el:
 * font-mgr.el (xlfd-font-name-p):
 * gutter-items.el (buffers-tab-omit-some-buffers):
 * gutter-items.el (select-buffers-tab-buffers-by-mode):
 Call #'string-match, #'looking-at much less often, preferring
 #'string-match-p and #'looking-at-p instead for fewer side-effects.
 * cus-edit.el:
 * cus-edit.el (customize-version-lessp):
 Use the much cheaper #'parse-integer instead of #'read here.
 * files.el (convert-standard-filename):
 Redefine this to act as identity on non-windows-nt systems.
2018年08月14日 Aidan Kehoe <kehoea@parhasard.net>
 * misc.el (make-weak-box):
 Make this code work when run interpreted too, not that it will come
 up much.
2018年08月13日 Aidan Kehoe <kehoea@parhasard.net>
 * misc.el (make-weak-box):
 Have distinct weak boxes print distinctly; remove information on
 the type of the one-time contents from the weak box, it doesn't
 add anything and will be inaccurate once the contents are nil.
2018年08月12日 Aidan Kehoe <kehoea@parhasard.net>
 * misc.el:
 * misc.el (weak-box-p):
 * misc.el (make-weak-box):
 * misc.el (weak-box-ref):
 Improve the implementation here; make #'weak-box-ref free in terms
 of garbage, make weak boxes that reference distinct objects print
 distinctly, give information as to the type of CONTENTS stored.
 Document some more on the performance and debugging implications
 of the Lisp implementation.
2018年08月12日 Aidan Kehoe <kehoea@parhasard.net>
 * misc.el:
 * misc.el (weak-box-p): New.
 * misc.el (make-weak-box): New.
 * misc.el (weak-box-ref): New.
 Move all these functions here from data.c.
2018年07月17日 Aidan Kehoe <kehoea@parhasard.net>
 * backquote.el (bq-process):
 * backquote.el (bq-process-2):
 * backquote.el (bq-comma):
 * backquote.el (bq-process-1):
 Style improvements in this file:
 1. Give structured errors on encountering invalid syntax.
 2. Call member* when interpreted, which #'memq was doing anyway,
 and which will translate to the memq bytecode in the old way when
 compiled.
 3. Indent if statements as Emacs Lisp, not Common Lisp.
2018年07月17日 Aidan Kehoe <kehoea@parhasard.net>
 * backquote.el (bq-process-2):
 Be better about handling vectors here; pass through constants,
 call #'vector, #'vconcat directly at runtime if appropriate. Call
 #'atom (which translates to bytecode) rather than #'vectorp first
 within this function.
 New #'bq-process-2 flag, vector*, which means "call apply
 #'vector in the old way"
 * backquote.el (bq-comma):
 Don't check for numberp here, leave that to #'bq-process-1.
 * backquote.el (bq-process-1):
 Implement vector*. Call #'quote-maybe when appropriate, giving
 more readable output.
2018年07月05日 Aidan Kehoe <kehoea@parhasard.net>
 Silence an extensive list of byte compile warnings, chiefly
 through use of #'globally-declare-fboundp and
 #'globally-declare-boundp.
 Also prefer (default-device 'x) to (default-x-device), since the
 former always exists when byte compiling.
 * autoload.el:
 * autoload.el (make-autoload):
 * autoload.el (autoload-make-autoload-operators): New.
 * autoload.el (autoload-make-autoload-complex-operators): New.
 Be a bit better about silencing byte compile warnings regarding
 autoload-make-autoload-operators here
 * behavior.el:
 * behavior.el (unless):
 * buff-menu.el:
 * buff-menu.el (unless):
 * cmdloop.el:
 * cmdloop.el (unless):
 * cmdloop.el (yes-or-no-p):
 * cmdloop.el (y-or-n-p):
 * cus-edit.el:
 * cus-edit.el (unless):
 * custom.el (custom-theme-reset-internal-face):
 * custom.el (custom-define-hook):
 * dialog-items.el:
 * dialog-items.el (unless):
 * dialog.el:
 * easymenu.el:
 * easymenu.el (unless):
 * font-menu.el:
 * font-menu.el (unless):
 * font.el:
 * font.el (fontconfig):
 * font.el (font-xft-font-regexp):
 * font.el (font-xft-font-regexp)): New.
 * font.el (x-font-build-cache):
 * font.el (xft-font-create-object):
 * fontconfig.el (fc-try-font):
 * fontconfig.el (fc-find-available-font-families):
 * fontconfig.el (fc-find-available-weights-for-family):
 * gnuserv.el:
 * gnuserv.el (unless):
 * gtk-faces.el:
 * gtk-faces.el (unless):
 * gtk-faces.el (gtk-convert-font-from-xlfd):
 * help.el:
 * help.el (unless):
 * help.el (help):
 * hyper-apropos.el:
 * hyper-apropos.el (unless):
 * info.el:
 * info.el (unless):
 * lisp-mode.el:
 * lisp-mode.el (unless):
 * menubar-items.el:
 * menubar-items.el (unless):
 * menubar.el:
 * menubar.el (unless):
 * minibuf.el:
 * minibuf.el (unless):
 * minibuf.el (insert-default-directory):
 * mode-motion.el:
 * mode-motion.el (mouse):
 * modeline.el:
 * modeline.el (unless):
 * mouse.el:
 * mouse.el (unless):
 * mouse.el (shift):
 * msw-select.el:
 * msw-select.el (unless):
 * mule/mule-charset.el (do-define-charset-tags):
 * mule/mule-charset.el (script):
 * mwheel.el:
 * mwheel.el (unless):
 * occur.el:
 * occur.el (unless):
 * package-ui.el:
 * package-ui.el (unless):
 * picture.el:
 * picture.el (unless):
 * printer.el:
 * printer.el (unless):
 * scrollbar.el:
 * scrollbar.el (unless):
 * select.el:
 * select.el (unless):
 * startup.el:
 * startup.el (unless):
 * toolbar-items.el:
 * toolbar-items.el (unless):
 * toolbar.el:
 * toolbar.el (unless):
 * userlock.el:
 * userlock.el (unless):
 * userlock.el (ask-user-about-lock-minibuf):
 * wid-edit.el:
 * wid-edit.el (unless):
 * x-faces.el (x-make-font-bold-xft):
 * x-faces.el (x-make-font-unbold-xft):
 * x-faces.el (x-make-font-italic-xft):
 * x-faces.el (x-make-font-unitalic-xft):
 * x-faces.el (x-font-size-xft):
 * x-faces.el (x-find-xft-font-of-size):
 * x-font-menu.el:
 * x-font-menu.el (unless):
 * x-init.el:
 * x-init.el (unless):
 * x-mouse.el:
 * x-mouse.el (unless):
 * x-scrollbar.el:
 * x-scrollbar.el (unless):
 * x-scrollbar.el (x-init-scrollbar-from-resources):
 * x-win-sun.el:
 * x-win-sun.el (unless):
 * x-win-sun.el (x-win-init-sun):
 * x-win-xfree86.el:
 * x-win-xfree86.el (unless):
2018年07月05日 Aidan Kehoe <kehoea@parhasard.net>
 * cl-macs.el (defsubst*):
 Document that within BODY the variable names within ARGLIST may
 not have dynamic binding.
 Don't check BODY for side effects, our check is inaccurate and the
 result was used, inaccurately, within cl-defsubst-expand to decide
 whether argument names needed binding.
 * cl-macs.el (cl-defsubst-expand):
 Don't bind arguments using let if the UNSAFE argument is supplied,
 that gives byte-compile warnings that don't help anyone.
2018年07月05日 Aidan Kehoe <kehoea@parhasard.net>
 * map-ynp.el (normalize-menu-text): Add an autoload for this
 function, now it's available in Lisp when C menubar support isn't
 available. 
 * menubar.el (normalize-menu-text): Implement this function, moved
 from C.
2018年07月04日 Aidan Kehoe <kehoea@parhasard.net>
 * loadup.el (source-lisp):
 * make-docfile.el (source-lisp):
 * update-elc.el (source-lisp):
 #'nth no longer available on a bare-metal XEmacs, use its
 implementation.
 * subr.el:
 * subr.el (identity): New.
 * subr.el (nth): New.
 Move these functions here from fns.c.
2018年07月01日 Aidan Kehoe <kehoea@parhasard.net>
 * bytecomp.el (byte-compile-normal-call):
 When examining the :test, :key, etc arguments, be aware that a
 quoted symbol may be a data placeholder, and take that into
 account before warning.
 * cl-extra.el (cl-macroexpand-all):
 Only close around variables that are actually *used* in the
 lambda, when dealing with lambdas and lexical scope.
2018年07月01日 Aidan Kehoe <kehoea@parhasard.net>
 * easymenu.el:
 * easymenu.el (easy-menu-do-define):
 * easymenu.el (easy-menu-change):
 * easymenu.el (easy-menu-add):
 * easymenu.el (easy-menu-remove):
 * easymenu.el (easy-menu-add-item):
 * easymenu.el (easy-menu-item-present-p):
 * easymenu.el (easy-menu-remove-item):
 * lisp-mode.el (emacs-lisp-mode):
 * lisp-mode.el (lisp-interaction-mode):
 * startup.el (command-line):
 If running noninteractively (e.g. byte-compiling Lisp when
 building), don't bother to add menubar entries.
2018年07月01日 Aidan Kehoe <kehoea@parhasard.net>
 * cl-extra.el (cl-macroexpand-all):
 Use #'apply-partially to create closures with lambdas and lexical
 variables.
 * cl-macs.el (apply-partially):
 #'function-max-args can give nil, handle this OK.
 #'error doesn't take a format string, correct calls to it.
 * subr.el (apply-partially):
 Don't use a (&rest args) arglist for the constructed function if
 we've been supplied an explicit lambda. Parse the supplied arglist
 and construct one that reflects it, something that allows the byte
 compiler to give more useful warnings with labels.
 Do the check for the number of args passed correctly.
 If we haven't been supplied an explicit lambda, use an uninterned
 symbol for the argument list name, avoiding problems with dynamic
 scope.
2018年06月30日 Aidan Kehoe <kehoea@parhasard.net>
 * gtk-widgets.el:
 Avoid duplicate function imports in this file.
 * gtk-faces.el:
 Silence warnings about unbound symbols within this file when
 byte-compiling.
 * gtk-file-dialog.el:
 Silence warnings about #'gtk-dialog-get-content-area not being
 #'fboundp.
 * gtk-init.el:
 Silence warnings about #'gtk-load-css not having a function
 binding.
2018年06月14日 Aidan Kehoe <kehoea@parhasard.net>
 * test-harness.el (test-harness-from-buffer):
 Use the correct number of #'format arguments in calls to
 Print-Failure here, avoiding log chatter when XEmacs warns about
 too many arguments to #'format.
2018年05月25日 Aidan Kehoe <kehoea@parhasard.net>
 * events.el:
 * events.el (key-or-mouse-event-p): New.
 * events.el (timeout-or-eval-event-p): New.
 * events.el (char-or-event-p): New.
 Make these available, the C code has been calling them from
 wrong_type_argument() for years, despite their not existing.
2018年04月27日 Aidan Kehoe <kehoea@parhasard.net>
 * bytecomp.el:
 * bytecomp.el (ignore):
 * bytecomp.el (byte-compile-ignore): New.
 Add a byte-compile method for #'ignore, marking all its arguments
 as for-effect, and returning nil.
2018年04月25日 Aidan Kehoe <kehoea@parhasard.net>
 * subr.el (not): New.
 * subr.el (null): New.
 * subr.el (atom): New.
 * subr.el (listp): New.
 * subr.el (nlistp): New.
 * subr.el (bitp): New.
 * subr.el (zerop): New.
 * subr.el (true-list-p): New. 
 Move all these functions from C, they're not loop hotspots,
 they're easily implemented in Lisp, and implementing them in C
 costs less memory with NEWGC.
 * bytecomp.el (byte-compile-throw):
 #'null is no longer in C, don't include its code in
 byte-compile-checks-on-load.
 * dumped-lisp.el:
 * dumped-lisp.el (preloaded-file-list):
 * loadup.el (gc-cons-threshold):
 * loadup.el (really-early-error-handler):
 * loadup.el (fboundp):
 * make-docfile.el (done):
 * make-docfile.el (process-args):
 * make-docfile.el (preloaded-file-list):
 * make-docfile.el (site-file-list):
 * packages.el (packages-add-suffix):
 * packages.el (packages-list-autoloads-path):
 * update-elc.el:
 * update-elc.el (preloaded-file-list):
 * update-elc.el (or):
 * update-elc.el (featurep):
 * update-elc.el (do-autoload-commands):
 Don't use those functions when running a bare-metal XEmacs binary.
2018年04月25日 Aidan Kehoe <kehoea@parhasard.net>
 * make-docfile.el (docfile-out-of-date):
 #'call-process can return a non-integer if the underlying process
 signaled, and exited for that reason. Handle this more gracefully.
2018年04月10日 Aidan Kehoe <kehoea@parhasard.net>
 * code-files.el (write-region):
 Document that APPEND can now be a numeric offset, indicating a
 point to seek to.
2018年02月18日 Aidan Kehoe <kehoea@parhasard.net>
 * simple.el (no-case-regexp-p):
 * simple.el (with-search-caps-disable-folding):
 * simple.el (with-interactive-search-caps-disable-folding):
 * simple.el (log-message-filter):
 Use `string-match-p' in these functions, no need to save the match
 data with same.
 * simple.el (clone-process):
 * simple.el (clone-buffer):
 * simple.el (clone-indirect-buffer):
 Ditto; use the same idiom throughout the file when stripping
 trailing <DIGIT+> patterns from strings.
2017年12月25日 Aidan Kehoe <kehoea@parhasard.net>
 * hyper-apropos.el (hyper-apropos-grok-variables):
 User variables' docstrings do not necessarily start with *, check
 for one before removing the first character from the output.
2017年12月24日 Aidan Kehoe <kehoea@parhasard.net>
 * test-harness.el (test-harness-from-buffer):
 Error in `Skip-Test-Unless' if BODY is not specified.
2017年12月22日 Aidan Kehoe <kehoea@parhasard.net>
 * descr-text.el (describe-char-unicodedata-file):
 The UnicodeData.txt installed with Perl no longer serves our
 needs. Use that installed by TeX instead, if available.
 
2017年12月22日 Aidan Kehoe <kehoea@parhasard.net>
 * compose.el: Rename from x-compose.el, it's not
 platform-specific.
 (decide-on-bindings):
 Remove the last of the X11-specific code, don't use the UABCD
 keysyms for some exotic composed base characters.
 * gtk-compose.el (gtk-compose): Require the new feature.
 * isearch-mode.el (isearch-pre-command-hook):
 * keymap.el (for):
 Update documentation, references to x-compose.el to reference the
 new name.
2017年12月01日 Aidan Kehoe <kehoea@parhasard.net>
 * about.el (about): New custom group for this file.
 * about.el (about-headline-face):
 * about.el (about-link-face):
 Provide and use a custom group for these faces, avoiding a
 distracting warning when viewing the about page.
2017年11月16日 Aidan Kehoe <kehoea@parhasard.net>
 * x-faces.el (x-library-search-path):
 Update this variable to include share/ subdirectories of all the
 potential prefixes, since rgb.txt is usually now in share/X11.
 * x-faces.el (x-color-list-internal):
 Use #'canoncase, not #'downcase when adding completion for the
 lowercase form, avoiding problems with Turkish locales.
2017年11月14日 Aidan Kehoe <kehoea@parhasard.net>
 * mule/cyrillic.el ("Cyrillic-ISO"):
 * mule/cyrillic.el ("Russian"):
 * mule/cyrillic.el ("Cyrillic-ALT"):
 Remove cyril-util from the features list of these language
 environments; `standard-display-cyrillic-translit' is the only
 function in that file, and it has an autoload entry
 already. Removing it from the features list is helpful in buildbot
 tests without installed packages.
2017年11月14日 Aidan Kehoe <kehoea@parhasard.net>
 * gutter-items.el (buffers-tab-items):
 Add a missing parenthesis after Stephen's last change, get things
 building again.
2017年11月14日 Stephen J. Turnbull <stephen@xemacs.org>
 * gutter-items.el (buffers-tab-items):
 Sort list before truncating it. Clarify logic, remove comment.
2017年11月13日 Aidan Kehoe <kehoea@parhasard.net>
 * unicode.el (decode-char):
 Return nil instead of erroring when CODE cannot be encoded, as did
 this function pre-unicode-internal and as does (did) GNU's
 version.
2017年11月09日 Aidan Kehoe <kehoea@parhasard.net>
 Ben's approach in lib-src/make-case-conv.el didn't work, there are
 107 entries in CaseFolding.txt as of today where the first column
 is a lowercase letter, not an uppercase one. Parse UnicodeData.txt
 instead.
 * mule/make-case-conv.el: New.
 Replacement for lib-src/make-case-conv.py, parsing UnicodeData.txt
 instead.
 * mule/uni-case-conv.el:
 Update this file to reflect output from make-case-conv.el with
 recent UnicodeData.txt instead.
2017年10月29日 Aidan Kehoe <kehoea@parhasard.net>
 * cl-extra.el (cl-macroexpand-all):
 When processing a let binding, and an existing symbol macro has
 the same symbol name as the let binding, delay shadowing until all
 bindings are processed. 
2017年10月26日 Stephen J. Turnbull <stephen@xemacs.org>
 * mule/japanese.el (shift_jis): Correct comment.
2017年10月26日 Stephen J. Turnbull <stephen@xemacs.org>
 * gutter-items.el (buffers-tab-omit-function):
 (buffers-tab-omit-list):
 (buffers-tab-selection-function):
 (buffers-tab-filter-functions):
 (buffers-tab-sort-function):
 (buffers-tab-grouping-regexp):
 (buffers-tab-format-buffer-line-function):
 (format-buffers-tab-line):
 (buffers-tab-items):
 (add-tab-to-gutter):
 (update-tab-in-gutter):
 Clarify docstrings.
2017年10月12日 Aidan Kehoe <kehoea@parhasard.net>
 * frame.el (frame-utmost-window-2): Made into a label.
 * frame.el (frame-utmost-window-1): Use the label.
 Remove #'frame-utmost-window-2 from the global namespace.
2017年10月06日 Aidan Kehoe <kehoea@parhasard.net>
 * mule/chinese.el:
 * mule/chinese.el (for):
 * mule/chinese.el (chinese-big5/list):
 * mule/chinese.el (find-charset):
 * mule/mule-category.el (predefined-category-list):
 * mule/mule-charset.el:
 Remove Ben's attempt under unicode-internal to make Big5 into one
 charset. This is incompatible with byte-compiled code from 21.4,
 which uses the hackish chinese-big5-1, chinese-big5-2 charsets
 with ISO-2022 escapes to encode these characters.
 If at some point in the future where we use UTF-8 for compiled
 code this could be revisited.
2017年09月30日 Aidan Kehoe <kehoea@parhasard.net>
 * mule/thai.el:
 * mule/thai.el (thai-tis620):
 * mule/thai.el (tis-620):
 The charset thai-iso8859-11 is identical to thai-tis620 for our
 purposes, and its presence makes the digit-char test code fail on
 non-mule. Remove it. Use tis-620, the preferred IANA name for
 related coding system, as the related coding system name. Provide
 iso-8859-11, not actually an IANA name, as an alias.
2017年09月25日 Aidan Kehoe <kehoea@parhasard.net>
 * subr.el (concat):
 This function hasn't accepted individual fixnums as arguments in
 twenty years, and GNU's version of the function doesn't
 either. Remove all mention of it.
 Clarify the types of the elements accepted in the argument sequences.
 * subr.el (bvconcat):
 Clarify the types of the elements accepted in the argument sequences.
2017年09月16日 Aidan Kehoe <kehoea@parhasard.net>
 * startup.el:
 Remove `keyboard-type', which has been present since 1991 and
 never used. Don't do a make-compatible with it, since though it is
 present in GNU code it is not set or examined there. The byte
 compiler warning should be enough.
2017年09月07日 Aidan Kehoe <kehoea@parhasard.net>
 * rect.el (delete-extract-rectangle-line):
 Use (format "%*s" N "") instead of (spaces-string N) in this
 function.
 * rect.el (extract-rectangle-line): Ditto.
 * rect.el (spaces-strings): Removed.
 * rect.el (spaces-string): Removed.
 These aren't needed, (format "*s" N "") does the same job.
 * rect.el (apply-on-rectangle):
 * rect.el (delete-rectangle-line):
 * rect.el (open-rectangle-line):
 * rect.el (string-rectangle-line):
 * rect.el (clear-rectangle-line):
 * rect.el (rect):
 Fixup whitespace in this file.
2017年06月28日 Aidan Kehoe <kehoea@parhasard.net>
 * subr.el (char-width): Move this to C, necessary as part of the
 unicode-internal support.
2017年05月30日 Aidan Kehoe <kehoea@parhasard.net>
 * about.el (about-xemacs):
 Correct a recently-introduced bug here, give the correct bounding
 keywords to #'parse-integer when working out the month of the
 release date.
 Don't check for xemacs-extra-name, xemacs-release-date being
 #'boundp, we control src/emacs.c, and can ensure they always are.
2017年03月15日 Aidan Kehoe <kehoea@parhasard.net>
 * make-docfile.el:
 Don't bother working around a berkeley-unix and next-mach bug
 that is likely long fixed anyway.
 Print the stderr of make-docfile to the terminal instead of simply
 discarding it.
 Pass through make-docfile's exit code.
2017年03月13日 Aidan Kehoe <kehoea@parhasard.net>
 * ChangeLog:
 * data.c:
 Update mid.gmane.org to mid.xemacs.org. We miss you, Gmane.
2017年03月12日 Aidan Kehoe <kehoea@parhasard.net>
 Replace calls to #'string-match, where the match data isn't used,
 with calls to #'string-match-p. This will lead to fewer
 undesired interactions (= bugs) with other code.
 * abbrev.el (define-abbrev):
 * auto-save.el (auto-save-file-name-p):
 * auto-save.el (auto-save-original-name):
 * buff-menu.el (list-buffers-internal):
 * byte-optimize.el (byte-compile-log-lap-1):
 * bytecomp-runtime.el (error-unless-tests-match):
 * bytecomp-runtime.el (byte-compile-file-being-compiled):
 * bytecomp.el (byte-recompile-directory):
 * bytecomp.el (byte-recompile-file):
 * bytecomp.el (batch-byte-compile-one-file):
 * cl-extra.el (names):
 * cmdloop.el:
 * cmdloop.el (keyboard-escape-quit):
 * code-files.el (find-file-coding-system-for-read-from-filename):
 * code-files.el (find-file-coding-system-for-write-from-filename):
 * code-process.el (call-process):
 * code-process.el (start-process):
 * code-process.el (network-stream-open-starttls):
 * code-process.el (open-network-stream):
 * cus-edit.el (custom-guess-type):
 * cus-edit.el (customize-apropos):
 * custom.el (custom-group-of-mode):
 * custom.el (custom-load-symbol):
 * derived.el (derived-mode-make-docstring):
 * descr-text.el (describe-text-sexp):
 * etags.el (get-tag-table-buffer):
 * etags.el (add-to-tag-completion-table):
 * faces.el (face-complain-about-font):
 * files.el:
 * files.el (file-chase-links):
 * files.el (find-file-noselect):
 * files.el (set-auto-mode):
 * files.el (hack-local-variables):
 * files.el (hack-one-local-variable):
 * files.el (file-name-sans-versions):
 * files.el (make-backup-file-name-1):
 * files.el (backup-file-name-p):
 * files.el (backup-extract-version):
 * files.el (file-relative-name):
 * files.el (rename-uniquely):
 * files.el (wildcard-to-regexp):
 * files.el (shell-quote-wildcard-pattern):
 * files.el (insert-directory):
 * files.el (file-name-non-special):
 * files.el (file-system-ignore-case-p):
 * fill.el:
 * fill.el (fill-context-prefix):
 * finder.el (finder-edit):
 * finder.el (finder-view):
2017年03月12日 Aidan Kehoe <kehoea@parhasard.net>
 Clean up auto-save.el, extend the functionality of
 #'auto-save-{un,}escape-name.
 * auto-save.el:
 * auto-save.el (efs-auto-save-remotely):
 Always provide a defvar for this, since this file is dumped efs.el
 will not be loaded before auto-save.el.
 * auto-save.el (auto-save-checked-directory):
 Fix some indentation; remove some long-commented code, avoiding
 distraction.
 * auto-save.el (auto-save-name-in-fixed-directory):
 We have DOC now, it's not expensive of RAM to have function
 docstrings, uncomment this one.
 * auto-save.el (auto-save-name-in-same-directory):
 Ditto.
 * auto-save.el (auto-save-reserved-chars):
 Expand the docstring of this a little.
 * auto-save.el (auto-save-escape-name):
 Preserve those characters which wouldn't be preserved by
 file-name-coding-system in this function.
 * auto-save.el (auto-save-unescape-name):
 Do the inverse of the newly-added functionality of
 #'auto-save-escape-name.
 * auto-save.el (auto-save-cyclic-hash-14):
 Uncomment the docstring for this function.
2017年03月12日 Aidan Kehoe <kehoea@parhasard.net>
 * auto-save.el (auto-save-unescape-name):
 Fix a bug in this, limit the hex parsing correctly.
2017年03月09日 Aidan Kehoe <kehoea@parhasard.net>
 
 * disp-table.el (standard-display-g1):
 * disp-table.el (standard-display-graphic):
 * disp-table.el (standard-display-underline):
 * files.el (make-backup-file-name-1):
 * files.el (wildcard-to-regexp):
 * gtk-file-dialog.el (gtk-file-dialog-update-dropdown):
 * info.el (Info-all-case-regexp):
 * info.el (Info-scroll-next):
 * map-ynp.el (map-y-or-n-p):
 * menubar.el (menu-item-generate-accelerator-spec):
 * menubar.el (menu-max-items):
 * minibuf.el (get-user-response):
 * package-admin.el (package-admin-check-manifest):
 In contexts like (concat ... (char-to-string x) ...), (list x) is
 a more idiomatic and faster way to construct a sequence. Use it.
 * autoload.el (autoload-featurep-protect-autoloads):
 The fixnum-char mapping for values less than #x100 is stable, no
 need to construct the string "\x00-\xff" at runtime.
2017年03月04日 Aidan Kehoe <kehoea@parhasard.net>
 * startup.el (normal-top-level):
 Bind an uninterned #:buffer, rather than #:ntl-buffer, which is
 less distracting in backtraces.
 (Commit chiefly done to help get the xemacs-commit hook posting
 again.)
2017年02月20日 Aidan Kehoe <kehoea@parhasard.net>
 * cl-macs.el:
 * cl-macs.el (with-hash-table-iterator): New.
 Make this Common Lisp special form available, the relevant C
 runtime support has just been added.
2017年02月13日 Aidan Kehoe <kehoea@parhasard.net>
 * autoload.el (make-autoload):
 * cl-macs.el (get-setf-method):
 * files.el (abbreviate-file-name):
 * regexp-opt.el (regexp-opt-depth):
 * simple.el (delete-trailing-whitespace):
 Replace (save-match-data (string-match ...)), detected
 algorithmically, with (string-match-p ...). Similarly for the one
 instance of (save-match-data (looking-at ...)).
2017年02月09日 Aidan Kehoe <kehoea@parhasard.net>
 * subr.el (safe-length): New. Moved here from data.c, there's no
 indication to have this in C.
2017年01月15日 Aidan Kehoe <kehoea@parhasard.net>
 * subr.el (with-output-to-string):
 Sigh, despite that we did not document that standard-output would
 always be a Lisp buffer, a decent amount of code depends on that
 behaviour, and so we cannot implement this in terms of
 #'make-string-output-stream. Thanks for the bug report, Jerry James!
2017年01月14日 Aidan Kehoe <kehoea@parhasard.net>
 * minibuf.el (mouse-rfn-setup-vars): Move this to being a label.
 * minibuf.el (mouse-read-file-name-1):
 Define, use the label.
2017年01月14日 Aidan Kehoe <kehoea@parhasard.net>
 * cus-face.el:
 * cus-face.el (custom-face-attributes):
 Merge GNU's :height, equivalent to :size if a fixnum, providing a
 scale factor if a float, and transforming in some way if a
 function.
 * cus-face.el (custom-set-face-font-height): New.
 Implementation to set :height.
 * faces.el:
 * faces.el (make-face-family):
 * faces.el (make-face-size):
 Use #'apply-partially in these two functions, so the byte compiler
 can check the lambda bodies for sanity.
 * faces.el (make-face-height): New.
 Do the bulk of the work of implementing the :height keyword. Not
 done yet; code to make a proportional font size update on changing
 of the font size from the font menu.
2017年01月14日 Aidan Kehoe <kehoea@parhasard.net>
 * cus-face.el (custom-face-inherit):
 Whoops Ben in 7efd3a9bbcfb, (vector spec) does not check whether
 SPEC is a vector, do it properly.
2017年01月14日 Aidan Kehoe <kehoea@parhasard.net>
 * font-menu.el:
 * font-menu.el (font-menu-change-face): Renamed.
 * font-menu.el (font-menu-maybe-change-face): New name for
 #'font-menu-change-face.
 Also give it a more comprehensive docstring, to avoid the sort of
 mistake of 30118fdc4f1f.
 No need for #'string-equal (there is on balance usually no need
 for #'string-equal, #'equal has a bytecode).
 * font-menu.el (font-menu-set-font):
 Revert part of 30118fdc4f1f of 20021112, which meant the font menu
 no longer worried about whether a given face was equivalent to the
 current default face when deciding whether to change it.
 Only message about changing a font if it is changed.
 * cl-macs.el (assert):
 Remove the artificial restriction that FORM must be a cons.
 This restriction is also present in Common Lisp, but keeping it
 adds no value for us.
2016年12月30日 Aidan Kehoe <kehoea@parhasard.net>
 * cl-extra.el (cl-macroexpand-all):
 Shadow symbol macros when the corresponding symbols are
 encountered in lambda argument lists with the symbol macro body.
 Previously this was buggy in that the lambda argument lists were
 left alone and the expansion was applied to the body of the
 lambda, which no-one intended.
 Implement a new SHADOW option for individual symbol macros,
 specifying the Common Lisp behaviour.
 * cl-macs.el (symbol-macrolet):
 Document this shadowing in the docstring. Document the
 transformation of `let', `let*' to `letf', `letf*'.
 Document the new SHADOW option.
 * cl-macs.el (cl-defsubst-expand): 
 Use the new SHADOW option in our symbol macros, to avoid problems
 with argument substitution inside let bindings or lambda
 expressions where that would be inappropriate.
 
2016年12月29日 Aidan Kehoe <kehoea@parhasard.net>
 Remove duplicate (and silently overridden) buffers tab Lisp code,
 buff-menu.el.
 * buff-menu.el:
 * buff-menu.el (buffers-tab): Removed.
 * buff-menu.el (buffers-tab-max-size): Removed.
 * buff-menu.el (buffers-tab-switch-to-buffer-function): Removed.
 * buff-menu.el (buffers-tab-omit-function): Removed.
 * buff-menu.el (buffers-tab-selection-function): Removed.
 * buff-menu.el (buffers-tab-filter-functions): Removed.
 * buff-menu.el (buffers-tab-sort-function): Removed.
 * buff-menu.el (buffers-tab-face): Removed.
 * buff-menu.el (buffers-tab-grouping-regexp): Removed.
 * buff-menu.el (buffers-tab-format-buffer-line-function): Removed.
 * buff-menu.el (buffers-tab-default-buffer-line-length): Removed.
 * buff-menu.el (buffers-tab-max-buffer-line-length): Removed.
 * buff-menu.el (buffers-menu-omit-function): New.
 * buff-menu.el (buffers-tab-switch-to-buffer): Removed.
 * buff-menu.el (select-buffers-tab-buffers-by-mode): Removed.
 * buff-menu.el (format-buffers-tab-line): Removed.
 * buff-menu.el (buffers-tab-items): Removed.
 * files.el (switch-to-next-buffer):
 * files.el (switch-to-previous-buffer)
 Use the usually-equivalent buffers-menu-omit-function in
 #'switch-to-{next,previous}-buffer, since these functions are
 always dumped and the buffers tab omit-function may well not be.
 * files.el (switch-to-next-buffer-in-group): Removed.
 * files.el (switch-to-previous-buffer-in-group): Removed.
 Move #'switch-to-{next,previous}-buffer-in-group to
 gutter-items.el, given they rely on the buffer tab grouping being
 available. 
 * gutter-items.el:
 * gutter-items.el (buffers-tab): New.
 * gutter-items.el (buffers-tab-omit-some-buffers): New.
 * gutter-items.el (select-buffers-tab-buffers-by-mode):
 * gutter-items.el (switch-to-next-buffer-in-group): New.
 * gutter-items.el (switch-to-previous-buffer-in-group): New.
 * keydefs.el:
 Only give #'switch-to-{next,previous}-buffer-in-group a keybinding
 if the gutter is available.
2016年12月27日 Aidan Kehoe <kehoea@parhasard.net>
 * about.el (about-xemacs):
 * auto-save.el (auto-save-unescape-name):
 * cl-extra.el:
 * cl-extra.el (upper-case-p):
 * descr-text.el (unidata-initialize-unihan-database):
 * files.el:
 * files.el (backup-extract-version):
 * font.el (font-parse-rgb-components):
 Use (parse-integer ... :radix 16) rather than (string-to-number
 (match-string ...) 16) where appropriate, creating less garbage
 strings.
2016年11月28日 Aidan Kehoe <kehoea@parhasard.net>
 * minibuf.el (read-from-minibuffer):
 Bind `help-form' within this function rather than using
 help-keymap-with-help-key.
 * help.el (function-really-at-point):
 Rename this label from #'function-at-point, which should fix the
 build (the file byte-compiled and ran fine, which is usually
 enough). Thank you Mats Lidell and the buildbot.
2016年11月27日 Aidan Kehoe <kehoea@parhasard.net>
 * help.el (function-at-point): New.
 * help.el (function-at-event): New.
 * help.el (function-called-at-point): Reworked.
 * help.el (function-at-point): Reworked.
 * help.el (help-keymap-with-help-key): Removed, long obsolete.
 Add support for detecting the current Lisp function if we are in
 the context of a C file.
2016年11月23日 Aidan Kehoe <kehoea@parhasard.net>
 * dumped-lisp.el (preloaded-file-list):
 Restore mule/digit.el to the list of dumped files, dropped
 accidentally in the Unicode merge.
2016年11月21日 Aidan Kehoe <kehoea@parhasard.net>
 * obarray.el (obarray-map):
 Correct the spelling of #'maphash when marking this for
 compatibility.
2016年11月20日 Aidan Kehoe <kehoea@parhasard.net>
 * abbrev.el:
 * abbrev.el (defining-abbrev-turns-on-abbrev-mode):
 * abbrev.el (make-abbrev-table):
 * abbrev.el (clear-abbrev-table):
 * abbrev.el (define-abbrev-table):
 * abbrev.el (define-abbrev):
 * abbrev.el (inverse-add-abbrev):
 * abbrev.el (expand-region-abbrevs):
 Implement abbrev tables as hash-table objects, not as vectors.
 * derived.el:
 * derived.el (derived):
 Ditto.
 * obarray.el: New.
 * obarray.el (xemacs-intern-in-vector):
 * obarray.el (xemacs-intern-soft-in-vector):
 * obarray.el (xemacs-unintern-in-vector):
 * obarray.el (xemacs-mapatoms-in-vector):
 * obarray.el (xemacs-next-iteration-in-vector):
 For compatibility with all the emacs code out there that expects
 that #'intern and friends can take vector arguments, provide a
 non-dumped but autoloaded implementation of traditional emacs
 obarrays, with the buckets implemented as individual slots in a
 non-resizing vector and each entry in a bucket chained through a
 symbol's next pointer.
 * obarray.el (obarray-default-size): New.
 * obarray.el (obarray-make): New.
 * obarray.el (obarrayp): New.
 * obarray.el (obarray-get): New.
 * obarray.el (obarray-put): New.
 * obarray.el (obarray-remove): New.
 * obarray.el (obarray-map): New.
 Import these ill-conceived GNU functions, mark them compatible.
 * obsolete.el:
 Provide autoloads for the traditional-obarray compatibility
 functions.
2016年11月19日 Aidan Kehoe <kehoea@parhasard.net>
 * fontconfig.el (fc-define-property):
 Supply the right number of arguments to #'format when creating the
 fc-pattern-del- functions, now we have diagnostics that complain
 when too many arguments are supplied.
2016年11月15日 Aidan Kehoe <kehoea@parhasard.net>
 * about.el (about-finish-buffer):
 Restore an omitted arglist here.
 * bytecomp.el (byte-compile-output-docform):
 No need for char= here, use #'eql which will compile to a byte code.
 * bytecomp.el (byte-compile-lambda):
 Check for a likely interactive spec when examining the arglist
 here, warn if encountered, the programmer probably omitted the
 arglist (see the above about.el change for context).
2016年11月07日 Aidan Kehoe <kehoea@parhasard.net>
 * subr.el (char-int-p): New.
 * subr.el (char-or-char-int-p): New.
 * subr.el (char-or-string-p): New.
 * subr.el (integer-or-marker-p): New.
 * subr.el (integer-or-char-p): New.
 * subr.el (integer-char-or-marker-p): New.
 * subr.el (number-or-marker-p): New.
 * subr.el (number-char-or-marker-p): New.
 Move these basic predicates to subr.el from data.c
2016年10月30日 Aidan Kehoe <kehoea@parhasard.net>
 * dumped-lisp.el (preloaded-file-list):
 Dump (preload) "font-menu" when the menubar is available,
 "x-font-menu" when X and the menubar is available.
 * font-menu.el (font-menu-family-constructor):
 * font-menu.el (font-menu-size-constructor):
 * font-menu.el (font-menu-weight-constructor):
 * gtk-font-menu.el (gtk-reset-device-font-menus):
 * gtk-font-menu.el (gtk-font-menu-font-data):
 * msw-font-menu.el (mswindows-reset-device-font-menus):
 * msw-font-menu.el (mswindows-font-menu-font-data):
 * x-font-menu.el (x-reset-device-font-menus-core):
 * x-font-menu.el (x-font-menu-font-data-xft):
 * x-font-menu.el (x-font-menu-font-data-core):
 Use #'assoc, which has a native implementation, instead of
 #'vassoc, which is implemented in non-dumped Lisp, for the font
 menu device cache.
 Dump the font menu implementation code when the relevant features
 are compiled in.
 Makes the font face menu a little faster, though the bottleneck is
 still loading the faces from the X server.
2016年09月11日 Aidan Kehoe <kehoea@parhasard.net>
 * abbrev.el (abbrev-symbol):
 Use a label rather than binding a lambda when examining the local
 and global tables.
 * about.el (about-finish-buffer):
 Use a label instead of binding a lambda.
 * gtk-password-dialog.el (gtk-password-dialog-new):
 Ditto.
 * minibuf.el (minibuffer-complete-word):
 Use a label rather than binding a lambda here; don't needlessly
 bind something to the value of last-command-char.
 * minibuf.el (read-file-name-internal-1):
 Use #'file-name-absolute-p here, as an old comment suggested.
 * minibuf.el (read-directory-name-internal):
 Use a label rather than binding a lambda here.
 * minibuf.el (mouse-read-file-name-1):
 Ditto.
 * mouse.el (default-mouse-track-cleanup-hook):
 Ditto.
 * mouse.el (default-mouse-track-cleanup-extent):
 Ditto.
2016年11月04日 Aidan Kehoe <kehoea@parhasard.net>
 * select.el:
 * select.el (select-convert-in):
 Pass through VALUE if it is non-nil and there is no handler, don't
 discard it. Useful for TARGETS, timestamps.
 * select.el (select-convert-from-cf-unicodetext):
 Supply this with an implementation even when mswindows-unicode
 isn't available as a coding system.
 * select.el (selection-converter-out-alist):
 * select.el (selection-converter-in-alist):
 Only include CF_TEXT in these alists conditionally (at dump time),
 if the relevant coding system is available.
2016年09月11日 Aidan Kehoe <kehoea@parhasard.net>
 * gutter-items.el (buffers-tab-switch-to-buffer):
 Don't walk windows and cons up the windows-of-buffers list twice,
 needlessly, we only need one window and #'get-buffer-window does
 the same thing without consing.
 * gutter-items.el (select-buffers-tab-buffers-by-mode):
 Use the regexp engine a little less in this function.
 * gutter-items.el (format-buffers-tab-line):
 Don't use the regexp engine in this function. Don't repeatedly
 call #'buffer-name, save its result.
 * gutter-items.el (build-buffers-tab-internal): Move this to being
 a label within #'buffers-tab-items.
 * gutter-items.el (buffers-tab-items):
 Be more idiomatic in checking buffers-tab-filter-function, no need
 to traverse the list twice.
 Improve the algorithmic complexity of the code to implement the
 buffers-tab-max-size functionality.
 * menubar.el (check-menu-syntax):
 * menubar.el (menu-item-strip-accelerator-spec):
 Don't use the regexp engine in this function, we're called a good
 deal in long menus and it's easy to implement it with functions
 that have bytecodes.
 * menubar.el (menu-item-generate-accelerator-spec):
 Make this function's implementation faster in the common case
 where OMIT-CHARS-LIST is nil.
2016年08月19日 Aidan Kehoe <kehoea@parhasard.net>
 * mwheel.el:
 Sync functionality (though surprisingly little code) from
 GNU. Thank you GNU.
 Remove some unneeded compatibility code.
 
 * mwheel.el (mwheel-scroll-amount): Removed.
 * mwheel.el (mouse-wheel-scroll-amount): New.
 Use GNU's newer, more sensible name for this variable.
 
 * mwheel.el (mouse-wheel-click-event): New.
 Event to ignore for a brief period after using the mouse wheel.
 * mwheel.el (mouse-wheel-inhibit-click-time): New.
 Numbeer of seconds to inhibit `mouse-wheel-click-event' after
 using the mouse wheel.
 * mwheel.el (mouse-wheel-progressive-speed): New.
 Should the mouse wheel scroll more quickly if it is moved more
 energetically?
 
 * mwheel.el (mwheel-follow-mouse): Removed.
 * mwheel.el (mouse-wheel-follow-mouse): New.
 Rename the former to the latter.
 * mwheel.el (mouse-wheel-scroll-up-function): New variable, the
 command to call when scrolling up using the wheel, defaulting to
 #'scroll-up-command.
 * mwheel.el (mouse-wheel-scroll-down-function): New variable,
 defaulting to #'scroll-down-command.
 * mwheel.el (mwheel-install):
 Support
 * mwheel.el (mwheel-scroll): 
 * mwheel.el (mouse-wheel-scroll): Rename `mwheel-scroll' to
 `mouse-wheel-scroll', something GNU (oddly) haven't, but something
 that is clearer and more sensible.
 * mwheel.el (mouse-wheel-scroll, mwheel-install):
 Add autoload forms for these, since the auto-autoload code doesn't
 understand how to parse symbol-macrolet.
 * obsolete.el:
 * obsolete.el ('mwheel-scroll): Make this available as an obsolete
 alias for #'mouse-wheel-scroll.
 * obsolete.el ('mwheel-scroll-amount): New.
 Make this available as an obsolete variable alias for
 mouse-wheel-scroll-amount.
 * obsolete.el ('mwheel-follow-mouse): New.
 Make this available as an obsolete variable alias for
 mouse-wheel-follow-mouse.
 * behavior-defs.el:
 * behavior-defs.el (mwheel): Move the mwheel behavior here from
 mwheel.el, so users can disable it from their init file.
 * keydefs.el:
 Be a little clearer in the implementation of this, bind the mouse
 wheel events to #'mouse-wheel-scroll, which is autoloaded.
 Incorporates the following GNU changes:
 2002年12月02日 Andreas Schwab <schwab@suse.de>
 * mwheel.el (mouse-wheel-scroll-amount): Fix customize type.
 2002年11月29日 Markus Rost <rost@math.ohio-state.edu>
 * mwheel.el (mouse-wheel-inhibit-click-time): Fix custom type.
 2002年11月29日 Kim F. Storm <storm@cua.dk>
 * mwheel.el: Avoid accidental yanking of text while scrolling with
 the mouse wheel. This adds a short period after each mouse wheel
 scroll event where a click on the mouse wheel button is ignored.
 (mouse-wheel-click-event, mouse-wheel-inhibit-click-time): New customs.
 (mouse-wheel-click-button, mwheel-inhibit-click-event-timer): New vars.
 (mwheel-inhibit-click-timeout, mwheel-filter-click-events): New defuns.
 (mwheel-scroll): Add mwheel-filter-click-events as pre-command-hook.
 Start mwheel-inhibit-click-event-timer with timeout handler
 mwheel-inhibit-click-timeout.
 2002年11月11日 Markus Rost <rost@math.ohio-state.edu>
 * mwheel.el (mouse-wheel-down-button, mouse-wheel-up-button):
 Declare with defvar, not with defcustom.
 2002年08月29日 John Paul Wallington <jpw@shootybangbang.com>
 * mwheel.el (mouse-wheel-up-button): Doc fix.
 2002年06月27日 Stefan Monnier <monnier@cs.yale.edu>
 * mwheel.el (mouse-wheel-change-button): Deactivate before changing.
 (mouse-wheel-up-button, mouse-wheel-down-button): Obsolete.
 (mouse-wheel-up-event, mouse-wheel-down-event): New vars.
 (mouse-wheel-follow-mouse): Change default to t.
 (mwheel-event-button): Return the basic event symbol.
 (mwheel-scroll): Work with non-mouse events.
 (mouse-wheel-mode): Use the new vars.
 (mwheel-install): Obey `uninstall'.
 2002年06月24日 Stefan Monnier <monnier@cs.yale.edu>
 * mwheel.el (mouse-wheel-scroll-amount, mwheel-scroll)
 (mouse-wheel-mode): Don't require the first element to be modifier-free.
 2002年02月19日 Sam Steingold <sds@gnu.org>
 * mwheel.el (mouse-wheel-scroll-amount): Can specify different
 scroll amounts for different modifiers now.
 (mwheel-scroll): Handle the new `mouse-wheel-scroll-amount'
 format properly.
 (mouse-wheel-mode): Ditto.
 2001年11月19日 Stefan Monnier <monnier@cs.yale.edu>
 * mwheel.el (mouse-wheel-scroll-amount): Allow float values.
 (mouse-wheel-progressive-speed): New var.
 (mwheel-scroll): Use it and handle float values.
 2004年11月11日 Stefan Monnier <monnier@iro.umontreal.ca>
 * mwheel.el (mouse-wheel-scroll-amount): Allow float values.
 (mouse-wheel-progressive-speed): New var.
 (mwheel-scroll): Use it and handle float values.
 2006年02月14日 Juanma Barranquero <lekktu@gmail.com>
 * help.el (where-is): Fix message for remapped commands.
 * mwheel.el (mouse-wheel-click-event, mouse-wheel-mode):
 Fix typos in docstrings.
 2006年02月11日 Martin Rudalics <rudalics@gmx.at>
 * mwheel.el (mouse-wheel-up-event): Doc fix.
 2008年06月12日 Glenn Morris <rgm@gnu.org>
 * mwheel.el (mouse-wheel-follow-mouse, mwheel-event-window):
 Evaluate definitions when compiling. Reverse tests.
 2009年11月25日 Juri Linkov <juri@jurta.org>
 Mouse-wheel scrolling for DocView Continuous mode. (Bug#4896)
 * mwheel.el (mwheel-scroll-up-function)
 (mwheel-scroll-down-function): New defvars.
 (mwheel-scroll): Funcall `mwheel-scroll-up-function' instead of
 `scroll-up', and `mwheel-scroll-down-function' instead of
 `scroll-down'.
 2000年11月06日 Miles Bader <miles@lsi.nec.co.jp>
 * mwheel.el (mouse-wheel-scroll-amount): Rename from
 `mwheel-scroll-amount'.
 (mouse-wheel-follow-mouse): Rename from `mwheel-follow-mouse'.
 (mouse-wheel-mode): Use (featurep 'xemacs) instead of
 string-matching against the version string.
 
2016年07月30日 Aidan Kehoe <kehoea@parhasard.net>
 * menubar-items.el (build-buffers-menu-internal): Move to being a
 label within #'buffers-menu-filter.
 * menubar-items.el (buffers-menu-filter):
 Implement #'build-buffers-menu-filter as an inlined label. Remove
 a compatibility hack in its implementation.
 Use backquotes to construct the individual menu items, making
 things a little clearer.
 Avoid uselessly calling #'length a few times, where #'nthcdr is
 appropriate to determine if a list's length is larger than a given
 value.
 Avoid uselessly calling #'nreverse twice if dealing with groups.
 * menubar-items.el (coding-system-menu-filter):
 Correct a docstring in passing.
 * menubar-items.el (buffers-menu-format-buffer-line-function):
 Update the documentation of this function to document that we've
 removed a compatibility hack.
2016年08月17日 Aidan Kehoe <kehoea@parhasard.net>
 * gnuserv.el (gnuserv-string): Removed.
 * gnuserv.el (gnuserv-request-stream): New.
 Replace gnuserv-string with gnuserv-request-stream, now we have
 native support for string output streams.
 * gnuserv.el (gnuserv-process-filter):
 Avoid using the regexp engine in this function. Avoid using the
 Lisp reader, use #'parse-integer, it's cheaper when parsing
 integers.
 * gnuserv.el (gnuserv-start-1):
 Use #'clear-output here.
 * subr.el (with-output-to-string):
 Implement this using #'make-string-output-stream.
2016年07月06日 Aidan Kehoe <kehoea@parhasard.net>
 * cl-extra.el (terpri): Move this here from print.c.
 * cl-macs.el: Document why there's no benefit to a compiler macro
 for #'terpri.
 * make-docfile.el:
 * make-docfile.el (message):
 * make-docfile.el (docfile-out-of-date):
 Don't use #'terpri at build time, it's no longer available,
 (write-char ?\n) instead.
2016年06月30日 Aidan Kehoe <kehoea@parhasard.net>
 * cl-extra.el (concatenate): Implement #'concatenate in
 sequence.c, implement #'concat, #'vconcat, #'bvconcat in terms of
 it rather than the other way around.
 * find-paths.el (paths-no-lisp-directory-regexp):
 * find-paths.el (paths-construct-path):
 * find-paths.el (paths-construct-emacs-directory):
 * find-paths.el (construct-emacs-version-name):
 * find-paths.el (paths-directories-which-exist):
 * loadup.el (really-early-error-handler):
 * make-docfile.el (process-args):
 * packages.el (packages-add-suffix):
 * packages.el (packages-list-autoloads-path):
 * update-elc.el (preloaded-file-list):
 * update-elc.el (do-autoload-commands):
 Use #'concatenate rather than #'concat in these files run at build
 time, where #'concat's new implementation from subr.el is not
 available.
 * subr.el:
 * subr.el (concat): Moved here from fns.c.
 * subr.el (vconcat): Moved here from fns.c.
 * subr.el (bvconcat): Moved here from fns.c.
 Implement all three in terms of #'concatenate. Maintain the
 #'concat bytecode for the moment.
2016年01月04日 Stephen J. Turnbull <stephen@xemacs.org>
 * cl-seq.el (delete-if): Fix typo in docstring.
2015年09月26日 Michael Sperber <mike@xemacs.org>
 * info.el (Info-read-subfile): Follow change in Makeinfo 5.0 with
 arithmetic of node positions.
2015年06月22日 Stephen J. Turnbull <stephen@xemacs.org>
 * itimer-autosave.el (auto-save-timeout): Customize in group 'auto-save.
2015年06月11日 Aidan Kehoe <kehoea@parhasard.net>
 * cl-macs.el (equalp):
 Fix a bug in this compiler macro when passed constants in a
 certain order.
2015年06月03日 Aidan Kehoe <kehoea@parhasard.net>
 * code-files.el (load):
 Revise this to respect load-ignore-out-of-date-elc-files, rather
 than leaving that to #'load-internal. Avoids a corner case where
 the source and the compiled file have different, incompatible
 encodings.
 Move the call to #'substitute-in-file-name here.
 No longer check for a zero-length filename, since #'load-internal
 no longer chokes on same and errors correctly.
2015年05月15日 Aidan Kehoe <kehoea@parhasard.net>
 * simple.el:
 * simple.el (line-number): Moved to buffer.c; we have an existing
 line number cache in C, it's a shame not to have it available.
2015年05月29日 Aidan Kehoe <kehoea@parhasard.net>
 * byte-optimize.el (side-effect-free-fns):
 Add #'integer-length, #'logcount here.
 * cl-extra.el:
 * cl-extra.el (integer-length):
 Update this to avoid allocating memory.
 * cl-extra.el (logcount): New. Return the number of one bits in
 INTEGER, if non-negative. Function from Common Lisp.
2015年04月11日 Aidan Kehoe <kehoea@parhasard.net>
 * mule/mule-cmds.el (set-locale-for-language-environment):
 Bind `position' as a local variable here, as was the original
 intention.
2015年04月11日 Aidan Kehoe <kehoea@parhasard.net>
 * cl-macs.el:
 * cl-macs.el (check-type):
 Correct the sense of the type test here when PLACE is not
 setf'able, something which gave confusing errors with literal
 fixnums or, e.g., (+ 30 40).
2015年04月04日 Aidan Kehoe <kehoea@parhasard.net>
 * gutter-items.el (append-progress-feedback):
 * gutter-items.el (abort-progress-feedback):
 Correct comments in both these functions, it's the progress stack
 being adjusted, not the message stack.
 * simple.el (message-stack):
 Describe my recent change in the structure of this.
 * simple.el (current-message):
 Adjust the implementation of this to always return the string
 displayed.
2015年04月03日 Aidan Kehoe <kehoea@parhasard.net>
 * gnuserv.el (gnuserv-edit-files):
 No need to memorise the device created for the sake of C-x #, if
 the client is not waiting for us.
 Fixes a bug in the following situation:
 -- Start gnuserv from an XEmacs within screen
 -- Call gnuclient with an X11 display available, connecting
 successfully to that XEmacs and creating an X11 frame
 -- Then call gnuclient file-name.txt, save the file, then type C-x
 #; this deletes all the frames on the device, which it shouldn't.
2015年04月01日 Aidan Kehoe <kehoea@parhasard.net>
 When calling #'string-match with a REGEXP without regular
 expression special characters, call #'search, #'mismatch, #'find,
 etc. instead, making our code less likely to side-effect other
 functions' match data and a little faster.
 * apropos.el (apropos-command):
 * apropos.el (apropos):
 Call (position ?\n ...) rather than (string-match "\n" ...) here.
 * buff-menu.el:
 * buff-menu.el (buffers-menu-omit-invisible-buffers):
 Don't fire up the regexp engine just to check if a string starts
 with a space.
 * buff-menu.el (select-buffers-tab-buffers-by-mode):
 Don't fire up the regexp engine just to compare mode basenames.
 * buff-menu.el (format-buffers-tab-line):
 * buff-menu.el (build-buffers-tab-internal): Moved to being a
 label within the following.
 * buff-menu.el (buffers-tab-items): Use the label.
 * bytecomp.el (byte-compile-log-1):
 Don't fire up the regexp engine just to look for a newline.
 * cus-edit.el (get):
 Ditto.
 * cus-edit.el (custom-variable-value-create):
 Ditto, but for a colon.
 * descr-text.el (describe-text-sexp):
 Ditto.
 * descr-text.el (describe-char-unicode-data):
 Use #'split-string-by-char given that we're just looking for a
 semicolon.
 * descr-text.el (describe-char):
 Don't fire up the regexp engine just to look for a newline.
 * disass.el (disassemble-internal):
 Ditto.
 * files.el (file-name-sans-extension):
 Implement this using #'position.
 * files.el (file-name-extension):
 Correct this function's docstring, implement it in terms of
 #'position.
 * files.el (insert-directory):
 Don't fire up the regexp engine to split a string by space; don't
 reverse the list of switches, this is actually a longstand bug as
 far as I can see.
 * gnuserv.el (gnuserv-process-filter):
 Use #'position here, instead of consing inside #'split-string
 needlessly.
 * gtk-file-dialog.el (gtk-file-dialog-update-dropdown):
 Use #'split-string-by-char here, don't fire up #'split-string for
 directory-sep-char. 
 * gtk-font-menu.el (hack-font-truename):
 Implement this more cheaply in terms of #'find,
 #'split-string-by-char, #'equal, rather than #'string-match,
 #'split-string, #'string-equal.
 * hyper-apropos.el (hyper-apropos-grok-functions):
 * hyper-apropos.el (hyper-apropos-grok-variables):
 Look for a newline using #'position rather than #'string-match in
 these functions.
 * info.el (Info-insert-dir):
 * info.el (Info-insert-file-contents):
 * info.el (Info-follow-reference):
 * info.el (Info-extract-menu-node-name):
 * info.el (Info-menu):
 Look for fixed strings using #'position or #'search as appropriate
 in this file.
 * ldap.el (ldap-decode-string):
 * ldap.el (ldap-encode-string):
 #'encode-coding-string, #'decode-coding-string are always
 available, don't check if they're fboundp.
 * ldap.el (ldap-decode-address):
 * ldap.el (ldap-encode-address):
 Use #'split-string-by-char in these functions.
 * lisp-mnt.el (lm-creation-date):
 * lisp-mnt.el (lm-last-modified-date):
 Don't fire up the regexp engine just to look for spaces in this file.
 * menubar-items.el (default-menubar):
 Use (not (mismatch ...)) rather than #'string-match here, for
 simple regexp.
 Use (search "beta" ...) rather than (string-match "beta" ...)
 * menubar-items.el (sort-buffers-menu-alphabetically):
 * menubar-items.el (sort-buffers-menu-by-mode-then-alphabetically):
 * menubar-items.el (group-buffers-menu-by-mode-then-alphabetically):
 Don't fire up the regexp engine to check if a string starts with
 a space or an asterisk.
 Use the more fine-grained results of #'compare-strings; compare
 case-insensitively for the buffer menu.
 * menubar-items.el (list-all-buffers):
 * menubar-items.el (tutorials-menu-filter):
 Use #'equal rather than #'string-equal, which, in this context,
 has the drawback of not having a bytecode, and no redeeming
 features.
 * minibuf.el:
 * minibuf.el (un-substitute-in-file-name):
 Use #'count, rather than counting the occurences of $ using the
 regexp engine.
 * minibuf.el (read-file-name-internal-1):
 Don't fire up the regexp engine to search for ?=.
 * mouse.el (mouse-eval-sexp):
 Check for newline with #'find.
 * msw-font-menu.el (mswindows-reset-device-font-menus):
 Split a string by newline with #'split-string-by-char.
 * mule/japanese.el:
 * mule/japanese.el ("Japanese"):
 Use #'search rather than #'string-match; canoncase before
 comparing; fix a bug I had introduced where I had been making case
 insensitive comparisons where the case mattered.
 * mule/korea-util.el (default-korean-keyboard):
 Look for ?3 using #'find, not #'string-march.
 * mule/korea-util.el (quail-hangul-switch-hanja):
 Search for a fixed string using #'search.
 * mule/mule-cmds.el (set-locale-for-language-environment):
 #'position, #'substitute rather than #'string-match,
 #'replace-in-string.
 * newcomment.el (comment-make-extra-lines):
 Use #'search rather than #'string-match for a simple string.
 * package-get.el (package-get-remote-filename):
 Use #'position when looking for ?@
 * process.el (setenv):
 * process.el (read-envvar-name):
 Use #'position when looking for ?=.
 * replace.el (map-query-replace-regexp):
 Use #'split-string-by-char instead of using an inline
 implementation of it.
 * select.el (select-convert-from-cf-text):
 * select.el (select-convert-from-cf-unicodetext):
 Use #'position rather than #'string-match in these functions.
 * setup-paths.el (paths-emacs-data-root-p):
 Use #'search when looking for simple string.
 * sound.el (load-sound-file):
 Use #'split-string-by-char rather than an inline reimplementation
 of same.
 * startup.el (splash-screen-window-body):
 * startup.el (splash-screen-tty-body):
 Search for simple strings using #'search.
 * version.el (emacs-version):
 Ditto.
 * x-font-menu.el (hack-font-truename):
 Implement this more cheaply in terms of #'find,
 #'split-string-by-char, #'equal, rather than #'string-match,
 #'split-string, #'string-equal.
 * x-font-menu.el (x-reset-device-font-menus-core):
 Use #'split-string-by-char here.
 * x-init.el (x-initialize-keyboard):
 Search for a simple string using #'search.
2015年03月16日 Aidan Kehoe <kehoea@parhasard.net>
 * tty-init.el (make-frame-after-init-entry-point):
 Some parentheses were placed badly here with the last change,
 thank you Mats for pointing it out; in passing, change to a
 version of the code that doesn't create a string for garbage, not
 that it matters.
2015年03月16日 Aidan Kehoe <kehoea@parhasard.net>
 * obsolete.el (max-char):
 Make this available for compatiblity with GNU, implement it in
 terms of char-code-limit.
2015年03月15日 Aidan Kehoe <kehoea@parhasard.net>
 * tty-init.el (make-frame-after-init-entry-point):
 Behave better when TERM was not set; use
 #'console-tty-terminal-type instead of (getenv "TERM") so we get
 the value that reflects the current console. Thank you Uwe Brauer!
 * mule/mule-tty-init.el (mule-tty-win-initted): Removed.
 * mule/mule-tty-init.el (init-mule-tty-win): Removed.
 * mule/mule-tty-init.el: Remove this file in its entirety.
 * mule/mule-x-init.el (x-use-halfwidth-roman-font): Removed.
 * mule/mule-x-init.el: Remove this file in its entirety.
 * dumped-lisp.el (preloaded-file-list): Remove them from the
 dumped file list. The functions within haven't been used since
 they were imported from Mule in 1999, and the functionality of
 init-mule-tty-win was already in tty-init.el. If someone wants to
 automatically use a halfwidth roman font, they can go hunting for
 the code, but there are no users on http://searchco.de/ as of
 20150315. Leaving them around is confusing and distracting.
2015年03月14日 Aidan Kehoe <kehoea@parhasard.net>
 * simple.el (quoted-insert):
 Update the docstring here, syncing GNU's, especially mentioning
 read-quoted-char-radix.
 * cmdloop.el:
 * cmdloop.el (read-quoted-char-radix): Move this up here, outside
 the functions.
 * cmdloop.el (read-function-key-map): New label, reading and
 replacing characters from function-key-map if appropriate.
 * cmdloop.el (read-quoted-char): Multiple changes:
 -- Take advantage of help-event-list, but be careful not to have
 any keystrokes with character equivalents in it, so the user can
 type C-q C-h and have the expected result.
 -- Use function-key-map, as does #'read-char and
 #'read-exclusive-char, helpful for character composition under
 X11.
 -- Pop up the help window ourselves if, e.g. F1 arrives on a TTY
 via function-key-map, event-stream won't have done it.
 -- Error if no keystroke that can be converted into a character is
 specified, don't just insert ?\x00 as we used to and as does GNU
 -- Use #'digit-char-p instead of reimplementing it.
 -- Fix a bug of mine where I wasn't consistent about treating
 character codes as Unicode.
2015年03月14日 Aidan Kehoe <kehoea@parhasard.net>
 * cmdloop.el (no-character-typed):
 New error, for those cases when a keystroke is to be treated as a
 character but has no character equivalent.
 * cmdloop.el (read-char-1): Use it.
 * keymap.el (synthesize-keysym): Use it.
2015年03月14日 Aidan Kehoe <kehoea@parhasard.net>
 * cus-start.el (all): Describe help-event-list for Custom.
 * keydefs.el (help-event-list): Initialise it.
2015年03月12日 Aidan Kehoe <kehoea@parhasard.net>
 * simple.el (append-message): Be more careful about saving a
 non-nil value for START in message-stack.
2015年03月11日 Aidan Kehoe <kehoea@parhasard.net>
 * isearch-mode.el:
 * isearch-mode.el (isearch-fix-case):
 Use the new #'no-case-regexp-p function if treating ISEARCH-STRING
 as a regular expression; otherwise, use the [[:upper:]] character
 class.
 * isearch-mode.el (isearch-no-upper-case-p): Removed. 
 * isearch-mode.el (with-caps-disable-folding): Removed.
 These two haven't been used since 1998.
 * occur.el (occur-1):
 Use #'no-case-regexp-p here.
 * replace.el (perform-replace):
 Don't use #'no-upper-case-p, use #'no-case-regexp-p or
 (string-match "[[:upper:]]" ...) as appropriate.
 * simple.el:
 * simple.el (no-upper-case-p): Removed. This did two different
 things, and its secondary function (examining regular expressions)
 just became much more complicated; move the regular expression
 functionality to its own function, use character classes when
 examining non-regular-expressions instead.
 The code to look for character classes, and the design decision
 that this should be done, are from GNU, thank you Stefan Monnier.
 * simple.el (no-case-regexp-p): New.
 Given a REGEXP, return non-nil if it has nothing to suggest an
 interactive user wants a case-sensitive search.
 * simple.el (with-search-caps-disable-folding):
 * simple.el (with-interactive-search-caps-disable-folding):
 Update both these macros to use #'no-case-regexp-p.
2015年03月11日 Aidan Kehoe <kehoea@parhasard.net>
 Correct #'clear-message and friends so the START and END supplied
 to #'append-message are reflected when restoring messages from the
 message stack.
 * simple.el (remove-message-hook):
 Update this to reflect the START and END keyword arguments.
 * simple.el (log-message):
 Update this to take START and END keyword arguments.
 * simple.el (clear-message):
 Update this to reflect a changed `message-stack' alist structure.
 * simple.el (remove-message):
 Update this to reflect a changed `message-stack' alist structure;
 don't do `with-trapping-errors' and resignal use
 #'call-with-condition-handler directly instead, for better
 backtraces and easier debugging.
 * simple.el (append-message):
 Update this to reflect a changed message-stack structure.
2015年03月08日 Aidan Kehoe <kehoea@parhasard.net>
 
 * mule/digit.el: New file, specifying integer weights for those
 decimal digits specified by Unicode, and for the Latin characters
 in ASCII.
 * dumped-lisp.el (preloaded-file-list):
 Dump this file, so those weights are available at runtime.
 
2015年02月25日 Aidan Kehoe <kehoea@parhasard.net>
 * cl-extra.el (digit-char-p): Moved to data.c.
 * cl-extra.el (digit-char): Moved to data.c.
 
2014年12月31日 Michael Sperber <mike@xemacs.org>
 * simple.el (line-move): Add `noerror' optional argument, as in
 GNU Emacs.
2014年11月10日 Michael Sperber <mike@xemacs.org>
 * custom.el (custom-add-package-version): The car of a
 :package-version is a symbol, not a string.
2014年10月11日 Stephen J. Turnbull <stephen@xemacs.org>
 * mule/korea-util.el (korean-key-bindings): 
 * mule/ethio-util.el (setup-ethiopic-environment-internal):
 Change invalid GNU-style key definitions to XEmacs format.
2014年10月07日 Jerry James <james@xemacs.org>
 * code-process.el (network-stream-get-response):
 (network-stream-command):
 (network-stream-open-plain):
 (network-stream-open-tls):
 (network-stream-certificate):
 (network-stream-open-starttls):
 (network-stream-open-shell): New functions.
 (open-network-stream): Accept Emacs-compatible arguments.
2014年09月27日 Michael Sperber <mike@xemacs.org>
 * custom.el (defcustom): 
 (custom-handle-keyword): Handle :package-version without bailing out.
2014年09月25日 Jerry James <james@xemacs.org>
 * bytecomp.el (byte-compile-insert-header): do not insert
 timestamps in .elc comments to get reproducible builds.
2014年08月05日 Aidan Kehoe <kehoea@parhasard.net>
 * keymap.el:
 * keymap.el (event-apply-modifiers):
 When a character keysym has case information, apply the shift
 modifier to it by upcasing it.
 * keymap.el (synthesize-keysym):
 Document this a little.
 * keymap.el (synthesize-unicode-codepoint): New.
 Like #'synthesize-keysym, but synthesizing a Unicode codepoint.
 * keymap.el (function-key-map-parent): Bind control shift u to
 synthesize a Unicode character input, as does GTK+ and as
 specified by ISO 14755. 
2014年08月06日 Aidan Kehoe <kehoea@parhasard.net>
 * fontconfig.el (fc-name-parse-harder):
 Improve style here, don't re-implement #'split-string-by-char with
 its ESCAPE-CHAR argument, look for a string prefix in a list of
 candidates in a more CL-idiomatic way, use the language's features
 for boolean or.
2014年07月14日 Aidan Kehoe <kehoea@parhasard.net>
 * simple.el (raw-append-message):
 Use #'write-sequence in this, take its START and END keyword
 arguments, so our callers don't have to cons as much.
 * simple.el (append-message):
 Pass through START and END here.
2014年07月02日 Aidan Kehoe <kehoea@parhasard.net>
 * byte-optimize.el (side-effect-free-fns):
 #'keymapp is not side-effect-free, it can autoload.
2014年07月02日 Aidan Kehoe <kehoea@parhasard.net>
 * cmdloop.el:
 * cmdloop.el (read-char-1): New.
 * cmdloop.el (read-char, read-char-exclusive):
 Use #'read-char-1 in these function; sync their API with that of
 GNU, respect `function-key-map' where we didn't before, add
 initial support for Quail input methods.
 * keymap.el (next-key-event):
 Accept EVENT and PROMPT arguments, as does #'next-command-event.
 * keymap.el (event-apply-modifiers):
 Use #'functionp here, no need to exclude lambdas from
 `function-key-map'.
 * keymap.el (synthesize-keysym):
 Correct this function's docstring.
2014年04月19日 Mats Lidell <matsl@xemacs.org>
 * help.el: Sync from GNU - Link to customize if applicable and
 display version info. Other changes: Remove use of button-2.
 return and button-1 use activate-function. Move between
 activate-function-extents with tab.
2014年01月27日 Michael Sperber <mike@xemacs.org>
 * font-lock.el (font-lock-regexp-grouping-backslash,
 font-lock-regexp-grouping-construct): Add these, as in GNU Emacs.
2014年01月27日 Michael Sperber <mike@xemacs.org>
 * lisp.el (check-parens): Add, from GNU Emacs.
 
2014年01月27日 Michael Sperber <mike@xemacs.org>
 * custom.el (custom-declare-variable, defcustom): Add :risky and
 :safe options
2013年12月30日 Byrel Mitchell <byrel.mitchell@gmail.com>
 * menubar.el (add-menu-item-1, delete-menu-item): Do not assume
 every top-level menu is on current-menubar.
2013年12月22日 Aidan Kehoe <kehoea@parhasard.net>
 * cl-macs.el:
 * cl-macs.el (princ): New compiler macro.
 Transform #'princ to #'write-sequence if we can determine at
 compile time that it is being passed a string. Initialising the
 printer is expensive enough, but much of our code took this
 approach because #'write-sequence wasn't available.
2013年12月17日 Aidan Kehoe <kehoea@parhasard.net>
 * simple.el (blink-matching-open):
 When showing the opening parenthesis in the minibiffer, use the
 isearch face for it, in case there are multiple parentheses in the
 text shown.
 When writing moderately involved macros, it's often not enough
 just to show the backquote context before the parenthesis
 (e.g. @,.`). Skip over that when searching for useful context in
 the same way we skip over space and tab.
 * simple.el (message):
 * simple.el (lmessage):
 If there are no ARGS, don't call #'format. This allows extent
 information to be passed through to the minibuffer.
 It's probably better still to update #'format to preserve extent
 info.
2013年12月17日 Aidan Kehoe <kehoea@parhasard.net>
 * cl-extra.el:
 * cl-extra.el (write-string): New.
 * cl-extra.el (write-line): New.
 Add these here, implemented in terms of #'write-sequence in print.c.
2013年09月15日 Mats Lidell <matsl@cxemacs.org>
 * files.el (mode-require-final-newline): Variable synced from
 GNU. Thank you GNU. Allows modes to control final newlines.
 (require-final-newline): Add action on visiting and visiting or
 saving in sync with GNU.
 * text-mode.el (text-mode): Use mode-require-final-newline.
2013年09月10日 Stephen J. Turnbull <stephen@xemacs.org>
 * fontconfig.el (fc-name-parse-known-problem-attributes): New.
 (fc-name-parse-harder): New.
 * font.el (xft-font-create-object): Use fc-name-parse-harder.
2013年08月21日 Aidan Kehoe <kehoea@parhasard.net>
 * startup.el (normal-top-level):
 Use #'call-with-condition-handler here when calling
 #'command-line, giving better backtraces on error.
 Be careful about the current buffer in HANDLER.
2013年08月21日 Aidan Kehoe <kehoea@parhasard.net>
 * bytecomp.el:
 * bytecomp.el (gensym):
 * bytecomp.el (byte-compile-gensym): New.
 Warn that gensym called in a for-effect context is unlikely to be
 useful.
 Warn about non-string non-integer ARGs, this is incorrect.
 Am not changing the function to error with same, most code that
 makes the mistake has no problems, which is why it has survived
 so long.
 * window-xemacs.el (save-window-excursion/mapping):
 * window.el (save-window-excursion):
 Call #'gensym with a string, not a symbol.
2013年08月05日 Aidan Kehoe <kehoea@parhasard.net>
 * isearch-mode.el (isearch-pre-command-hook):
 If this function is called and (this-command-keys) contains
 misc-user events, #'key-binding throws an error.
 Eddie Corns and Alex Belits describe this happening in tracker
 issue 336, and we can avoid this by catching the error and
 handling the misc-user event in the same way that #'dispatch-event
 does.
 I haven't reproduced the actual error they describe, and welcome
 testing to make sure it's gone.
 Thank you Eddie, thank you Alex!
2013年08月05日 Aidan Kehoe <kehoea@parhasard.net>
 * behavior.el:
 (override-behavior):
 Correct some spelling and formatting here, thank you Steven
 Mitchell in tracker issue 826.
2013年08月05日 Aidan Kehoe <kehoea@parhasard.net>
 * mule/latin.el:
 Add a Latin-script Azeri language environment, with UTF-8 as the
 encoding and case information for schwa.

ChangeLog Entries from lwlib/ChangeLog

goto announcement, summary, changes

2023年05月13日 Aidan Kehoe <kehoea@parhasard.net>
 * XEmacs 21.5.35 "kohlrabi" is released.
2022年07月02日 Jaakko Salomaa <jaakko.salomaa@iki.fi>
 * lwlib-fonts.h:
 Add <X11/X.h> before the include of <X11/Xft/Xft.h> for old versions of
 Xft where including the plain Xft.h doesn't include for the X defines.
2022年03月14日 Aidan Kehoe <kehoea@parhasard.net>
 * xlwgauge.c (GaugeExpose):
 * xlwgauge.c (GaugeQueryGeometry):
 Use our REGISTER #define, avoid warnings with g++ 11.
2021年10月27日 Aidan Kehoe <kehoea@parhasard.net>
 * lwlib-Xaw.c: Don't check for STDC_HEADERS, unconditionally
 #include <stdlib.h>
2017年11月23日 Stephen J. Turnbull <stephen@xemacs.org>
 * lwlib-colors.c (xft_convert_color): Remove unused variable.
2017年11月12日 Aidan Kehoe <kehoea@parhasard.net>
 * lwlib-internal.h:
 Make min(), max() available as macros to lwlib as well as to the
 core code. Thank you Mats Lidell and the buildbot.
2016年12月30日 Aidan Kehoe <kehoea@parhasard.net>
 * lwlib-Xlw.c (xlw_update_one_widget):
 Remove a set-but-not used variable here.
2015年06月22日 Michael Sperber <mike@xemacs.org>
 * lwlib-colors.h: 
 * lwlib-colors.c (xft_convert_color_1): Introduce, and make
 `xft_convert_color' use it.
2015年01月07日 Jerry James <james@xemacs.org>
 
 * lwlib-Xaw.c (xaw_scrollbar_scroll): Add typecast to fix g++ build,
 problem reported by Marcus Harnisch.
2015年01月08日 Stephen J. Turnbull <stephen@xemacs.org>
 Fix progress bar crashes.
 Thanks to Ralf Soergel for diagnosis and a patch.
 * xt-wrappers.h (HAVE_ATHENA_I18N):
 Define XAW_INTERNATIONALIZATION when needed.

ChangeLog Entries from man/ChangeLog

goto announcement, summary, changes

2023年05月13日 Aidan Kehoe <kehoea@parhasard.net>
 * XEmacs 21.5.35 "kohlrabi" is released.
2022年12月24日 Aidan Kehoe <kehoea@parhasard.net>
 * lispref/eval.texi (Special Operators):
 * lispref/eval.texi (Autoloading):
 * lispref/files.texi (File Name Completion):
 * lispref/intro.texi (A Sample Variable Description):
 * lispref/objects.texi (Primitive Function Type):
 * lispref/os.texi (Terminal-Specific):
 * lispref/searching.texi (Syntax of Regexps):
 * lispref/strings.texi (String Basics):
 * lispref/tooltalk.texi (Elisp Interface for Sending Messages):
 * lispref/tooltalk.texi (Elisp Interface for Receiving Messages):
 * new-users-guide/xmenu.texi (Options Menu):
 * termcap.texi (Preparation):
 * termcap.texi (Find):
 * termcap.texi (Interrogate):
 * termcap.texi (Initialize):
 * termcap.texi (Output Padding):
 * termcap.texi (Encode Parameters):
 * termcap.texi (tparam):
 * termcap.texi (tgoto):
 * termcap.texi (Capability Format):
 * termcap.texi (Naming):
 * termcap.texi (Scrolling):
 * termcap.texi (Insdel Line):
 * termcap.texi (Keypad):
 * termcap.texi (Meta Key):
 * xemacs/abbrevs.texi (Defining Abbrevs):
 * xemacs/abbrevs.texi (Expanding Abbrevs):
 * xemacs/abbrevs.texi (Saving Abbrevs):
 * xemacs/abbrevs.texi (Dynamic Abbrevs):
 * xemacs/basic.texi (Moving Point):
 * xemacs/buffers.texi (Select Buffer):
 * xemacs/buffers.texi (List Buffers):
 * xemacs/buffers.texi (Misc Buffer):
 * xemacs/buffers.texi (Kill Buffer):
 * xemacs/building.texi (Compilation):
 * xemacs/building.texi (Lisp Eval):
 * xemacs/building.texi (Lisp Debug):
 * xemacs/calendar.texi (Special Diary Entries):
 * xemacs/calendar.texi (Calendar Customizing):
 * xemacs/calendar.texi (Holiday Customizing):
 * xemacs/calendar.texi (Diary Customizing):
 * xemacs/calendar.texi (Fancy Diary Display):
 * xemacs/custom.texi (Minor Modes):
 * xemacs/custom.texi (Locals):
 * xemacs/custom.texi (File Variables):
 * xemacs/custom.texi (Kbd Macro Query):
 * xemacs/custom.texi (Keymaps):
 * xemacs/custom.texi (Interactive Rebinding):
 * xemacs/custom.texi (Init Syntax):
 * xemacs/custom.texi (Terminal Init):
 * xemacs/custom.texi (Audible Bell):
 * xemacs/display.texi (Scrolling):
 * xemacs/display.texi (Selective Display):
 * xemacs/files.texi (Backup Copying):
 * xemacs/files.texi (Interlocking):
 * xemacs/files.texi (Recover):
 * xemacs/files.texi (Dired Edit):
 * xemacs/files.texi (Dired Deletion):
 * xemacs/files.texi (Dired Immed):
 * xemacs/files.texi (Misc File Ops):
 * xemacs/fixit.texi (Kill Errors):
 * xemacs/fixit.texi (Transpose):
 * xemacs/fixit.texi (Fixing Case):
 * xemacs/fixit.texi (Spelling):
 * xemacs/frame.texi (Frame):
 * xemacs/frame.texi (Mode Line):
 * xemacs/glossary.texi (Glossary):
 * xemacs/indent.texi (Indentation Commands):
 * xemacs/keystrokes.texi (Intro to Keystrokes):
 * xemacs/keystrokes.texi (Key Sequences):
 * xemacs/keystrokes.texi (Meta Key):
 * xemacs/keystrokes.texi (Super and Hyper Keys):
 * xemacs/keystrokes.texi (Commands):
 * xemacs/killing.texi (Killing):
 * xemacs/killing.texi (Appending Kills):
 * xemacs/killing.texi (Earlier Kills):
 * xemacs/menus.texi (File Menu):
 * xemacs/menus.texi (Edit Menu):
 * xemacs/menus.texi (Options Menu):
 * xemacs/misc.texi (Sorting):
 * xemacs/misc.texi (Single Shell):
 * xemacs/misc.texi (Interactive Shell):
 * xemacs/picture.texi (Basic Picture):
 * xemacs/picture.texi (Tabs in Picture):
 * xemacs/picture.texi (Rectangles in Picture):
 * xemacs/programs.texi (Lists):
 * xemacs/programs.texi (Tag Syntax):
 * xemacs/programs.texi (Tags Search):
 * xemacs/programs.texi (Fortran Abbrev):
 * xemacs/search.texi (Incremental Search):
 * xemacs/search.texi (Regexps):
 * xemacs/search.texi (Search Case):
 * xemacs/search.texi (Regexp Replace):
 * xemacs/search.texi (Query Replace):
 * xemacs/sending.texi (Sending Mail):
 * xemacs/sending.texi (Mail Headers):
 * xemacs/sending.texi (Mail Mode):
 * xemacs/text.texi (TeX Mode):
 * xemacs/text.texi (TeX Editing):
 * xemacs/text.texi (TeX Print):
 * xemacs/text.texi (Outline Motion):
 * xemacs/text.texi (Outline Visibility):
 * xemacs/text.texi (Words):
 * xemacs/text.texi (Sentences):
 * xemacs/text.texi (Paragraphs):
 * xemacs/text.texi (Fill Commands):
 * xemacs/text.texi (Fill Prefix):
 * xemacs/text.texi (Case):
 * xemacs/trouble.texi (Bugs):
 * xemacs/windows.texi (Split Window):
 * widget.texi (Setting Up the Buffer):
 * widget.texi (Utilities):
 Remove @refill from all these files at the instigation of recent
 versions of makeinfo(1), using Ben's gr script.
2022年11月27日 Aidan Kehoe <kehoea@parhasard.net>
 * internals/internals.texi (Intro to Window and Frame Geometry):
 Double @-signs in the ASCII-art diagram in this section, thank you
 Matsl.
2022年08月28日 Aidan Kehoe <kehoea@parhasard.net>
 * lispref/strings.texi (Text Comparison):
 Deprecate #'string-equal in the Lispref.
2022年08月17日 Henry S. Thompson <ht@home.hst.name>
 * internals/internals.texi: Fixes to Old Future Work to avoid
 build error and navigation problems: Add missing index entry,
 replace one @subsection with @section, re-run auto-generation of
 @node
2022年08月04日 Jaakko Salomaa <jaakko.salomaa@iki.fi>
 * xemacs/cmdargs.texi (Command Switches):
 Document the -no-configured-paths command line flag.
2022年07月11日 Aidan Kehoe <kehoea@parhasard.net>
 * internals/internals.texi (Old Future Work -- Display Tables):
 Move this section here from Future Work, now it has been
 implemented.
2022年07月09日 Aidan Kehoe <kehoea@parhasard.net>
 * lispref/strings.texi (Formatting Strings):
 Document the ?z integer length modifier.
2022年05月18日 Jaakko Salomaa <jaakko.salomaa@iki.fi>
 * internals/internals.texi (OpenSSL bignum driver):
 Documentation for the OpenSSL bignum driver.
2022年02月19日 Aidan Kehoe <kehoea@parhasard.net>
 * lispref/searching.texi (Regexp Search):
 * lispref/searching.texi (POSIX Regexps):
 Clarify that implementing versions of #'looking-at-p,
 #'string-match-p that follow POSIX rules doesn't add anything.
2021年11月03日 Aidan Kehoe <kehoea@parhasard.net>
 * internals/internals.texi (garbage_collect_1):
 * internals/internals.texi (lrecords):
 Adjust the documentation of the garbage collector slightly to
 better reflect that KKCC is the default. Still needs a bit more work.
2021年10月27日 Aidan Kehoe <kehoea@parhasard.net>
 * internals/internals.texi (Dumping Justification):
 Update the documentation of the dumping process.
2021年10月23日 Aidan Kehoe <kehoea@parhasard.net>
 * internals/internals.texi (Top):
 * internals/internals.texi (Debugging and Testing):
 * internals/internals.texi (lrecords):
 Remove documentation of details of the implementation of the
 incremental garbage collector. Document experience with it and its
 removal in October 2021.
2021年10月19日 Aidan Kehoe <kehoea@parhasard.net>
 * internals/internals.texi (Q210341 says this in addition): Removed.
 * internals/internals.texi (SUMMARY): Removed.
 * internals/internals.texi (MORE INFORMATION): Removed.
 * internals/internals.texi (wide character functions as
 implemented on Windows 95): Removed.
 * internals/internals.texi (REFERENCES): Removed.
 * internals/internals.texi (Microsoft Knowledge Base): Removed.
 * internals/internals.texi (Knowledge Base): Removed.
 * internals/internals.texi (see the following book): Removed.
 * internals/internals.texi (Background white paper): Removed.
 * internals/internals.texi (Random other Windows I18N docs):
 * internals/internals.texi (NOTE): Removed.
 * internals/internals.texi (Unicode support under Windows):
 Revise this file in detail now we have removed support for Windows
 95/98/Me systems.
2021年05月27日 Aidan Kehoe <kehoea@parhasard.net>
 * internals/internals.texi (garbage_collect_1):
 Remove documentation of special treatment of profiling info by GC,
 something no longer done.
 * internals/internals.texi (Profiling):
 Document that we now use a Lisp hash table for the profiling
 ticks, being careful to have sufficient space within it so that it
 is never resized within a signal handler.
2021年05月26日 Aidan Kehoe <kehoea@parhasard.net>
 * internals/internals.texi (Stream Pairs):
 * internals/internals.texi (Converting Events):
 Update the documentation of the unique stream identifiers to
 reflect that these are now Lisp objects.
2021年03月25日 Aidan Kehoe <kehoea@parhasard.net>
 * internals/internals.texi (Critical Redisplay Sections):
 Document that the start_end_of_last_line() code is no longer
 called if in redisplay.
2021年03月03日 Aidan Kehoe <kehoea@parhasard.net>
 * lispref/searching.texi (Simple Match Data):
 Document the new search-error-on-bad-match-data variable, which
 tells the search code to error rather than (more compatibly)
 warning when it encounters inconsistent match data.
2021年02月14日 Aidan Kehoe <kehoea@parhasard.net>
 * lispref/searching.texi (Match Data):
 Document that the underlying match data implementation is now in
 terms of extents, explain some performance and correctness
 considerations linked to this.
 * lispref/searching.texi (Simple Match Data):
 Flesh out some information on #'match-string and debugging
 info provided by XEmacs. Clarify algorithmic considerations with
 #'match-beginning, #'match-end.
 * lispref/searching.texi (Replacing Match):
 Update documentation of #'replace-match.
 * lispref/searching.texi (Entire Match Data):
 Advise preferential use of `save-match-data' in the opening of
 this node.
 Deprecate use of the INTEGERS argument to #'match-data.
 Document #'match-data-canonical.
 * lispref/searching.texi (Saving Match Data):
 Clarify that XEmacs does not treat the match data specially when
 running process filters and process sentinels and that it usually
 has no need to.
2021年02月14日 Aidan Kehoe <kehoea@parhasard.net>
 * lispref/extents.texi (Extent Endpoints):
 #'extent-start-position, #'extent-end-position now have new
 MARKERP arguments, document this, and document the insertion types
 of the returned markers.
2021年01月11日 Aidan Kehoe <kehoea@parhasard.net>
 * lispref/loading.texi (Named Features):
 Document a couple of workarounds to avoid the compile-time
 evaluation of (require ...) forms, should that be needed.
2020年11月20日 Aidan Kehoe <kehoea@parhasard.net>
 * lispref/keymaps.texi (Key Sequences): End the open @defun for
 canonicalize-keysym.
2020年11月17日 Aidan Kehoe <kehoea@parhasard.net>
 * lispref/keymaps.texi:
 * lispref/keymaps.texi (Key Sequences):
 Prefer the character rather than the symbol keysym in this
 documentation, since that is its canonical form.
2020年10月03日 Aidan Kehoe <kehoea@parhasard.net>
 * lispref/searching.texi (Syntax of Regexps):
 Document the limitations on M and N for interval qualifiers;
 clarify that the limits are #xFFFF for both, which limits were
 just added.
2020年03月28日 Aidan Kehoe <kehoea@parhasard.net>
 * lispref/searching.texi (Syntax of Regexps):
 Document the named non-shy groups, or explicitly numbered groups,
 just added.
2020年03月18日 Aidan Kehoe <kehoea@parhasard.net>
 * internals/internals.texi:
 Document the encoding of this file in its header, now texinfo
 worries about that.
 * lispref/mule.texi:
 Re-encode this file as UTF-8, now texinfo restricts the encodings
 it can use. Document this encoding in its header.
 * xemacs-faq.texi:
 Ditto. Revise the XEmacs coding cookie.
2018年10月01日 Aidan Kehoe <kehoea@parhasard.net>
 * lispref/compile.texi (Different Behavior):
 Mention the unfortunate algorithmic complexity of
 #'marker-position when cautioning about the behaviour of (+ MARKER
 0).
2018年09月02日 Aidan Kehoe <kehoea@parhasard.net>
 * cl.texi (Time of Evaluation): Use the new-style
 :compile-toplevel, :load-toplevel and :execute CL keywords in the
 documentation of the WHEN argument to #'eval-when.
2018年08月15日 Aidan Kehoe <kehoea@parhasard.net>
 * lispref/markers.texi (Information from Markers):
 Document an important algorithmic consideration with
 #'marker-position.
2017年11月23日 Aidan Kehoe <kehoea@parhasard.net>
 * internals/internals.texi (A Summary of the Various XEmacs Modules):
 * internals/internals.texi (Low-Level Modules):
 * internals/internals.texi (Modules for Allocation):
 * internals/internals.texi (Low-level allocation):
 Remove mention of malloc.c (long gone) and gmalloc.c (gone today).
2017年11月14日 Stephen J. Turnbull <stephen@xemacs.org>
 * lispref/faces.texi (Face Properties): Add items to itemize.
2017年04月19日 Aidan Kehoe <kehoea@parhasard.net>
 * lispref/buffers.texi (Buffer Names):
 Update documentation on #'generate-new-buffer-name to reflect
 changes made to it today.
2017年03月09日 Aidan Kehoe <kehoea@parhasard.net>
 * widget.texi (Introduction):
 Remove duplicated info on widget.el, wid-edit.el, as documented in
 tracker issue 847. Thank you FKtPp and Steven Mitchell!
2017年02月11日 Aidan Kehoe <kehoea@parhasard.net>
 * lispref/keymaps.texi (Key Sequences):
 Document that we now support e.g. (shift a), transforming that
 internally to (A).
 Document that (A) is still preferred given older XEmacs code.
2017年01月15日 Aidan Kehoe <kehoea@parhasard.net>
 * lispref/searching.texi (Regexp Search):
 * lispref/searching.texi (POSIX Regexps):
 Document `string-match-p', `looking-at-p'.
2016年12月30日 Aidan Kehoe <kehoea@parhasard.net>
 * cl.texi (Macro Bindings):
 Document the new shadowing of arguments to lambda lists within
 `symbol-macrolet' forms.
 Document the new SHADOW element in a `symbol-macrolet' element, to
 specify Common Lisp behaviour for expansion.
2016年10月15日 Aidan Kehoe <kehoea@parhasard.net>
 * lispref/strings.texi (Formatting Strings):
 Document %u here.
 Correct the spelling of zeroes.
 Add documentation of the new &, !, and ~ flags.
 Add documentation of the length modifiers, specifying truncation
 to a bit width, newly implemented though long accepted.
 Document the new u modifier, used to specify that integer
 converters should treat their arguments as unsigned. (It is new to
 XEmacs that the non-base-10 converters treat their arguments as
 signed).
2016年11月07日 Aidan Kehoe <kehoea@parhasard.net>
 * lispref/strings.texi (Formatting Strings):
 Be a little clearer in documentation of the STREAM argument to
 #'format-into.
2016年10月26日 Aidan Kehoe <kehoea@parhasard.net>
 * internals/internals.texi :
 * internals/internals.texi (Old Future Work -- Everything should
 obey duplicable extents):
 Move this section to Old Future Work from Future Work, now it is
 implemented.
2016年10月19日 Aidan Kehoe <kehoea@parhasard.net>
 * lispref/strings.texi (Formatting Strings):
 Document that #'format-into now accepts any stream argument as
 accepted by #'print.
2016年09月18日 Aidan Kehoe <kehoea@parhasard.net>
 * lispref/strings.texi (Formatting Strings):
 Describe #'format a little more clearly, don't mislead readers
 about the algorithm.
 Describe the newly-added #'format-into, something that makes more
 sense now the resizing-buffer time is visible from Lisp.
2016年09月05日 Aidan Kehoe <kehoea@parhasard.net>
 * lispref/strings.texi (Formatting Strings):
 Document the new support for extents in control string and in
 arguments to #'format.
2016年06月16日 Aidan Kehoe <kehoea@parhasard.net>
 * lispref/searching.texi (Syntax of Regexps):
 Clarify that backreferences can use numbers greater than ten.
2014年11月24日 Stephen J. Turnbull <stephen@xemacs.org>
 * lispref/strings.texi (String Properties):
 Note that string properties are separate from extent properties.
2015年05月08日 Aidan Kehoe <kehoea@parhasard.net>
 * lispref/numbers.texi (Numbers):
 Describe the newly-supported arbitrary-base syntax for rationals
 (integers and ratios). Describe that ratios can take the same base
 specification as integers, something also new.
2015年03月15日 Aidan Kehoe <kehoea@parhasard.net>
 * lispref/strings.texi (Character Codes):
 Document `char-code-limit' here too.
2015年03月14日 Aidan Kehoe <kehoea@parhasard.net>
 * lispref/help.texi (Help Functions):
 Document help-event-list, just added.
2015年02月23日 Mike Kupfer <mike.kupfer@xemacs.org>
 * internals/internals.texi (The Redisplay Mechanism):
 Add notes about pixel_to_glyph_translation and related code.
 (pixel_to_glyph_translation): New section. 
2015年03月08日 Aidan Kehoe <kehoea@parhasard.net>
 * lispref/strings.texi (Predicates for Characters):
 Document `digit-char-p', `digit-char' here.
 * lispref/strings.texi (String Conversion):
 Document `parse-integer' here.
2014年03月28日 Jerry James <james@xemacs.org>
 * Makefile.in: Do not build texinfo files.
 * texinfo/fdl.texi:
 * texinfo/texinfo.texi:
 * texinfo/version.texi:
 Remove files belonging to an external project.
2014年03月28日 Jerry James <james@xemacs.org>
 * lispref/loading.texi:
 * lispref/macros.texi:
 Fix broken next/prev pointers caught by texinfo 4.x, but not by
 texinfo 5.x. Thanks to Thomas Mittelstaedt for reporting.
2014年02月11日 Jerry James <james@xemacs.org>
 * lispref/consoles-devices.texi:
 * lispref/control.texi:
 * lispref/customize.texi:
 * lispref/databases.texi:
 * lispref/debugging.texi:
 * lispref/dialog.texi:
 * lispref/display.texi:
 * lispref/eval.texi:
 * lispref/extents.texi:
 * lispref/faces.texi:
 * lispref/files.texi:
 * lispref/frames.texi:
 * lispref/functions.texi:
 * lispref/glyphs.texi:
 * lispref/gutter.texi:
 * lispref/hash-tables.texi:
 * lispref/help.texi:
 * lispref/internationalization.texi:
 * lispref/intro.texi:
 * lispref/keymaps.texi:
 * lispref/ldap.texi:
 * lispref/lispref.texi:
 * lispref/lists.texi:
 * lispref/loading.texi:
 * lispref/macros.texi:
 * lispref/markers.texi:
 * lispref/menus.texi:
 * lispref/minibuf.texi:
 * lispref/modes.texi:
 * lispref/mule.texi:
 * lispref/numbers.texi:
 * lispref/objects.texi:
 * lispref/os.texi:
 * lispref/positions.texi:
 * lispref/postgresql.texi:
 * lispref/processes.texi:
 * lispref/range-tables.texi:
 * lispref/scrollbars.texi:
 * lispref/searching.texi:
 * lispref/sequences.texi:
 * lispref/specifiers.texi:
 * lispref/streams.texi:
 * lispref/strings.texi:
 * lispref/symbols.texi:
 * lispref/syntax.texi:
 * lispref/text.texi:
 * lispref/tips.texi:
 * lispref/toolbar.texi:
 * lispref/tooltalk.texi:
 * lispref/variables.texi:
 * lispref/windows.texi:
 * lispref/x-windows.texi:
 * xemacs/custom.texi:
 * xemacs/menus.texi:
 * xemacs/programs.texi:
 Add next, prev, and up pointers to each node for texinfo 5.2.
 * texinfo/fdl.texi:
 * texinfo/texinfo.texi:
 * texinfo/version.texi:
 Sync with texinfo 5.2.
2013年09月15日 Mats Lidell <matsl@xemacs.org>
 * xemacs/files.texi (Saving): New variable
 mode-require-final-newline. Update info for require-final-newline.
2013年06月25日 Jerry James <james@xemacs.org>
 * Makefile.in: New file, so we can replace @MAKEINFO@.
 * Makefile: Removed.
 * lispref/packaging.texi: Update required version of makeinfo.
 * xemacs/packages.texi: Ditto.

ChangeLog Entries from modules/ChangeLog

goto announcement, summary, changes

2022年07月09日 Aidan Kehoe <kehoea@parhasard.net>
 * ldap/eldap.c (print_ldap):
 Use %p in the format string when printing a pointer, rather than
 casting to a long and using 0x%lx.
2021年11月03日 Aidan Kehoe <kehoea@parhasard.net>
 * postgresql/postgresql.c:
 * postgresql/postgresql.c (print_pgconn):
 * postgresql/postgresql.c (RESULT_TUPLES_FMT):
 * ldap/eldap.c:
 * ldap/eldap.c (print_ldap):
 Remove the mark methods from modules, now KKCC is the only mark
 algorithm used.
2015年05月04日 Stephen J. Turnbull <stephen@xemacs.org>
 * postgresql/configure.ac (PostgreSQL): Allow specification of subdir.
 Add most recent versioned directories for multiversion
 installations (eg, MacPorts.
 * postgresql/configure: Regenerate.
2014年08月11日 Jerry James <james@xemacs.org>
 * common/Makefile.common (CPPFLAGS): New variable.

ChangeLog Entries from nt/ChangeLog

goto announcement, summary, changes

2023年05月13日 Aidan Kehoe <kehoea@parhasard.net>
 * XEmacs 21.5.35 "kohlrabi" is released.
2023年04月16日 Aidan Kehoe <kehoea@parhasard.net>
 Make some initial changes to ease building with recent Visual
 Studio.
 * config.inc.samp:
 * config.inc.samp (USE_PORTABLE_DUMPER): Removed.
 * config.inc.samp (USE_KKCC): Removed.
 * config.inc.samp (NEW_GC): Removed.
 * xemacs.mak:
 * xemacs.mak (USE_KKCC): Removed.
 * xemacs.mak (NEW_GC): Removed.
 * xemacs.mak (DEPEND):
 * xemacs.mak (LIBC_LIB):
 Visual Studio 2015 and later require ucrt.lib and vcruntime.lib,
 include them.
 * xemacs.mak (USE_PORTABLE_DUMPER): Removed.
 * xemacs.mak (USE_SYSTEM_MALLOC):
 * xemacs.mak (CONFIG_ERROR): Removed.
 * xemacs.mak (EMACS_CONFIGURATION): Recognise AMD 64 here.
 * xemacs.mak (OPT_OBJS): Removed.
 * xemacs.mak (OPT_DEFINES): Removed.
 * xemacs.mak (LIB_SRC_TOOLS):
 * xemacs.mak ( NOTE):
 * xemacs.mak ($(DUMP_TARGET)):
 * xemacs.mak (distclean): Correct the path to CONFIG_VALUES, which
 already includes BLDLIB_SRC.
2021年10月20日 Aidan Kehoe <kehoea@parhasard.net>
 * xemacs.mak (TEMACS_COMMON_OBJS):
 * xemacs.mak (unicode-encapsulate):
 Remove references to intl-auto-encap-win32.{c,obj} from this file,
 no longer used or present.
2021年10月19日 Aidan Kehoe <kehoea@parhasard.net>
 * xemacs.mak (TEMACS_COMMON_OBJS):
 Remove hash.obj from this, no longer needed.
2014年11月10日 Vin Shelton <acs@xemacs.org>
 * xemacs.mak (TEXINFO_SRCS): XEmacs sources no longer include
 texinfo.texi.
2014年11月10日 Vin Shelton <acs@xemacs.org>
 * README: Updated contributor information.

ChangeLog Entries from src/ChangeLog

goto announcement, summary, changes

2013年06月23日 Stephen J. Turnbull <stephen@xemacs.org>
	* XEmacs 21.5.34 "kale" is released.
2013年06月17日 Jerry James <james@xemacs.org>
	* Makefile.in.in: Support bignums with MPIR.
	* config.h.in (WITH_MPIR): New macro.
	* number.c: Add MPIR support.
	* number.h: Ditto.
	* number-gmp.h: Ditto.
	(ratio_set_long_ulong): Canonicalize the ratio.
	(ratio_set_ulong_ulong): Ditto.
	* number-gmp.c (init_number_gmp): Add void param to silence GCC.
	* number-mp.c (init_number_mp): Ditto.
2013年06月17日 Jerry James <james@xemacs.org>
	* alloc.c (make_bignum_un): New function.
	(make_bignum_ll): New function.
	(make_bignum_ull): New function.
	* config.h.in (HAVE_MP_SET_MEMORY_FUNCTIONS): Add.
	* data.c (Fplus): avoid unnecessary consing.
	(Ftimes): ditto.
	* glyphs.c (check_valid_xbm_inline): Since this function is called
	prior to dumping, when bignums are forbidden, do all arithmetic
	with C integers.
	* lisp.h (MOST_POSITIVE_FIXNUM_UNSIGNED): New constant.
	(MOST_POSITIVE_FIXNUM): Redefine in terms of the above.
	(UNSIGNED_NUMBER_FITS_IN_A_FIXNUM): New macro.
	* number-gmp.c (bignum_to_llong): New function.
	(bignum_to_ullong): New function.
	(bignum_set_llong): New function.
	(bigfloat_to_string): Adjust whitespace.
	(gmp_realloc): Ditto.
	(gmp_free): Ditto.
	* number-gmp.h (bignum_fits_llong): New macro.
	(bignum_fits_ullong): New macro.
	(bignum_set_ullong): New macro.
	* number-mp.c (bignum_long_sign_bit): Remove, didn't work.
	(bignum_min_llong): New variable.
	(bignum_max_llong): New variable.
	(bignum_max_ullong): New variable.
	(bignum_to_llong): New function.
	(bignum_to_ullong): New function.
	(bignum_set_long): Reimplement using MP_XTOM.
	(bignum_set_ulong): Ditto.
	(bignum_set_llong): New function.
	(bignum_set_ullong): New function.
	(bignum_clrbit): Fix a comment.
	(bignum_random_seed): Move to number-mp.h, since it is a no-op.
	(bignum_random): Implement.
	(mp_realloc): New function.
	(mp_free): New function.
	(init_number_mp): Use them. Fix a comment. Eliminate
	initialization of bignum_long_sign_bit. Initialize
	bignum_min_llong, bignum_max_llong, and bignum_set_ullong.
	* number-mp.h (MP_XTOM): New macro.
	(bignum_fits_llong_p): New macro.
	(bignum_fits_ullong_p): New macro.
	(bignum_random_seed): New macro.
	* number.h: Implement bignums as long long integers.
	(make_bignum_ll): New macro.
	(make_integer): Accept a long long value.
	(make_unsigned_integer): New macro.
	(NATNUMP): Adjust whitespace.
	(non_fixnum_number_p): Ditto.
	* alloc.c (Fmake_list): Use make_unsigned_integer or make_fixnum
	instead of make_integer where it is appropriate to do so.
	* chartab.c (char_table_default_for_type): Ditto.
	* dired.c (Ffile_attributes): Ditto.
	* elhash.c (hash_table_size_validate): Ditto.
	* eval.c (Fmacroexpand): Ditto.
	* event-stream.c (Faccept_process_output): Ditto.
	(Frecent_keys): Ditto.
	* events.c (Fmake_event): Ditto.
	(Fevent_timestamp_lessp): Ditto.
	* font-mgr.c (Ffc_pattern_get): Ditto.
	* indent.c (Fmove_to_column): Ditto.
	* process.c (Fset_process_window_size): Ditto.
	* profile.c (Fstart_profiling): Ditto.
	* unicode.c (Fset_unicode_conversion): Ditto.
	(Funicode_to_char): Ditto.
2013年04月23日 Vin Shelton <acs@xemacs.org>
	* sysdep.c (qxe_getgrgid): Hack in WIN32_NATIVE group support.
	* dired.c (file_attributes): Add a hack for group name in native
	Windows builds.
2013年04月19日 Mats Lidell <matsl@xemacs.org>
	* sysdep.c (qxe_getgrgid): Encapsulation of getgrgid.
	* syspwd.h: Ditto.
	* dired.c (Ffile_attributes): Added optional ID-FORMAT for
	compatibility with GNU.
	
2013年03月28日 Jerry James <james@xemacs.org>
	* config.h.in: AC_FUNC_FSEEKO is the name of the autoconf macro.
	HAVE_FSEEKO is the name of the C preprocessor symbol. Do not
	confuse the two.
2013年03月11日 Vin Shelton <acs@xemacs.org>
	* config.h.in: Move large file support outside WIN32_NO_CONFIGURE block.
2013年03月07日 Jerry James <james@xemacs.org>
	* array.c (stack_like_malloc): Define only if WIN32_ANY.
	(stack_like_free): Ditto.
	* array.h: Ditto.
2013年03月04日 Jerry James <james@xemacs.org>
	* config.h.in: Add placeholders and definitions needed for large
	file support.
	* dired.c (Ffile_attributes): Some elements of the stat structure
	can overflow a fixnum. Allow them to be bignums, if possible.
	* dumper.c (pdump_align_stream): Use OFF_T, FTELL, and FSEEK macros
	to get large file support.
	(pdump): Ditto.
2013年03月02日 Jerry James <james@xemacs.org>
	* Makefile.in.in: If modules are built into the executable, assume
	that module source files are available in the current directory,
	since configure now creates soft links for them.
2013年02月22日 Michael Sperber <mike@xemacs.org>
	* event-stream.c (post_command_hook): Don't complain about throws
	out of `post-command-hook'. This is quite common, for example to
	exit the minibuffer.
2013年02月04日 Vin Shelton <acs@xemacs.org>
	* syswindows.h: Fix the cygwin build by supporting win32api 3.14
	through appropriate guard macros. Thanks to Mats Lidell.
2013年01月22日 Jerry James <james@xemacs.org>
	* general-slots.h: Add Q_visible.
	* gui.c (gui_item_add_keyval_pair): Add :visible as an alias to
	:included.
	* menubar.c (vars_of_menubar): Document that :visible is an alias
	to :included.
	* menubar-gtk.c (menu_convert): Ditto.
	* menubar-x.c (menu_item_descriptor_to_widget_value_1): Ditto.
2013年01月16日 Jerry James <james@xemacs.org>
	* menubar-x.c (set_frame_menubar): when a menubar specification has an
	error, don't fail an assert() and bring XEmacs down. Instead, return
	0 to skip the faulty menu and show any errors in *Warnings*.

ChangeLog Entries from tests/ChangeLog

goto announcement, summary, changes

2013年06月23日 Stephen J. Turnbull <stephen@xemacs.org>
	* XEmacs 21.5.34 "kale" is released.
2013年06月17日 Aidan Kehoe <kehoea@parhasard.net>
	* automated/lisp-tests.el:
	Test #'apply-partially more extensively, given changes in
	cl-macs.el.
2013年06月17日 Jerry James <james@xemacs.org>
	* automated/lisp-tests.el: Adjust expected failure message due to
	changes in check_valid_xbm_inline().
2013年04月20日 Mats Lidell <matsl@xemacs.org>
	* automated/dired-tests.el: New. Tests for file-attributes.

goto announcement, summary, changes

Made with XEmacs!
Valid XHTML 1.0!
Checked by Linklint
Site content repository:
bitbucket.org Logo
Primary mirrors:
SourceForge Logo This page is part of the XEmacs website <https://www.xemacs.org>
Contents copyright © 2000 -- 2017; all rights reserved.
Missing links, inquiries about implementation, kudos to: webmaster@xemacs.org
Discussion of XEmacs features, installation, problems: XEmacs mailing lists
This page last modified Sat May 20 15:45:01 2023 UTC.

Not conform with <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
Automatically validated by PSGML

AltStyle によって変換されたページ (->オリジナル) /