|
|||||||||||||||||
Searching XEmacs
Quick Links
About XEmacs
|
XEmacs 21.5.35 "kohlrabi" is releasedgoto 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 ChangeLoggoto 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/ChangeLoggoto 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/ChangeLoggoto 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/ChangeLoggoto 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/ChangeLoggoto 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/ChangeLoggoto 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/ChangeLoggoto 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/ChangeLoggoto 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/ChangeLoggoto 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/ChangeLoggoto 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 |
||||||||||||||||
|
|
||||||||||||||||
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