XEmacs -- Emacs: The Next Generation
English
German
Japanese
America
Asia
Australia
Europe
 
     Searching XEmacs
Quick Links About XEmacs Getting XEmacs Customizing XEmacs Troubleshooting XEmacs Developing XEmacs
      

XEmacs 21.5.30 "garlic" is released

goto announcement, summary, changes

To: xemacs-beta@xemacs.org
From: "Stephen J. Turnbull, XEmacs 21.5 Beta Engineer" <stephen@xemacs.org>
Subject: XEmacs 21.5.30 "garlic" is released.
Organization: The XEmacs Project



*          XEmacs 21.5.30 "garlic" is released.
      "garlic" is the thirty-first in the VEGETABLE series.


The successor to XEmacs 21.5.29 "garbanzo", "garlic" adds many changes to
what will be the last release of XEmacs 21.5 licensed under the GNU
General Public License, version 2.  Future releases will be licensed
under the GNU General Public License, version 3 or later, at your
option.

As part of the effort to prepare for relicensing, many files with
unclear authorship which were believed to be unused in practice have
been removed, including support for many "obsolete" platforms.  If this
causes problems for you, don't hesistate to report it as a bug!  This
effort was led by Mats Lidell and Jerry James, with contributions from
Stephen Turnbull, Aidan Kehoe, Ben Wing, and Mike Sperber (and possibly
others; if I missed you, you have my apologies!)

As always, there is a raft of changes from Ben Wing, Mule-izing files
and improving debugging facilities, as well as a lot of refactoring.

Now that XEmacs always has a UTF-8 decoder, some files have been
transcoded from Latin-1 or ISO-2022-JP to UTF-8.  NOTE: Non-Mule
XEmacsen can only handle the Latin-1 subset of Unicode internally.  In
particular, it is not possible to decode other subsets from Unicode.  It
is still possible to read in files in legacy 8-bit coding systems (the
ISO Latin series, KOI8, etc.) and display using an appropriate font on
X, but it is strongly recommended that you use Mule-enabled XEmacs in
any environment using an coding system other than ASCII or Latin-1.

Aidan Kehoe has put a lot of effort into improving the Lisp language.
Many functions have been optimized.  He has also greatly improved Common
Lisp compatibility, specifically by implementing true multiple values at
the C level, and by fixing many incompatibilities observed by running
Paul Dietz's test suite under XEmacs.  He has also optimized a large
number of other functions.  The multiple value support is incompatible
with the old cl.el implementation by returning lists.  Aidan has worked
hard to hide this with appropriate macros, including in the XEmacs
package distribution, but some incompatibilities may remain if you try
to share compiled libraries between XEmacs 21.4 and XEmacs 21.5.

Didier Verna has implemented a background-placement face property, with
a contribution from Ben.

A half-dozen crashes have been fixed, thanks to Aidan Kehoe, Stephen
Turnbull, Adrian Aichner, and Ben Wing.

There are many other improvements and fixes, but these old fingers are
too tired to type them.  See the (not so) Brief List of Changes for a
complete list, and the ChangeLogs for full details.

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.30 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 safe 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.

If you already have a 21.5.29 source tree, a patchkit is available in
xemacs-21.5.29-21.5.30.patch.gz.  This does not update .elcs or .infos.
They will be rebuilt when you make XEmacs.  If you have an earlier
version, you can repeatedly apply patchkits.

Also, if you don't have the packages yet, see

        http://www.xemacs.org/Documentation/packageGuide.html.

Anonymous ftp:

             ftp://ftp.xemacs.org/pub/xemacs/xemacs-21.5

See http://www.xemacs.org/Install/ for more information about building
from source.

If you already have a 21.5.29 source tree, a patchkit is available in
xemacs-21.5.29-21.5.30.patch.gz.  This does not update .elcs or .infos.
They will be rebuilt when you make XEmacs.  If you have an earlier
version, you can repeatedly apply patchkits.

Also, if you don't have the packages yet, see

        http://www.xemacs.org/Documentation/packageGuide.html.


Changes in XEmacs 21.5.30 "garlic"

goto announcement, summary, changes

Major Features and Backward Incompatible Changes

  • Remove: Last release under GPL v2; future releases will be GPL v3 or later. (Mats Lidell, Jerry James, Stephen Turnbull, Aidan Kehoe, Ben Wing, Mike Sperber)

-- new: Functions may return multiple values as in Common Lisp (incompatible with cl.el implementation in some cases).

User-Visible Bug Fixes and Minor Improvements

  • Fix: Crash by registering all CCL programs. (Aidan Kehoe)
  • Fix: Crash in PNG handling (issue570). (Stephen Turnbull)
  • Fix: Crash in _wgetdcwd(...) when linking against msvcrt8 (Adrian Aichner)
  • Fix: Crash in printing if gc_in_progress and in_debug_print (Ben Wing)
  • Fix: Crash when printing window with Qt as its buffer. (Ben Wing)
  • Fix: Crash when reset_glyph_cachels() is called on the minibuffer window when creating a frame. (Ben Wing)
  • Fix: #'gnuserv-edit-files goes to line only if linenumber non-nil. (It's me FKtPp ;))
  • Fix: Make winclient startup more reliable. (Vin Shelton)
  • Fix: Remove dk.xemacs.org from list of package download sites. (Adrian Aichner)
  • Fix: issue 546, use #'next-single-char-property-change in list-mode.el (Aidan Kehoe)
  • Improve: Exclude the current buffer in switch-to-buffer completion. (Didier Verna)
  • Improve: Font locking of Common Lisp source. (Didier Verna)
  • Improve: GNU-compatible optional COLUMN in indent-region. (Aidan Kehoe)
  • Improve: Handling of coding systems for new or zero-length files. (Aidan Kehoe)
  • Improve: Support the precomposed characters with stroke. (Aidan Kehoe)
  • Improve: Fallback to whole file in describe-char-unicode-data if database is unreadable. (Aidan Kehoe)
  • Improve: Make iso-left-tab equivalent to shift-tab. (Aidan Kehoe)
  • Improve: Indentation handling in Lisp modes. (Ben Wing)
  • Improve: Name lock symlinks .#FN# for file FN to avoid confusing extensions. (Ben Wing)
  • Improve: Set debug-xft to 0. (Stephen Turnbull)
  • Improve: Recognize bitmaps/ directory as containing bitmap files. (Didier Verna)
  • New: Use `emacs-data-roots' instead of `emacs-roots' where appropriate. (Mike Sperber)
  • New: The `absolute' property for background pixmaps. (Ben Wing)
  • Improve: Match X11 bgcolor fallback of default face to gui element face. (Didier Verna)
  • New: The background-placement face property. (Didier Verna)

Build Infrastructure and Source Tree

  • Fix: Cygwin and MinGW need -export-all-symbols. (Ben Wing)
  • Fix: Cygwin needs pdump (Jerry James)
  • Fix: Windows link if --with-msw=no in modules. (Ben Wing)
  • Improve: Use cygwin_conv_path() when available. (Ben Wing)
  • Improve: make-mswin-unicode.pl Cygwin header compatibility, overridden prototypes, `review' command. (Ben Wing, Vin Shelton)
  • Improve: Darwin needs system malloc, s&m moved into configure. (Stephen Turnbull)
  • Fix: Turn warnings (disabled by accident) back on. (Ben Wing)
  • Improve: C++/G++ detection and configuration. (Ben Wing)
  • Fix: XE_COMPLEX_ARG registration of options in _AC_USER_OPTS (fixes "unknown option" warnings). (Stephen Turnbull)
  • Improve: Clean more build and debug products. (Stephen Turnbull)
  • Improve: Don't install silly symlinks when $(prefix) != $(exec_prefix). (Mike Sperber)
  • Improve: Installation log refers to "Xft feature" for safer grepping. (Ben Wing)
  • Improve: Paths configuration. (Mike Sperber)
  • Improve: Use HAVE_CONFIG_H to find config.h and prototypes. (Ben Wing)
  • Improve: `--with-error-checking' means `--with-error-checking=all'. (Ben Wing)
  • Improve: make-src-depend. (Ben Wing)
  • Improve: ndbm configuration (Karl Kleinpaste, Stephen Turnbull, Ben Wing)
  • Refactor: New targets config-changed, fix-perms (Ben Wing)
  • Refactor: Rename all enable-FOO variables to with-FOO. (Ben Wing)
  • Remove: Support for InfoDock, NeXTstep, old Ultrix, SCO Unix, Bull DPX/2, Data General Unix, RTU, Unisoft Unix, OffiX DND, dynodump, idd, sparcworks, NEC EWS. (Jerry James)
  • Remove: Wise installer subtree, netinstall subtree, many files: ppc.ldscript, make-msgfile.c, make-po.c, yow.c, rcs-checkin, gnudepend.pl, leditcfns.c, wakeup.c (Jerry James, Mats Lidell)

Documentation

  • Fix: Comment, docstring, and string non-syntactic defects and formatting. (Stephen Turnbull, Ben Wing, Aidan Kehoe, Didier Verna)
  • Improve: --quick-build, --with-debug, and --with-error-checking option help. (Ben Wing)
  • Improve: Bignum and fixnum correctness in manual. (Aidan Kehoe)
  • Improve: Change "special form" to "special operator". (Aidan Kehoe)
  • Improve: Docstrings for #'cadr, #'caddr, #'cadddr, #'debug-on-error, #'eval-when-compile, #'eval-and-compile, #'interactive, #'lisp-indent-specform, #'range-table-type, defun movement, #'make-coding-system-internal, #'make-syntax-table, docstring/formal argument matching. (Stephen Turnbull, Aidan Kehoe, Ben Wing)
  • Improve: FAQ describes repositories and VCS usage. (Stephen Turnbull)
  • Improve: Internals nodes on magic symbols, hash tables, finalizer methods, the new allocator, the new garbage collector, old-style DFC conversion macros, the different types of character and their uses, frame handling, window-system support, allocation of Lisp objects, sequence/list functions and their keywords. (Marcus Crestani, Ben Wing, Aidan Kehoe)
  • Improve: PROBLEMS describes crash on recent Cygwin 1.7. (Ben Wing)
  • Improve: PROBLEMS describes duplicate symbol warnings on Mac OS X. (Stephen Turnbull)
  • Improve: Show the double-quotes in the sample output correctly for function-arglist. (Aidan Kehoe)
  • Improve: Startup paths, Lisp, Emacs.ad, xemacs.1 reflect the change from `lib' to `share' for the architecture-independent directories. (Mike Sperber, Jerry James)
  • Improve: Treatment of hex and octal character escapes. (Aidan Kehoe)
  • Refactor: Move term.texi to the eterm package. (Jerry James)
  • Refactor: Remove custom.texi. (Jerry James)

Lisp API

  • Fix: #'autoload-featurep-protect-autoloads always inserts a coding-system cookie. (Ben Wing)
  • Fix: #'compare-strings coerces bounds to be within strings (Stephen Turnbull)
  • Fix: #'insert-file-contents always sets the buffer coding system. (Aidan Kehoe)
  • Fix: #'letf checks whether arguments to #'values are bound, and make them unbound after evaluating BODY. (Aidan Kehoe)
  • Fix: #'next-list-mode-item, #'switch-to-completions pay attention to non-text-property extents. (Aidan Kehoe)
  • Fix: #'pre-display-buffer-function is not set to `get-frame-for-buffer'. (Michael Sperber)
  • Fix: Add argument information built-in special operators. (Aidan Kehoe)
  • Fix: Allow deleting windows in `post-command-hook'. (Michael Sperber)
  • Fix: Argument annotations of For, Fand, Fif, Fwhen, Fcond, Fprogn, Fprog1, Fprog2, FletX, Flet, Fwhile, Fdefvar, Fdefconst, Frun_hooks, Frun_hooks_with_args, Frun_hooks_with_args_until_success, Frun_hooks_with_args_until_failure (Aidan Kehoe)
  • Fix: Argument handling in make-autoload. (Mike Sperber)
  • Fix: Canonicalize spaces in argument lists for function-documentation-1. (Ben Wing)
  • Fix: Correct error in specifier canonicalization (Aidan Kehoe)
  • Fix: Disable specifier memory-usage stats due to circularities. (Ben Wing)
  • Fix: Ffunctionp does not return t for special operators. (Aidan Kehoe)
  • Fix: Fnbutlast, Fbutlast accept dotted lists. (Aidan Kehoe)
  • Fix: Initialize ?\012 as whitespace (Aidan Kehoe)
  • Fix: Issue145: Allow default-network-coding-system and default-process-coding-system to be nil. (Stephen Turnbull)
  • Fix: Many bugs revealed by Paul Dietz's test suite. (Aidan Kehoe)
  • Fix: Search for Control-1 chars in boyer_moore() (Ben Wing)
  • Fix: Signal a read error upon encountering a ratio constant with a zero denominator. (Jerry James)
  • Improve: #'beginning-of-defun, #'end-of-defun behavior customizable via beginning-of-defun-function, end-of-defun-function. (Andreas Roehler)
  • Improve: #'cd use of cd-path and CDPATH. (It's me FKtPp ;), Aidan Kehoe)
  • Improve: #'ceiling, #'floor, #'round, #'truncate, #'fceiling, #'ffloor, #'fround, #'ftruncate: support Common Lisp, including optional DIVISOR arguments, returning multiple values, obey contamination rules, round towards the even number in ambiguous cases. (Aidan Kehoe)
  • Improve: #'coerce takes 'fixnum as a destination type. (Aidan Kehoe)
  • Improve: #'list-length, #'remf, #'getf, #'tailp, #'cl-set-getf, #'cl-do-remf, #'ldiff, #'endp, #'subseq (new, Common Lisp compatible). (Aidan Kehoe)
  • Improve: #'char<, #'char>=, #'char>, #'char<=, #'alpha-char-p, #'graphic-char-p, #'standard-char-p, #'char-name, #'name-char, #'upper-case-p, #'lower-case-p, #'both-case-p, #'char-upcase, #'char-downcase, #'integer-length (new, Common Lisp compatible). (Aidan Kehoe)
  • Improve: #'mapvector, #'mapconcat, #'mapcar to support multiple SEQUENCES and error with circular lists (Aidan Kehoe)
  • Improve: #'nreverse, #'reverse accept any sequence. (Aidan Kehoe)
  • Improve: #'try-completion, #'suggest-key-bindings, #'float-time, #'substring-no-properties, #'turn-off-auto-fill, #'describe-char-unihan-field-descriptions (GNU compatibility). (Aidan Kehoe, Malcolm Purvis, Mike Sperber)
  • Improve: #remove*, #cl-delete-duplicates, #delete-duplicates, #'symbol-file, #'find-function. (Aidan Kehoe)
  • Improve: 'buffer-display-count, 'buffer-display-time (new, GNU-compatible) (Jeff Sparkes, Aidan Kehoe)
  • Improve: 'discarded-consing, 'quoted-lambda new warning types. (Aidan Kehoe)
  • Improve: Accept #B<binary>, #O<octal>, and #X<hex> like GNU Emacs. (Mike Sperber)
  • Improve: Accept keywords in the hash table read syntax. (Aidan Kehoe)
  • Improve: Handling of object plists, especially processes. (Aidan Kehoe)
  • Improve: Keyword arguments handling. (Aidan Kehoe)
  • Improve: Turn on load-ignore-out-of-date-elc-files by default (Ben Wing)
  • Improve: Type spec handling in coerce, cl-make-type-test (Aidan Kehoe)
  • Improve: Use keywords instead of ordinary symbols in some XEmacs-specific functions. (Aidan Kehoe)

-- improve: read-buffer gets new optional argument EXCLUDE.

  • New: #'bytecomp-load-hook. (Aidan Kehoe)
  • New: #'canoncase; use it with chars in internal_equalp. (Aidan Kehoe)
  • New: #'constantly from ANSI Common Lisp, with SBCL extension. (Aidan Kehoe)
  • Improve: #device-color-cells (tty_device_system_metrics()) returns metrics for num-color-cells and num-bit-planes (issue757) on TTYs. (Jeff Sparkes)
  • New: #'error-unless-tests-match, #'byte-compile-file-being-compiled, #'compiled-if, #'compiled-when for supporting conditional compilation of different code depending on the presence or absence of features. (Ben Wing)
  • New: #'format-time-string implements Roman month numbers. (Aidan Kehoe)
  • New: #'get-properties. (Didier Verna)
  • New: #'process-get, #'process-put, #'process-plist, #'set-process-plist for GNU compatibility (Aidan Kehoe)
  • New: #'save-some-buffers-action-alist, #'diff-files-for-recover, #'diff-buffer-with-file, (Mike Sperber)
  • New: #'set-window-configuration gets optional `set-frame-size-p' argument. (Mike Sperber)
  • New: #'set-window-pixel-width, #'set-window-pixel-height. (Mike Sperber)
  • New: #'stable-union, #'stable-intersection. (Ben Wing)
  • New: 'debug-xemacs, 'debug-regexps, 'debug-soe, 'debug-xft (was 'xft-debug-level), 'debug-searches (was 'debug-xemacs-searches), 'byte-code-meter, 'byte-metering-on variables for debugging. (Ben Wing)
  • New: Common-Lisp-compatible #'the, #'array-dimension-limit, #array-total-size-limit, #'array-rank-limit, #'equalp (especially in hash tables). (Aidan Kehoe)
  • New: Errors 'invalid-keyword-argument, 'scan-error. (Aidan Kehoe, Ben Wing)
  • New: Implement multiple values a la Common Lisp. New bytecodes: Bbind_multiple_value_limits, Bmultiple_value_call, Bmultiple_value_list_internal, Bthrow. Modified bytecodes: BRgotoifnilelsepop, BRgotoifnonnilelsepop. Bcall, Bdup, Bgotoifnilelsepop, Bgotoifnonnilelsepop, Breturn. New macros: DISCARD_PRESERVING_MULTIPLE_VALUES, POP_WITH_MULTIPLE_VALUES, TOP_ADDRESS, TOP_LVALUE, TOP_WITH_MULTIPLE_VALUES. Modified macros: DISCARD, POP, TOP. New functions: Fand, Fcond, Fdefconst, Fdefvar, Feval, Ffuncall, Fif, Flet, FletX, Fmultiple_value_call, Fmultiple_value_list_internal, Fmultiple_value_prog1, For, Fprog2, Fsetq, Fsetq_default, Fsignal, Fthrow, Fvalues, Fvalues_list, Fwhile, Fwith_output_to_temp_buffer. Modified functions: Fcall_interactively, bind_multiple_value_limits, button_item_to_widget_value, check_if_suppressed, connector, dde_eval_string, evaluate_xpm_color_symbols, execute_help_form, flagged_a_squirmer, glyph_instantiator_to_glyph, gui_item_display_flush_left, gui_item_value, make_multiple_value, mark_multiple_value, menu_convert, menu_descriptor_to_widget_1, multiple-values-limit, multiple_value_aref, multiple_value_aset, multiple_value_call, multiple_value_list_internal, pop_kbd_macro_event, populate_menu_add_item, print_multiple_value, size_multiple_value, syms_of_eval, values2. wv_set_evalable_slot, x_IO_error_handler. Exported functions: throw_or_bomb_out. New variables: multiple-values-limit, multiple_value_current_limit. Exported symbols: Qobsolete_throw, Qthrow. New lrecord_type: multiple_value. (Aidan Kehoe)
  • New: macro (Aidan Kehoe)
  • Refactor: #'bq-vector-contents, #'bq-list*, #'format-decode removed; #'purecopy aliased to #'identity and uses removed. (Aidan Kehoe)
  • Refactor: #'byte-compile-compiled-obj-to-list, #'custom-declare-variable-list removed. (Aidan Kehoe)
  • Refactor: #'car-less-than-car, #'cdr-less-than-cdr move to format.el, #'list* moved to subr.el. (Aidan Kehoe)
  • Refactor: #'ceiling*, #'floor*, #'round*, #'truncate* obsoleted. (Aidan Kehoe)
  • Refactor: #'cl-function-arglist takes exactly one arg. (Ben Wing)
  • Refactor: #'init-file-user, #'pui-add-install-directory, #'user-original-login-name, #'isearch-yank-x-selection, #'isearch-yank-x-clipboard removed. (Ben Wing.)
  • Refactor: #'paths-filter, #'paths-uniq-append removed. (Aidan Kehoe)
  • Refactor: #'show-buffer, #'buffer-flush-undo, #'buffer-local-value, #'x-color-values, #'mswindows-color-list, #'Info-default-directory-list, #'line-beginning-position, #'line-end-position, #'obsolete-throw, #'cl-mapc, #'byte-code-function-p, #'interactive-form, #'assq-delete-all, #'makehash, #'display-column-mode obsoleted. (Ben Wing)

Internal API and Implementation

  • Fix: #'canna-henkan-begin. (Ben Wing)
  • Fix: #'condition-case gets correct syntax in #'progress-feedback-dispatch-non-command-events. (Stephen Turnbull)
  • Fix: #'custom-variable-prompt checks explicitly for nil before for symbol. (Aidan Kehoe)
  • Fix: #'delete-duplicates compiler macro and calls to it. (Aidan Kehoe)
  • Fix: #'eql Byte-compilation (Aidan Kehoe)
  • Fix: #'eql for extended number types and the hash implementation (Aidan Kehoe)
  • Fix: #'fc-name-unparse memory leak. (Jerry James)
  • Fix: #'fill is much more careful about resizing a string argument. (Aidan Kehoe)
  • Fix: #'finish-set-language-environment generation of display-table entries for error octet characters. (Ben Wing)
  • Fix: #'with-trapping-errors gets correct :operation arguments in #'font-lock-pre-idle-hook and #'find-tag-default. (Stephen Turnbull)
  • Fix: #83, #8C mapping in koi8-c, #A6 mapping in viscii. (Ben Wing, Aidan Kehoe)
  • Fix: Bignum initialization and finalization. (Jerry James)
  • Fix: Buffer overrun (issue630). (Stephen Turnbull, Aidan Kehoe)
  • Fix: Build failure, Apple's g++-4.0.1, Mac OS 10.4. (Aidan Kehoe)
  • Fix: Call MODE-mode for -*-MODE-*- only if it has a function binding. (Aidan Kehoe)
  • Fix: Call character_to_event() on characters received from XIM. (Aidan Kehoe)
  • Fix: Check for Xft before using it, fixing openSUSE bug #558764. (Stephen Turnbull)
  • Fix: Coding system initialization. (Aidan Kehoe)
  • Fix: Compile errors under C++ and/or Visual Studio 6 in syswindows.h. (Ben Wing)
  • Fix: Computation of fastmap in charset_mule_not() (Ben Wing)
  • Fix: Conditionalize COM support on HAVE_MS_WINDOWS (Ben Wing)
  • Fix: Don't use Boyer-Moore for case-insensitive search if the search pattern contains repeated Ibytes. (Aidan Kehoe)
  • Fix: Fall back from GTK to X11 in gnuclient. (Aidan Kehoe)
  • Fix: Frame geometry (especially pixelized) to make it a bit easier to understand and fix some bugs. (Ben Wing)
  • Fix: Function prototype/definition mismatches. (Ben Wing)
  • Fix: GCPROing. (Ben Wing, Aidan Kehoe)
  • Fix: GNU coding standards in modules/base64. (Ben Wing)
  • Fix: Handling of errors in bytecode.c and floatfns.c. (Jerry James)
  • Fix: Handling of escape characters when splitting strings. (Aidan Kehoe)
  • Fix: Handling of possible meta characters (?\x80-?\xFF) (Aidan Kehoe)
  • Fix: I18N encapsulation commands for Windows. (Ben Wing)
  • Fix: Initialize `result' before calling FcFontMatch in Ffc_font_match and xft_find_charset_font (Jerry James)
  • Fix: Integer canonicalization. (Aidan Kehoe)
  • Fix: Integer overflow when allocating image memory (Jerry James)
  • Fix: JPEG macro FAR conflict in eimage code. (Vin Shelton)
  • Fix: Match integer sizes in assignment in read_event_from_tty_or_stream_desc (Ben Wing)
  • Fix: Missing includes to termcap.c. (Aidan Kehoe)
  • Fix: Missing names and ISO 639 codes for Arabic, Russian, and Thai. (Stephen Turnbull)
  • Fix: Move CYGWIN_HEADERS to s/cygwin32.h and s/mingw32.h, fixing some compile problems. (Ben Wing)
  • Fix: Move HAVE_SCROLLBARS test so the code can compile under Visual Studio 6. (Vin Shelton)
  • Fix: Notices in aclocal.m4, ad2c, build-msw-release.sh, compface.mak, cvtmail.c, easymenu.el, elhash.c, emacs.c, emodules.texi, europe-theme.el, example-theme.el, external-widget.texi, fakemail.c, font.el, fontconfig.el, frame.el, glade.c, glyph-test.el, gnome.el, gnuserv.c, gnuserv.h, gnuslib.c, gtk test files, gtk-compose.el, gtk-glue.c, gtk-marshal.el, gtk-package.el, gtk-widget-accessors.el, gtk-xemacs.c, gtk-xemacs.h, gtk.el, gutter-items.el, gutter-test.el, gutter.el, hyper-apropos.el, insert-data-in-exec.c, installexe.sh, lao.txt, lwlib-internal.h, m/alpha.h, make-path.c, menu-items.el, modules/sample/external/Makefile.in.in, modules/sample/external/configure.ac, modules/sample/external/sample.c, modules/sample/internal/sample.c, mule/canna-leim.el alist.el, mule/kinsoku.el, multicast.el, number*.[ch], profile.c, regressiontest.pl, reproduce-crashes.el, s/hpux11-shr.h, s/mach-bsd4-3.h, s/sco7.h, s/sco7.h, sigpipe.c, site-load.el, symsinit.h, tcp.c, term/bg-mouse.el, term/sup-mouse.el, term/vt100.el, test-ew-motif.c, test-ew-xlib.c, tests/external-widget/Makefile, tiff.mak, ui-byhand.c, ui-gtk.c, ui-gtk.h, view-less.el, xemacs.rc, and xpm.mak. (Jerry James, Stephen Turnbull)
  • Fix: Parse UNUSED and USED_IF right in make-docfile.c (Stephen Turnbull)
  • Fix: Prune correct number of entries from load-history. (Aidan Kehoe)
  • Fix: Qlist, Qstring mistakenly declared twice. (Ben Wing)
  • Fix: Simplify assertion in event_pixel_translation for Visual C 6. (Vin Shelton)
  • Fix: Synchronization of window point with current point when switching buffers. (Michael Sperber)
  • Fix: Syntax errors in Ffc_config_app_font_add_file and Ffc_config_app_font_add_dir (Jerry James)
  • Fix: Type correctness in split_string_by_ichar_1. (Aidan Kehoe)
  • Fix: Type correctness of char and Ichar types. (Ben Wing)
  • Fix: UTF-8-ize mule-wnnfns.c. (Ben Wing)
  • Fix: Upper and lowercase mappings were reversed for some old-Cyrillic chars. (Ben Wing)
  • Fix: Use correct timestamp with XSetInputFocus. (Mike Sperber)
  • Fix: Use of REGISTER in certain functions. (Aidan Kehoe)
  • Fix: Use unencumbered texts in #'split-string-by-char (Aidan Kehoe)
  • Fix: Warning elimination. (Aidan Kehoe, Ben Wing, Jerry James, Stephen Turnbull)
  • Fix: `escape-quoted' handling of characters in the 0x80 - 0x9F range. (Ben Wing)
  • Fix: const handling in fileio.c. (Ben Wing, Vin Shelton)
  • Fix: count_with_tail(), FdeleteX(), FremoveX() handling of COUNT argument. (Aidan Kehoe)
  • Fix: fontmgr may not use Fsignal() in C, as it may return. (Ben Wing)
  • Fix: g++ 4.3 complaints about implicit conversions of const char * to char * (Ben Wing)
  • Fix: gif_instantiate() tries harder to find an appropriate GIF colormap. (Adam Sjøgren)
  • Fix: gnuserv found in `exec-directory'. (Michael Sperber)
  • Fix: gtk_xpm_instantiate() hotspot coordinates are Lisp integers (Stephen Turnbull)
  • Fix: integerp byte code gets fixnump semantics. (Aidan Kehoe)
  • Fix: lpRemoteName is an XELPTSTR. (Vin Shelton)
  • Fix: memmove() substituted for strcpy() in etags.c (Sjoerd Mullender)
  • Fix: modeline face avoids using fallbacks. (Aidan Kehoe)
  • Fix: module_load() gets one more dereference on f = dll_variable(. (Stephen Turnbull)
  • Fix: off-by-one bug in mswindows_link (Ron Isaacson)
  • Fix: query_string_font() uses proper domain for cachel updating. (Didier Verna)
  • Fix: query_string_geometry() lookup domain. (Didier Verna)
  • Fix: realpath() supplied by Darwin used to get the canonical case for filenames. (Aidan Kehoe)
  • Fix: resize_string() must not free dumped data. (Aidan Kehoe)
  • Fix: staticpro_names() stores actual names. (Ben Wing)
  • Fix: ulong_to_bit_string() prints a zero, not the empty string. (Aidan Kehoe)
  • Fix: undecided_canonicalize_after_coding() to retain CODESYS info (Aidan Kehoe)
  • Fix: unicode_convert() handles very short input strings correctly. (Aidan Kehoe)
  • Fix: unicode_query() initializes invalid_lower_limit. (Ben Wing)
  • Fix: unicode_query() missing return type. (Stephen Turnbull)
  • Fix: xface_normalize() to handle inline data properly. (Didier Verna)
  • Improve: #'byte-compile-initial-macro-environment uses #'the and compilable lambda expressions (Aidan Kehoe)
  • Improve: #'byte-compile-lambda issues warnings for interactive forms. (Aidan Kehoe)
  • Improve: #'cl-prettyprint handles (function ...) specially. (Aidan Kehoe)
  • Improve: #'documentation, #'function-documentation-1, #'describe-function-1, #'hyper-apropos-get-doc, #'describe-function, #'function-arglist, #'function-documentation. (Aidan Kehoe, Didier Verna, Ben Wing)
  • Improve: #'frame-pixel-height and friends reflect what will happen as of the next redisplay. (Ben Wing)
  • Improve: #'function now parallels #'quote. (Aidan Kehoe)
  • Improve: #'handle-pre-motion-command-current-command-is-motion. (Aidan Kehoe)
  • Improve: #'read-from-minibuffer uses buffer (format " *Minibuf-%d*" (minibuffer-depth)), regardless of depth. (Aidan Kehoe)
  • Improve: #'show-memory-usage, #'show-object-memory-usage-stats. (Ben Wing, Marcus Crestani)
  • Improve: #'some, #'every used in info.el, format.el, files.el (Aidan Kehoe)
  • Improve: #'the may warn at byte-compile time. (Aidan Kehoe)
  • Improve: Allocate lrecord arrays in own size class. (Marcus Crestani)
  • Improve: Case map handling. (Ben Wing)
  • Improve: Colormap handling on Windows. (Aidan Kehoe)
  • Improve: Context-specific handling of system coding systems where we used to just use Qnative. (Ben Wing)
  • Improve: Cygwin handling of pathname coding systems. (Ben Wing)
  • Improve: Dynarr code. (Aidan Kehoe, Ben Wing)
  • Improve: Error-checking in Fquote, Ffunction, (Aidan Kehoe)
  • Improve: Fontconfig API more complete. (Stephen Turnbull)
  • Improve: Hash table's rehash threshold default now based on size and test function. (Aidan Kehoe)
  • Improve: Keymap handling. (Ben Wing)
  • Improve: Make error messages better reflect the text that was encountered in read_escape. (Aidan Kehoe)
  • Improve: Make sure distinct symbol macros with identical names expand distinctly. (Aidan Kehoe)
  • Improve: Mule-ize database.c partially, modules/postgresql, mule-wnnfns.c. (Ben Wing)
  • Improve: Optimizations: remove redundant lambdas and interning of symbols for temporary character sets, #'hash-table-key-list, #'hash-table-value-list, #'hash-table-key-value-alist, #'hash-table-key-value-plist, #'read-behavior, #'complement, #'regexp-quote, #'concatenate, #'mapc, #'do-autoload-commands, #'packages-find-package-library-path, #'frame-list, #'extent-descendants, #'buffer-tag-table-files, #'preloaded-file-list, #'device-list, #'proclaim-inline, #'proclaim-notinline, #'inx-available-font-sizes, #'let-specifier, #'pui-add-required-packages, #'mswindows-available-font-sizes, #'modeline-minor-mode-menu, #'minibuf-directory-files, #'handle-pre-motion-command-current-command-is-motion, #'finish-set-language-environment, #'mod*, #'rem*, #'xpm-color-symbols, #'=, #'<, #'>, #'<=, #'>= (Aidan Kehoe)
  • Improve: Print the device in a frame structure. (Aidan Kehoe)
  • Improve: Qunbound, not Qnil used as second arg to call to syntax_error() (Ben Wing)
  • Improve: Remove the TYPE argument from xfree(). (Ben Wing)
  • Improve: Replace "obscure" symbol names with uninterned symbols. (Aidan Kehoe)
  • Improve: Track type of range tables. (Ben Wing)
  • Improve: UTF-8-ize canna/canna_api.c, unicode.el. (Ben Wing)
  • Improve: Use external giflib instead of internal GIF support. (Jerry James)
  • Improve: Warn or error if (quote ...) or (function ...) quotes more than one object (Aidan Kehoe)
  • Improve: emacs_rint() always used for bignum consistency (Aidan Kehoe)
  • Improve: emodules_doc_sym() and emodules_doc_subr() take Ascbyte * pointers (Ben Wing)
  • Improve: extern Lisp_Object declarations moved (Ben Wing)
  • Improve: lrecord UID's get separate UID space for each type. Display UID's consistently when appropriate. (Ben Wing)
  • Improve: print_symbol() escapes symbols that look like ratios. (Aidan Kehoe)
  • Improve: put_range_table() becomes O(log n) for adding a localized range. (Ben Wing)
  • Improve: specifier_instance_from_inst_list calls call_with_suspended_errors() with ERROR_ME_WARN. (Aidan Kehoe)
  • Improve: stat() failure ignored in file_name_completion (Henrique Martins)
  • Fix: Bignums handled correctly by NATNUMP, #'member*, #'eql, #'assoc*. (Aidan Kehoe)
  • New: DEFAULT_DIRECTORY_FALLBACK is a directory that should "always" be available; avoid fatal error if the current directory doesn't exist, chdir to DEFAULT_DIRECTORY_FALLBACK instead. (Aidan Kehoe)
  • New: ERROR_CHECK_DYNARR, dynarr_checking_assert(), ERROR_CHECK_ANY. (Ben Wing)
  • New: Macros for getting the size/edges of various rectangles surrounding the paned area. (Ben Wing)
  • New: Symbols for type checks in sequence functions. (Aidan Kehoe)
  • New: Typedefs for PCVOID and PDWORD_PTR for non-Cygwin. (Ben Wing)
  • New: USED_IF_SCROLLBARS, fix warnings. (Ben Wing)
  • New: UTF-8 support in Cygwin. (Ben Wing)
  • New: deadbeef_memory() exported. (Ben Wing)
  • New: pluralize_word(), pluralize_and_append(). (Ben Wing)
  • New: printing_unreadable_lcrecord(). (Ben Wing)
  • Refactor: #'byte-compile-file-form so that #'symbol-value and #'load-time-value can be implemented directly. (Aidan Kehoe)
  • Refactor: #'byte-compile-funarg-n (new) used to create the various byte-compile-funarg functions, which check for quoted lambdas in given positions. (Aidan Kehoe)
  • Refactor: #'capitalize-string-as-title uses #'with-string-as-buffer-contents. (Ben Wing)
  • Refactor: #'custom-quote is aliased to #'quote-maybe. (Aidan Kehoe)
  • Refactor: #'list-length, #'default-file-system-ignore-case, #'equalp, #'fill, #'sort*, #'merge, #'mapcar*, #'map, #'maplist, #'mapc, #'mapl, #'mapcan, #'mapcon, #'query-coding-region, #'make-coding-system, #'reduce, #'replace, #'some, #'every moved to C. (Aidan Kehoe)
  • Refactor: #'notany, #'notevery get compiler macros. (Aidan Kehoe)
  • Refactor: #'substring aliased to #'subseq. (Aidan Kehoe)
  • Refactor: #if 0 out some unused functions in malloc.c. (Ben Wing)
  • Refactor: 'Qcoerce moved to general-slots.h (Aidan Kehoe)
  • Refactor: 'default-file-system-ignore-case moved to fileio.c. (Aidan Kehoe)
  • Refactor: ARRAYP(), SEQUENCEP(), CHECK_ARRAY(), CHECK_SEQUENCE(), Fbit_vector, Fstring, FmapcarX in lisp.h (Aidan Kehoe)
  • Refactor: Always use platform Xmu. (Jerry James)
  • Refactor: Bignums get: New macros ROUNDING_CONVERT, CONVERT_WITH_NUMBER_TYPES, CONVERT_WITHOUT_NUMBER_TYPES, MAYBE_TWO_ARGS_BIGNUM, MAYBE_ONE_ARG_BIGNUM, MAYBE_TWO_ARGS_RATIO, MAYBE_ONE_ARG_RATIO, MAYBE_TWO_ARGS_BIGFLOAT, MAYBE_ONE_ARG_BIGFLOAT, MAYBE_EFF, MAYBE_CHAR_OR_MARKER. New functions ceiling_two_fixnum, ceiling_two_bignum, ceiling_two_ratio, ceiling_two_bigfloat, ceiling_one_ratio, ceiling_one_bigfloat, ceiling_two_float, ceiling_one_float, ceiling_one_mundane_arg, floor_two_fixnum, floor_two_bignum, floor_two_ratio, floor_two_bigfloat, floor_one_ratio, floor_one_bigfloat, floor_two_float, floor_one_mundane_arg, round_two_fixnum, round_two_bignum_1, round_two_bignum, round_two_ratio, round_one_bigfloat_1, round_two_bigfloat, round_one_ratio, round_one_bigfloat, round_two_float, round_one_float, round_one_mundane_arg, truncate_two_fixnum, truncate_two_bignum, truncate_two_ratio, truncate_two_bigfloat, truncate_one_ratio, truncate_one_bigfloat, truncate_two_float, truncate_one_float, truncate_one_mundane_arg. Modified functions: emacs_doprnt_1, internal_coerce_number, Ffloat, BIGFLOAT_ARITH_RETURN, BIGFLOAT_ARITH_RETURN. New variable scratch_ratio2. (Aidan Kehoe)
  • Refactor: Byte code #o117 is #'subseq, not #'substring. (Aidan Kehoe)
  • Refactor: Call init_string_ascii_begin() in FsortX, Ffill. (Aidan Kehoe)
  • Refactor: Case sensitivity of file paths via new variables default-file-system-ignore-case, file-system-case-alist, function file-system-ignore-case-p. (Aidan Kehoe)
  • Refactor: Coding system initialization. Rename default-process-coding-system-read -> process-read, default-process-coding-system-write -> process-write, buffer-file-coding-system-for-read -> bfcs-for-read, default-buffer-file-coding-system -> default-bfcs, no-conversion-coding-system-mapping -> no-conv-cs, unix-no-mule-no-eol-detection -> no-mule-no-eol-detection, unix-no-mule-eol-detection -> no-mule-eol-detection, unix-mule -> mule. (Ben Wing)
  • Refactor: Dynarr code. (Ben Wing)
  • Refactor: Eliminate bogus special-casing of standard abbrev tables. (Aidan Kehoe)
  • Refactor: Fquote_maybe moved from callint.c to eval.c. (Aidan Kehoe)
  • Refactor: Fregexp_quote declared in lisp.h. (Ben Wing)
  • Refactor: Gutter geometry code. (Ben Wing)
  • Refactor: Link image code only when HAVE_WINDOW_SYSTEM. (Ben Wing)
  • Refactor: Lisp objects allocation/declaration simplified; documented in lrecord.h. (Ben Wing)
  • Refactor: Lisp objects get advertised API. Eliminate macros for copying, freeing, zeroing objects, getting their storage size. (Ben Wing)
  • Refactor: Move code and comments from lisp.h to text.h. (Ben Wing)
  • Refactor: Move creation of utf-8 coding system to unicode.c. (Ben Wing)
  • Refactor: Move gap array from extents.c to array.c. Extract dynarr, gap array and stack-like malloc into new file array.h. Rewrite range table code to use gap arrays. (Ben Wing)
  • Refactor: Move the Thai language environment and the TIS-620 coding system to mule/thai.el; add support for Microsoft's code page 874. (Aidan Kehoe)
  • Refactor: NEED_TO_HANDLE_21_4_CODE replacing the previous NO_NEED_TO_HANDLE_21_4_CODE. (Aidan Kehoe)
  • Refactor: Redo memory-usage mechanism. (Ben Wing)
  • Refactor: Reduce the number of words in an lcrecord from 3 to 2. New macro NORMAL_LISP_OBJECT_UID() abstracts out the differences between NEWGC and old-GC in accessing the `uid' value from a "normal Lisp Object pointer". (Ben Wing)
  • Refactor: Rename EXTERNAL_TO_C_STRING -> EXTERNAL_TO_ITEXT, EXTERNAL_TO_C_STRING_MALLOC -> EXTERNAL_TO_ITEXT_MALLOC, SIZED_EXTERNAL_TO_C_STRING -> SIZED_EXTERNAL_TO_ITEXT, SIZED_EXTERNAL_TO_C_STRING_MALLOC -> SIZED_EXTERNAL_TO_ITEXT_MALLOC, C_STRING_TO_EXTERNAL -> ITEXT_TO_EXTERNAL, C_STRING_TO_EXTERNAL_MALLOC -> ITEXT_TO_EXTERNAL_MALLOC, LISP_STRING_TO_EXTERNAL, LISP_STRING_TO_EXTERNAL_MALLOC, LISP_STRING_TO_TSTR, C_STRING_TO_TSTR -> ITEXT_TO_TSTR, TSTR_TO_C_STRING -> TSTR_TO_ITEXT and change to return result directly rather than as a "return parameter." Rename C_STRING_TO_SIZED_EXTERNAL -> ITEXT_TO_SIZED_EXTERNAL, LISP_STRING_TO_SIZED_EXTERNAL, C_STRING_TO_SIZED_EXTERNAL_MALLOC -> ITEXT_TO_SIZED_EXTERNAL_MALLOC, LISP_STRING_TO_SIZED_EXTERNAL_MALLOC. Eliminate SIZED_C_STRING macros in favor of TO_*TERNAL_FORMAT. (Ben Wing)
  • Refactor: Rename pixel_to_char_size -> pixel_to_frame_unit_size, char_to_pixel_size -> frame_unit_to_pixel_size, pixel_to_real_char_size -> pixel_to_char_size, char_to_real_pixel_size -> char_to_pixel_size. Reverse second and third arguments of change_frame_size(). Eliminate old round_size_to_char, and rename round_size_to_real_char -> round_size_to_char. The set_frame_size() method is now passed sizes in "frame units". (Ben Wing)
  • Refactor: Rename src/objects* -> src/fontcolor*. (Ben Wing)
  • Refactor: Rename the specifier-font-matching stages (Ben Wing)
  • Refactor: Rename write_c_string -> write_cistring, build_intstring -> build_istring, build_string -> build_cistring, build_ext_string -> build_extstring, make_ext_string -> make_extstring, buffer_insert_c_string -> buffer_insert_ascstring, intern_int -> intern_istring (Ben Wing)
  • Refactor: Rename: LISP_TO_VOID -> STORE_LISP_IN_VOID, VOID_TO_LISP -> GET_LISP_FROM_VOID. New functions STORE_VOID_IN_LISP and GET_VOID_FROM_LISP. Eliminate the use of make_opaque_ptr() in unwind_protect code. (Ben Wing)
  • Refactor: Rename: default_face_height_and_width -> default_face_width_and_height and reverse width/height arguments. (Ben Wing)
  • Refactor: Separate out regular and disksave finalization, with a separate object method `disksaver'. (Ben Wing)
  • Refactor: TTY mapper for faces gets 2 args. (Stephen Turnbull)
  • Refactor: USE_XFT* -> HAVE_XFT*. (Ben Wing)
  • Refactor: Unused or easily implemented functions Fsave_window_excursion, save_window_excursion_unwind removed. (Aidan Kehoe)
  • Refactor: Use #'string-to-number with the BASE argument instead of #'font-hex-string-to-number, #'display-warning instead of #'font-warn in font.el. (Aidan Kehoe)
  • Refactor: Use defcustom in cmdloop.el. (Aidan Kehoe)
  • Refactor: Use of syswindows.h. (Ben Wing)
  • Refactor: XLIKE contains code common to GTK and X (Ben Wing)
  • Refactor: XLIKE_get_gc takes a frame instead of a device as first argument. (Didier Verna)
  • Refactor: assert() improved to replace "if (...) ABORT()". (Ben Wing)
  • Refactor: bignum_butlast(). (Aidan Kehoe)
  • Refactor: change_frame_size_1(). Rename FRAME_BORDER_* to FRAME_INTERNAL_BORDER_*. Add FRAME_INTERNAL_BORDER_SIZE(). Add FRAME_REAL_TOOLBAR_BOUNDS() and top/left/bottom/right versions. Rewrite FRAME_*_BORDER_START and FRAME_*_BORDER_END. (Ben Wing)
  • Refactor: check_int_range() is now check_integer_range(), taking Lisp_Objects (and thus bignums). (Aidan Kehoe)
  • Refactor: cl-macs is loaded if cl-extra.el being loaded interpreted. (Aidan Kehoe)
  • Refactor: enum edge_pos (new) with TOP_EDGE, BOTTOM_EDGE, LEFT_EDGE, RIGHT_EDGE; subsume TOP_BORDER, TOP_GUTTER, enum toolbar_pos, enum gutter_pos, etc. New macro EDGE_POS_LOOP. New parameter NUM_EDGES. (Ben Wing)
  • Refactor: find-file-create-switch-thunk, new macro. (Aidan Kehoe)
  • Refactor: find/get_ccl_program() moved functionality out of several functions where it was duplicated. (Aidan Kehoe)
  • Refactor: iso-8859-2, windows-1250, iso-8859-3, iso-8859-4, iso-8859-14, iso-8859-15, iso-8859-16, iso-8859-9, macintosh, windows-1252, iso-8859-8, iso-8859-7, windows-1253, iso-8859-5, koi8-r, koi8-u, windows-1251, alternativnyj, koi8-ru, koi8-t, koi8-c, koi8-o, iso-8859-6, windows-1256 are of type fixed-width. (Aidan Kehoe)
  • Refactor: shortest_length_among_sequences, new function. (Aidan Kehoe)
  • Refactor: test-harness.el moved to lisp/. (Ben Wing)
  • Refactor: text_width() method takes a window instead of a frame. (Ben Wing)
  • Remove: #'cl-string-vector-equalp, #'cl-bit-vector-vector-equalp, #'cl-vector-array-equalp, #'cl-hash-table-contents-equalp, #'cl-mapcar-many. (Ben Wing)
  • Remove: Creation of windows-874 in mule/mule-win32-init.el. (Aidan Kehoe)
  • Remove: Deactivate obsolete code in X face initialization. (Didier Verna)
  • Remove: Dead code in cl.el. (Aidan Kehoe)
  • Remove: OffiX DND support (Jerry James)
  • Remove: PDWORD_PTR typedef (unused) from syswindows.h. (Aidan Kehoe)
  • Remove: Support for "old" GNU malloc. (Jerry James)
  • Remove: Support for emacs versions where keywords are not self-quoting. (Aidan Kehoe)
  • Remove: mule/thai-util.el, mule/thai-xtis.el. (Aidan Kehoe)

Testing and Debugging

  • Refactor: Clean up KKCC code related to DEBUG_XEMACS. New macros IF_OLD_GC(), IF_NEW_GC(). (Ben Wing)
  • New: valgrind debugging of allocation gets support. (Jerry James)
  • Improve: debug_can_access_memory. (Ben Wing)
  • Improve: Print more variables upon --debug-paths. (Mike Sperber)
  • Improve: Debug facilities. (Ben Wing)
  • Improve: 'debug-xemacs allows exit-to-debugger/assertion failure upon Lisp error during loadup. (Ben Wing)
  • Fix: Type consistency between debug and non-debug builds. (Ben Wing)
  • Fix: Conditionalize DEBUG_FONTS* definitions on DEBUG_XEMACS, provide empty definitions otherwise. (Didier Verna)
  • Improve: .gdbinit.in.in gets file argument to check-xemacs and check-temacs (Ben Wing)
  • Fix: lrecord_type_popup_data, lrecord_type_window_configuration from .gdbinit. (Aidan Kehoe)
  • Fix: Type detection in gdb pobj and friends. (Aidan Kehoe)
  • Fix: @srcdir@ correctness in .gdbinit.in.in (Ben Wing)
  • Improve: Generation of src/.gdbinit. (Ben Wing)
  • Fix: #'Check-Message comma syntax error. (Aidan Kehoe)
  • Fix: .dbxrc looks for test-harness.el in lisp directory. (Ben Wing)
  • Fix: Bignum expected errors. (Aidan Kehoe)
  • Fix: Check for fixed-width coding systems. (Aidan Kehoe)
  • Fix: Correct line endings in tests. (Ben Wing)
  • Fix: Don't check the fixed-width coding systems with odd line endings for ASCII-transparency. (Aidan Kehoe)
  • Fix: List of character sets in HELLO. (Aidan Kehoe, Ben Wing)
  • Fix: Operation of c-tests. (Ben Wing, Stephen Turnbull)
  • Fix: Restore mapping for scaron after testing. (Aidan Kehoe)
  • Fix: Results must not be written into source file. (Ben Wing)
  • Fix: Revert to the original language environment in tests. (Aidan Kehoe)
  • Fix: SXEmacs -> XEmacs in lisp-reader-tests.el. (Stephen Turnbull)
  • Fix: Set buffer of new file to be non-modified here before killing it. (Aidan Kehoe)
  • Fix: Syntax of tests for signaled errors. (Ben Wing)
  • Fix: Use utf-8 as file-name-coding-system under Cygwin 1.7+. (Ben Wing)
  • Fix: letf test passes. (Aidan Kehoe)
  • Improve: #'Assert. (Ben Wing, Stephen Turnbull, Aidan Kehoe)
  • Improve: #'test-harness-from-buffer reverses order of "got" and "expected" values. (Ben Wing)
  • Improve: Case tests. (Ben Wing)
  • Improve: Docs. (Ben Wing, Aidan Kehoe, Stephen Turnbull)
  • Improve: Refactor search and regexp tests, file tests. (Ben Wing)
  • Improve: Replace asserts in test-format-data-conversion. (Stephen Turnbull)
  • New: #'equalp hash table test, #'define-hash-table-test. (Aidan Kehoe)
  • New: #'equalp. (Aidan Kehoe)
  • New: #'functionp. (Aidan Kehoe)
  • New: #'generate-rounding-output (useful for generating data). (Aidan Kehoe)
  • New: #'mapcar, #'map and #'list-length throw malformed-list. (Aidan Kehoe)
  • New: #'nbutlast, #'butlast with dotted lists, #'ldiff, #'tailp with circular lists, dotted lists. (Aidan Kehoe)
  • New: #'reduce. (Aidan Kehoe)
  • New: (equal "hi there" [hi there]) => nil, not ==> error. (Aidan Kehoe)
  • New: Binding default-process-coding-system to nil. (Stephen Turnbull)
  • New: CODESYS in #'find-file is respected for files without content. (Aidan Kehoe)
  • New: Circularity checking with #'merge. (Aidan Kehoe)
  • New: Clearer error messages from image instantiation. (Aidan Kehoe)
  • New: Common Lisp-compatible multiple values. (Aidan Kehoe)
  • New: Common Lisp-compatible rounding functions. (Aidan Kehoe)
  • New: Control-1 search bug. (Ben Wing, Aidan Kehoe)
  • New: Discard of multiple values in #'mapcar. (Aidan Kehoe)
  • New: Format strings with %b. (Aidan Kehoe)
  • New: More tests of equalp. (Stephen Turnbull)
  • New: Printing symbols with names that look like ratios. (Aidan Kehoe)
  • New: Some multidimensional characters should not use boyer_moore(). (Aidan Kehoe)
  • New: Torture test for case mappings. (Ben Wing)
  • New: Unicode detection with very short inputs. (Aidan Kehoe)
  • New: Variables to control backtraces in tests. (Ben Wing)
  • New: Zero-length files get sane coding system. (Aidan Kehoe)
  • New: escape-quoted for the range U+0000 to U+00FF. (Stephen Turnbull)
  • New: reproduce-crashes.el #12, #13. (Adam Sjogren, Stephen Turnbull, Jerry James)
  • New: split-string-by-char. (Aidan Kehoe)
  • Remove: DLL/dltest.c. (Jerry James)
  • Remove: Unused binding. (Ben Wing)
  • Remove: auc-tex-test. (Jerry James)

ChangeLogs for XEmacs 21.5.30 "garlic"

goto announcement, summary, changes

ChangeLog Entries from ChangeLog

goto announcement, summary, changes


2011-04-26  Stephen J. Turnbull  <stephen@xemacs.org>

	* XEmacs 21.5.30 "garlic" is released.

2011-03-24  Jerry James  <james@xemacs.org>

	* INSTALL: "youself" -> "yourself".
	* aclocal.m4: "dependancy" -> "dependency".
	* configure.ac: "priveleges" -> "privileges".
	* configure: Regenerate.

2010-11-02  Mats Lidell  <matsl@xemacs.org>

	* netinstall: removed 

2010-06-14  Stephen J. Turnbull  <stephen@xemacs.org>

	* aclocal.m4: Add standard permission boilerplate.

2010-06-02  Aidan Kehoe  <kehoea@parhasard.net>

	* version.sh.in: 
	* configure.ac (XE_COMPLEX_ARG, XE_EXPAND_VARIABLE):
	Remove conditionals and information for InfoDock.

2010-04-09  Ben Wing  <ben@xemacs.org>

	* CHANGES-beta:
	Update with my changes to the trunk since the release of 21.5.29
	in 2009 up through April 9, 2010.

2010-04-02  Aidan Kehoe  <kehoea@parhasard.net>

	* CHANGES-beta:
	Update with my changes to the trunk since 2009-09-20.

2010-03-18  Ben Wing  <ben@xemacs.org>

	* CHANGES-beta:
	Partially updated with last couple of months worth of changes.

2010-03-18  Mike Sperber  <mike@xemacs.org>

	* INSTALL: Reflect change from `lib' to `share'; also, document
	how to invoke configure to get the old setting.

	* configure.ac: Set LATE_PACKAGE_DIRECTORIES_USER_DEFINED if
	`datadir' was changed; set `with_late_packages' to something
	sensible for this case.

2010-02-20  Ben Wing  <ben@xemacs.org>

	* configure.ac (XE_COMPLEX_ARG):
	Correct doc of --quick-build: It also doesn't check for Lisp shadows.

2010-02-08  Ben Wing  <ben@xemacs.org>

	* configure:
	* configure.ac (TAB):
	Various warnings that used to be present had mistakenly gotten
	turned off. Turn them back on.

2010-02-06  Ben Wing  <ben@xemacs.org>

	* configure:
	* configure.ac (AC_LANG):
	* configure.ac (TAB):
	Add AC_LANG(C++) defs in a way very similar to AC_LANG(C), inserting
	our own flags, compiler, etc.

	When using g++, if we found ndbm, check whether we can compile a
	file using g++ and ndbm.h, calling some DBM routines.  Currently, this
	fails because the prototypes in ndbm.h are incomplete, omitting the
	arguments, which doesn't work with g++.  When ndbm.h is bad, we don't
	include it and instead provide our own prototypes; otherwise, we
	define TRUST_NDBM_H_PROTOTYPES, which signals to use the ones in
	ndbm.h.

2010-01-31  Ben Wing  <ben@xemacs.org>

	* configure.ac (TAB):
	Say "This Xft feature" rather than just "This feature" to make it
	possible to more safely filter out the warning in my `runcc'
	script without the possibility of filtering out genuinely
	important warnings.
	* configure: Regenerate.

2010-01-23  Ben Wing  <ben@xemacs.org>

	* configure:
	* configure.ac (XE_COMPLEX_ARG):
	Expand the help for --with-debug to describe more specifically what
	exactly gets turned on.  Expand the help for --with-error-checking
	to describe all the possible arguments, including `all', `none',
	`noFOO', multiple arguments, etc.

	Change so that `--with-error-checking' is the same as
	`--with-error-checking=all'.  Currently, `--with-error-checking' has
	no effect at all!  It just means "leave all error-checking for
	specific classes to their default values", which are "maybe", and
	get converted to "yes" or "no" depending on whether we are running
	a beta XEmacs.

2010-01-24  Ben Wing  <ben@xemacs.org>

	* configure: Rebuild.

2010-01-24  Ben Wing  <ben@xemacs.org>

	* aclocal.m4 (XE_SHLIB_STUFF):
	Use -export-all-symbols instead of -export-dynamic on PE targets
	(Cygwin and MinGW).
	
	* configure.ac (XE_EXPAND_VARIABLE):
	* configure.ac (TAB):
	Create variable XEMACS_CC_GPP to check whether we're running g++.
	Don't just check for an executable called `g++' -- it might be
	called g++-4 or whatever.  Instead, check for either named `g++*'
	or claiming to be g++ when called with --version.  Rewrite code do
	use the variable.

	Add -fno-strict-aliasing to optimization flags when GCC and
	optimized, and in all cases with g++, since under these circumstances
	strict aliasing is otherwise assumed, and XEmacs can't easily be
	made to respect its restrictions.

	* configure: Regenerate.
	
	

2010-02-01  Ben Wing  <ben@xemacs.org>

	* configure:
	* configure.ac (TAB):
	USE_XFT* -> HAVE_XFT*.

2010-01-14  Ben Wing  <ben@xemacs.org>

	* PROBLEMS:
	Add description of crash on recent Cygwin 1.7 when using C++, NEWGC
        and optimization.

2010-01-16  Aidan Kehoe  <kehoea@parhasard.net>

	* configure: Regenerate, now we no longer look for rint().

2010-01-20  Ben Wing  <ben@xemacs.org>

	* Makefile.in.in:
	* Makefile.in.in (GENERATED_HEADERS):
	* Makefile.in.in (.PHONY):
	* Makefile.in.in (src/.gdbinit):
	* configure:
	* configure.ac (TAB):
	etc/gdbinit.in has been moved to src/.gdbinit.in.in.  Reflect
	this -- generate src/.gdbinit.in from src/.gdbinit.in.in, and
	use the normal mechanism for doing so instead of copying it
	specially.

	Add target for `config-changed' and pass down to `src'.
	Move some PHONY declarations to just before the actual targets.

2010-01-16  Aidan Kehoe  <kehoea@parhasard.net>

	* configure: Regenerate, now we no longer look for rint().

2010-01-13  Jerry James  <james@xemacs.org>

	* configure.ac: Update comment about Cygwin and pdump.

2010-01-13  Ben Wing  <ben@xemacs.org>

	* Makefile.in.in (fix-perms):
	Add target for fix-perms.  Run it to correct permissions.

	* INSTALL:
	* PROBLEMS:
	* configure:
	* configure.ac (XE_COMPLEX_ARG):
	* configure.ac (XE_EXPAND_VARIABLE):
	* configure.ac (TAB):
	Rename all instances of enable-FOO to with-FOO.  enable-FOO has long
	been aliased to with-FOO and we still preserve this, but formerly
	we randomly used enable-FOO but with-BAR.

2010-01-11  Ben Wing  <ben@xemacs.org>

	* configure:
	* configure.ac (TAB):
	Add check for cygwin_conv_path().

2010-01-11  Ben Wing  <ben@xemacs.org>

	* configure:
	* configure.ac (TAB):
	Define USE_GPLUSPLUS when compiling with g++.

2010-01-06  Jerry James  <james@xemacs.org>

	* configure.ac: Add --with-valgrind option.
	* configure: Regenerate.

2009-12-21  Jerry James  <james@xemacs.org>

	* INSTALL: Remove references to OffiX.
	* configure.ac: Remove support for OffiX drag-and-drop.
	* configure: Regenerate.

2009-12-21  Jerry James  <james@xemacs.org>

	* INSTALL: Replace reference to yow.

2009-12-18  Jerry James  <james@xemacs.org>

	* INSTALL: Remove reference to rcs-checkin.

2009-12-18  Jerry James  <james@xemacs.org>

	* build-msw-release.sh: Add copyright and GPL v2 or later header
	with permission of Andy Piper.

2009-12-09  Jerry James  <james@xemacs.org>

	* INSTALL: Remove description of --without-xmu option.
	* configure.ac: Remove --with[out]-xmu option.  Issue informative
	error message if libXmu cannot be found.  Change all Xmu-related
	tests to assume Xmu is present.
	* configure: Regenerate.

2009-12-01  Mike Alexander  <mta@umich.edu>

	* configure.ac: Make --with-database={dbm|gdbm} work again, it's
	testing $ndbm_h_found which is never set.
	* configure: ditto

2009-11-10  Jerry James  <james@xemacs.org>

	* Makefile.in.in: Remove dynodump support.  Delete out-of-date comment
	about Xenix.
	* aclocal.m4: Remove support for old operating systems.
	* configure.ac: Remove support for old machines and operating systems.
	Remove support for dynodump.
	(COFF_ENCAPSULATE) Remove, unused.
	* configure: Regenerate.
	* dynodump: Remove.

2009-11-18  Stephen J. Turnbull  <stephen@xemacs.org>

	* PROBLEMS: Describe duplicate symbol warnings on Mac OS X.

2009-11-11  Stephen Turnbull  <stephen@xemacs.org>

	* configure.ac (SYSTEM_MALLOC): Use system malloc on darwin.
	(USE_PARAM_H): #include <sys/param.h> to do needed #defines.

2009-11-09  Jerry James  <james@xemacs.org>

	* configure.ac: Don't define GNU_MALLOC, as there is no longer an
	"old" GNU malloc.

2009-10-05  Jerry James  <james@xemacs.org>

	* configure.ac: Check for external giflib instead of using builtin
	gif support.  Remove "(builtin)" from relevant strings.

2009-07-31  Stephen Turnbull  <stephen@xemacs.org>

	* configure.ac (HAVE_DBM): Use gdbm/ndbm.h if needed.
	Thanks to Karl Kleinpaste for the report.

2009-07-28  Mike Sperber  <mike@xemacs.org>

	* Makefile.in.in: Don't install silly symlinks when $(prefix) !=
	$(exec_prefix).

2009-07-28  Mike Sperber  <mike@xemacs.org>

	* configure.ac: Expand @PREFIX@ in paths.h.

2009-07-28  Mike Sperber  <mike@xemacs.org>

	* configure.ac: More accurate tests if paths have been set
	explicitly on the configure command line.

2009-07-26  Stephen J. Turnbull  <stephen@xemacs.org>

	* configure.ac (XE_MERGED_ARG): Use correct separator when
	registering options to _AC_USER_OPTS.

ChangeLog Entries from etc/ChangeLog

goto announcement, summary, changes


2011-04-26  Stephen J. Turnbull  <stephen@xemacs.org>

	* XEmacs 21.5.30 "garlic" is released.

2010-06-13  Stephen J. Turnbull  <stephen@xemacs.org>

	* unicode/other/lao.txt:
	* tests/external-widget/Makefile:
	* tests/external-widget/test-ew-motif:
	* tests/external-widget/test-ew-xlib:
	* custom/example-themes/example-theme.el:
	* custom/example-themes/europe-theme.el:
	Correct FSF address in permission notice.

2010-02-22  Ben Wing  <ben@xemacs.org>

	* dbxrc.in:
	Rename objects.c -> fontcolor.c.

2010-02-22  Ben Wing  <ben@xemacs.org>

	* dbxrc.in:
	test-harness.el is in lisp directory now.

2010-01-28  Jerry James  <james@xemacs.org>

	* tests/external-widget/Makefile: Add copyright and license
	boilerplate text based on Ben's recollection.
	* tests/external-widget/test-ew-motif.c: Ditto.
	* tests/external-widget/test-ew-xlib.c: Ditto.
	* unicode/other/lao.txt: Ditto.

2010-01-26  Aidan Kehoe  <kehoea@parhasard.net>

	* HELLO: Encode the Arabic in arabic-iso8859-6 once more; delete
	the old, experimentally-encoded Thai.

2010-01-04  Jerry James  <james@xemacs.org>

	* Emacs.ad: Change /usr/lib/X11 to /usr/share/X11.
	* xemacs.1: Ditto.

2009-12-18  Jerry James  <james@xemacs.org>

	* idd/drop: Remove.
	* idd/dropmsk: Remove.

2009-12-10  Jerry James  <james@xemacs.org>

	* sparcworks/SW.Editor.xpm: Remove obsolete file.
	* sparcworks/sunpro-mailcap: Ditto.
	* sparcworks: Remove empty directory.

2009-12-03  Jerry James  <james@xemacs.org>

	* custom/example-themes/europe-theme.el:
	* custom/example-themes/example-theme.el: Add copyright and GPL
	notices as authorized by Jan Vroonhof.

2009-06-14  Aidan Kehoe  <kehoea@parhasard.net>

	* gdbinit.in: 
	Supply variables for the Lisp_Type_Record, Lisp_Type_Char
	type information, for the sake of various versions of GDB that
	can't take them from the enum vals in the executable. Use those
	variables instead of the enums.

ChangeLog Entries from lib-src/ChangeLog

goto announcement, summary, changes


2011-04-26  Stephen J. Turnbull  <stephen@xemacs.org>

	* XEmacs 21.5.30 "garlic" is released.

2011-01-15  Mike Sperber  <mike@xemacs.org>

	* fakemail.c: #include <osreldate.h> on FreeBSD, since we no
	longer have freebsd.h.

2010-06-14  Stephen J. Turnbull  <stephen@xemacs.org>

	* gnuserv.c:
	* gnuserv.h:
	* gnuslib.c:
	Add standard permission boilerplate.

	* ad2c:
	Add copyright notices based on internal evidence.

2010-06-14  Stephen J. Turnbull  <stephen@xemacs.org>

	* cvtmail.c:
	* fakemail.c:
	* make-path.c:
	* profile.c:
	* tcp.c:
	Fix typo (doubled phrase) in permission notice.

2010-06-13  Stephen J. Turnbull  <stephen@xemacs.org>

	* ad2c: Correct FSF address in permission notice.

2010-06-02  Aidan Kehoe  <kehoea@parhasard.net>

	* gnuclient.c (main):
	If gnuclient was built with GTK support, and is asking a gnuserv
	without GTK support to open a frame, fall back to X11, don't
	throw an error on the server side, invisible to the client.

2010-04-17  Aidan Kehoe  <kehoea@parhasard.net>

	* make-docfile.c (scan_lisp_file):
	Even if a function doesn't have a doc string, store its file name
	in DOC.

2010-03-02  Ben Wing  <ben@xemacs.org>

	* digest-doc.c:
	* make-path.c:
	`emacs' isn't defined, but HAVE_CONFIG_H is, so use it to get
	config.h.
	
	* getopt.h:
	Conditionalize on HAVE_CONFIG_H to get real prototypes.

2010-02-25  Ben Wing  <ben@xemacs.org>

	* make-docfile.c:
	* make-docfile.c (write_c_args):
	Convert newlines to spaces so that argument lists are always on one
	line, because that's what function-documentation-1 expects.

2010-02-11  Vin Shelton  <acs@xemacs.org>
 
 	* winclient.c: Bump connection retries to 20 because some people
	have long startup files.
	(openConversation): If CreateProcess cannot find
 	xemacs.exe, try again with the name of the version-specific
 	executable.  This is useful because the cygwin version of XEmacs
 	doesn't install an xemacs.exe executable.
	(parseCommandLine): Fix tracker issue 675 - add current	directory
	to filenames under cygwin. 

2010-01-26  Ben Wing  <ben@xemacs.org>

	* make-msgfile.lex: Vague hacking on this file, insert a comment
	about what should be done if we ever want this to work.

2010-01-24  Ben Wing  <ben@xemacs.org>

	* fakemail.c (args_size):
	* fakemail.c (parse_header):
	* ootags.c (C_entries):
	Fix warnings about possible use of uninitialized vars.

2010-02-01  Vin Shelton  <acs@xemacs.org>

	* make-mswin-unicode.pl: Add description of override.

2010-01-30  Ben Wing  <ben@xemacs.org>

	* make-mswin-unicode.pl:
	Make it possible to specify an overridden prototype in cases where
	either Cygwin or Visual Studio has errors in their headers that
	can be corrected by falling back to a less qualified type (typically
	without const).

2010-01-28  Jerry James  <james@xemacs.org>

	* Makefile.in.in: Remove make-msgfile and make-po rules.
	* make-msgfile.c: Removed, obsolete code.
	* make-po.c: Removed, obsolete code.

2010-01-15  Ben Wing  <ben@xemacs.org>

	* make-mswin-unicode.pl:
	Process the command `review'.  Cause an error to happen if we try to
	use the command, indicating that the command needs review to determine
	how to handle it.

2010-01-15  Ben Wing  <ben@xemacs.org>

	* make-mswin-unicode.pl:
	Various fixes to get this to work when using the Cygwin header files
	in /usr/include/w32api instead of the VC++ ones:
	-- Use /usr/include/w32api as default; don't assume that a passed-in
	   directory always ends in .../include.
	-- Add `const' to list of known type modifiers.
	-- If function already seen, warn but don't generate twice.
	-- Eliminate `extern' from return type modifiers.
	-- Cosmetic: When eliminating APIENTRY, also eliminate following
	   whitespace.

2010-01-13  Ben Wing  <ben@xemacs.org>

	* fix-perms.sh: New file.

2009-12-21  Jerry James  <james@xemacs.org>

	* Makefile.in.in: Remove rules for building yow.
	* yow.c: Removed.

2009-12-18  Jerry James  <james@xemacs.org>

	* Makefile.in.in: Don't install rcs-checkin.
	* rcs-checkin: Remove obsolete file.

2009-12-18  Jerry James  <james@xemacs.org>

	* installexe.sh: Add copyright and GPL v2 or later header with
	permission of Andy Piper.

2009-12-15  Jerry James  <james@xemacs.org>

	* ad2c: Add GPL v2 or later notice with permission of George Ferguson.
	See the xemacs-beta thread beginning with message
	<870180fe0912090940mac19378ydab5b5a04bf06cf8@mail.gmail.com>.

2009-12-15  Jerry James  <james@xemacs.org>

	* Makefile.in.in: Remove build dependency and rule for wakeup.  Thanks
	to Mats Lidell for the patch.

2009-12-10  Jerry James  <james@xemacs.org>

	* gnudepend.pl: Remove obsolete file.
	* leditcfns.c: Ditto.
	* wakeup.c: Ditto.

2009-12-08  Sjoerd Mullender  <sjoerd@acm.org>

	* etags.c (absolute_filename): Use memmove instead of strcpy to move
	characters within a string.

2009-11-10  Jerry James  <james@xemacs.org>

	* fakemail.c (MAIL_PROGRAM_NAME): No s&m files define this now, so
	make it unconditional.
	(main): Make mail_program_name const, since it is never read, and drop
	a bogus cast as a result.
	* gnuclient.c (main): Remove reference to hp9000s300.
	* gnuserv.h: BSD4_1 is not defined on any supported system.

2009-10-26  Jerry James  <james@xemacs.org>

	* insert-data-in-exec.c: Add BSD header, with permission of
	Olivier Galibert.  See xemacs-beta message with ID
	<20091013224104.GA2573@dspnet.fr.eu.org>.

2009-08-15  It's me FKtPp ;)  <m_pupil@yahoo.com.cn>

	* gnuclient.c (main): Do not set start point position if user
	didn't requested to do so

2009-07-28  Stephen Turnbull  <stephen@xemacs.org>

	* make-docfile.c (write_c_args): Parse UNUSED and USED_IF right.

ChangeLog Entries from lisp/ChangeLog

goto announcement, summary, changes


2011-04-26  Stephen J. Turnbull  <stephen@xemacs.org>

	* XEmacs 21.5.30 "garlic" is released.

2011-04-24  Aidan Kehoe  <kehoea@parhasard.net>

	* cl-macs.el (symbol-macrolet):
	* cl-macs.el (lexical-let):
	* cl.el:
	* cl.el (cl-macroexpand):
	Distinct symbol macros with identical string names should
	nonetheless expand to different things; implement this, storing
	the symbol's eq-hash in the macro environment, rather than its
	string name.

2011-04-23  Aidan Kehoe  <kehoea@parhasard.net>

	* cl-extra.el (define-char-comparisons):
	Add type-checking when the various character-specific comparison
	predicates are used; don't check types if
	byte-compile-delete-errors is non-nil at compile-time, instead use
	the corresponding built-in numeric byte codes.

2011-04-23  Aidan Kehoe  <kehoea@parhasard.net>

	* font.el:
	* font.el (font-warn): Removed.
	* font.el (font-hex-string-to-number): Removed.
	* font.el (internal-facep):
	* font.el (font-lookup-rgb-components):
	* font.el (font-parse-rgb-components):
	Use #'string-to-number with the BASE argument instead of
	#'font-hex-string-to-number, #'display-warning instead of
	#'font-warn.
	This entire file smells bitrotted, with lots of functions of very
	little relevance to XEmacs, but addressing that is more work than
	I can do today.

2011-04-17  Aidan Kehoe  <kehoea@parhasard.net>

	* cl-extra.el:
	* cl-extra.el ('char<): New.
	* cl-extra.el ('char>=): New.
	* cl-extra.el ('char>): New.
	* cl-extra.el ('char<=): New.
	* cl-extra.el (alpha-char-p): New.
	* cl-extra.el (graphic-char-p): New.
	* cl-extra.el (standard-char-p): New.
	* cl-extra.el (char-name): New.
	* cl-extra.el (name-char): New.
	* cl-extra.el (upper-case-p): New.
	* cl-extra.el (lower-case-p): New.
	* cl-extra.el (both-case-p): New.
	* cl-extra.el (char-upcase): New.
	* cl-extra.el (char-downcase): New.
	* cl-extra.el (integer-length): New.
	Add various functions dealing (mainly) with characters, making
	some Common Lisp code easier to port.
	* descr-text.el (describe-char-unicode-data):
	Add an autoload for this function, used by #'char-name.

2011-04-12  Aidan Kehoe  <kehoea@parhasard.net>

	* mule/mule-win32-init.el (windows-874):
	No longer create this coding system, now it's provided by thai.el;
	thanks for the report of the associated Win32 build problem, Mats!

2011-04-08  Aidan Kehoe  <kehoea@parhasard.net>

	* unicode.el (load-unicode-tables):
	No longer include thai-xtis in the default Unicode precedence list.
	* mule/thai.el:
	* mule/thai.el (tis-620):
	* mule/thai.el (windows-874):
	* mule/thai.el ("Thai"):
	Move the Thai language environment and the TIS-620 coding system
	to this file; add support for Microsoft's code page 874.
	* mule/thai-util.el:
	* mule/thai-xtis.el:
	Remove these two files; XTIS was always non-standard and was never
	widely implemented, and we've never supported the character
	composition necessary for thai-util.el.
	* dumped-lisp.el (preloaded-file-list):
	Drop thai-xtis, dump thai.el instead.

2011-04-02  Aidan Kehoe  <kehoea@parhasard.net>

	* cl.el (cadr, caddr, cadddr):
	Document some equivalences for these functions.

2011-04-02  Aidan Kehoe  <kehoea@parhasard.net>

	* bytecomp.el (byte-compile-output-preface): New.
	* bytecomp.el (byte-compile-output-file-form):
	* bytecomp.el (byte-compile-output-docform):
	* bytecomp.el (byte-compile-file-form):
	* bytecomp.el (byte-compile-file-form-defmumble):
	* bytecomp.el (symbol-value):
	* bytecomp.el (byte-compile-symbol-value): New.
	* cl-macs.el (load-time-value):
	No longer implement load-time-value by very hackishly redefining
	#'byte-compile-file-form-defmumble, instead make the appropriate
	changes in #'byte-compile-file-form-defmumble and
	#'byte-compile-file-form instead. We also add a specific byte-compile
	method for #'symbol-value, using the add-properties-to-a-gensym
	approach that worked for #'block and #'return-from.

2011-03-29  Aidan Kehoe  <kehoea@parhasard.net>

	* cl-extra.el (cl-finite-do, cl-float-limits):
	Don't make these available as functions in the dumped image, since
	they're only called at dump time.
	* obsolete.el (cl-float-limits):
	Make this an alias to #'identity (since it's called at dump time),
	mark it as obsolete in 21.5.

2011-03-29  Aidan Kehoe  <kehoea@parhasard.net>

	* cl.el:
	* cl.el (least-positive-float):
	* cl.el (least-positive-normalized-float):
	* cl.el (least-negative-normalized-float):
	* cl.el (float-epsilon):
	* cl.el (float-negative-epsilon):
	Document some previously-undocumented float constants here.
	* cl.el (oddp):
	* cl.el (evenp):
	Change numeric comparison to use #'eql instead of #'eq in
	passing.

2011-03-24  Jerry James  <james@xemacs.org>

	* cl-macs.el (loop): "arbitary" -> "arbitrary".
	* coding.el (force-coding-system-equivalency): "compatiblity" ->
	"compatibility".
	* cus-edit.el (custom-variable-pre-reset-standard): "explictly" ->
	"explicitly" and fix grammar.
	(custom-face-pre-reset-standard): "explictly" -> "explicitly".
	* etags.el (pop-tag-mark): "seperate" -> "separate".
	* files.el (make-temp-file): "analagous" -> "analogous".
	* font-menu.el (font-menu-ignore-scaled-fonts): "noticably" ->
	"noticeably".
	* fontconfig.el (fc-pattern-get-or-compute-size): "unsucessful" ->
	"unsuccessful".
	* gnome-widgets.el: "writen" -> "written", "choosed" -> "chosen",
	"existance" -> "existence".
	* gtk-ffi.el (gtk-ffi-debug): "wiht" -> "with".
	* gtk-widgets.el: "wil" -> "will", "occure" -> "occur", "efficent" ->
	"efficient", "mannor" -> "manner", "negitive" -> "negative",
	"particulary" -> "particularly".
	* info.el (Info-suffixed-file): "independantly" -> "independently".
	* minibuf.el (minibuffer): "Controling" -> "Controlling".
	* mule/ccl.el (define-ccl-program): "correponding" -> "corresponding".
	* mule/indian.el: "apperance" -> "appearance" and correct grammar.
	* mule/kinsoku.el (kinsoku-process-extend): "permissable" ->
	"permissible", "deliberatly" -> "deliberately", and correct grammar.
	(kinsoku-process-shrink): "permissable" -> "permissible".
	* mule/lao-util.el (lao-vowel-reordering-rule): "follwoing" ->
	"following", "alwasy" -> "always".
	(lao-transcribe-single-roman-syllable-to-lao): "beggining" ->
	"beginning".
	* mule/latin.el: "idiosyncracy" -> "idiosyncrasy".
	* mule/thai-util.el: "repetion" -> "repetition".
	* package-get.el (package-get-require-base): "explictly" ->
	"explicitly".
	* packages.el (packages-find-package-data-path): "hierachies" ->
	"hierarchies".
	* paragraphs.el (use-hard-newlines): "preceeding" -> "preceding".
	* startup.el (command-line): "intial" -> "initial".
	* toolbar-itmes.el (toolbar-news): "Unkown" -> "Unknown".

2011-03-24  Aidan Kehoe  <kehoea@parhasard.net>

	* custom.el (custom-add-to-group):
	Warn if adding an option to the nil group; this is usually an
	error on the part of the programmer.
	* cmdloop.el (suggest-key-bindings):
	Specify a group for this variable, it didn't previously have one.

2011-03-21  Aidan Kehoe  <kehoea@parhasard.net>

	* cl-macs.el (revappend, nreconc):
	Add compiler macros for these two functions. (They used to be
	inline, but that involves needless binding of the arguments.)

2011-03-21  Aidan Kehoe  <kehoea@parhasard.net>

	* cl-macs.el (cl-non-fixnum-number-p):
	This should return t under 64-bit builds for fixnums that would
	be bignums on a 32-bit machine; make it so.

2011-03-19  Stephen J. Turnbull  <stephen@xemacs.org>

	* faces.el (face-spec-set-match-display):
	Protect against `display-color-cells' returning nil.
	Delete unreferenced let-binding of `min-colors'.

2011-03-17  Aidan Kehoe  <kehoea@parhasard.net>

	* bytecomp.el (byte-compile-catch):
	* bytecomp.el (byte-compile-throw):
	Correct some minor problems in my last change. Happy St. Patrick's
	day, everyone!

2011-03-17  Aidan Kehoe  <kehoea@parhasard.net>

	* bytecomp.el (byte-compile-catch):
	* bytecomp.el (byte-compile-throw):
	* cl-macs.el (return-from):
	With `block' and `return-from', a nil NAME is perfectly
	legitimate, and the corresponding `catch' statements need be
	removed by the byte-compiler. 5dd1ba5e0113 , my change of
	2011-02-12, didn't do this; correct that now.

2011-03-15  Aidan Kehoe  <kehoea@parhasard.net>

	* bytecomp.el:
	Don't generate the old-eq, old-memq, old-equal bytecodes any more,
	but keep the information about them around for the sake of the
	disassembler.

2011-03-14  Jeff Sparkes  <jsparkes@gmail.com>

	* custom.el (defface): Document `min-colors' specifier.

	* faces.el (face-spec-set-match-display): Add `min-colors'
	specifer for defface.

2011-03-12  Aidan Kehoe  <kehoea@parhasard.net>

	* isearch-mode.el (isearch-mode-map):
	Document why we bind the ASCII characters to isearch-printing-char
	in more detail.
	* isearch-mode.el (isearch-maybe-frob-keyboard-macros):
	If `this-command' is nil and the keys typed would normally be
	bound to `self-insert-command' in the global map, force
	`isearch-printing-char' to be called with an appropriate value for
	last-command-event. Addresses an issue where searching for
	characters generated from x-compose.el and XIM threw errors for me
	in dired.

2011-03-10  Aidan Kehoe  <kehoea@parhasard.net>

	* etags.el (buffer-tag-table-list):
	* files.el (find-file-read-only):
	* files.el (find-file-read-only-other-window):
	* info.el (Info-dir-outdated-p):
	* info.el (Info-dump-dir-entries):
	* info.el (Info-rebuild-dir):
	* menubar-items.el (default-menubar):
	* mouse.el (drag-window-divider):
	* mouse.el (vertical-divider-map):
	* test-harness.el (emacs-lisp-file-regexp):
	Eliminate byte-compile warnings, again aside from those linked to
	Stephen's various non-defined fontconfig functions.

2011-03-10  Aidan Kehoe  <kehoea@parhasard.net>

	* cmdloop.el (yes-or-no-p):
	* cmdloop.el (y-or-n-p):
	* descr-text.el (describe-char):
	* diagnose.el (show-memory-usage):
	* diagnose.el (show-object-memory-usage-stats):
	* diagnose.el (show-mc-alloc-memory-usage):
	* diagnose.el (show-gc-stats):
	* faces.el (face-font-instance):
	* gtk-font-menu.el (gtk-reset-device-font-menus):
	* help.el (help-symbol-function-context-menu):
	* help.el (help-symbol-variable-context-menu):
	* help.el (help-symbol-function-and-variable-context-menu):
	* help.el (help-find-source-or-scroll-up):
	* help.el (help-mouse-find-source-or-track):
	* help.el (temp-buffer-resize-mode):
	* minibuf.el (mouse-read-file-name-1):
	* obsolete.el (find-non-ascii-charset-string):
	* obsolete.el (find-non-ascii-charset-region):
	* occur.el (occur-engine):
	* paragraphs.el (forward-paragraph):
	* paragraphs.el (forward-sentence):
	* select.el (activate-region-as-selection):
	* select.el (select-make-extent-for-selection):
	* simple.el (zmacs-make-extent-for-region):
	Use quote, not function, for quoting symbols that may not be
	fboundp at the point they are read (again, a style issue, since
	Common Lisp throws an error on this, but we don't, and have no
	plans to.)

2011-03-08  Aidan Kehoe  <kehoea@parhasard.net>

	* cl-macs.el:
	* cl-macs.el (loop):
	* cl-macs.el (cl-expand-do-loop):
	* cl-macs.el (shiftf):
	* cl-macs.el (rotatef):
	* cl-macs.el (assert):
	* cl-macs.el (cl-defsubst-expand):
	* etags.el (buffer-tag-table-list):
	* frame.el:
	* frame.el (frame-notice-user-settings):
	* frame.el (minibuffer-frame-list):
	* frame.el (get-frame-for-buffer-noselect):
	Use Common Lisp-derived builtins in a few more places, none of
	them performance-critical, but the style is better.

2011-03-08  Aidan Kehoe  <kehoea@parhasard.net>

	* buff-menu.el (list-buffers-noselect):
	* byte-optimize.el (byte-optimize-identity):
	* byte-optimize.el (byte-optimize-if):
	* byte-optimize.el (byte-optimize-nth):
	* byte-optimize.el (byte-optimize-nthcdr):
	* bytecomp.el (byte-compile-warn-wrong-args):
	* bytecomp.el (byte-compile-two-args-19->20):
	* bytecomp.el (byte-compile-list):
	* bytecomp.el (byte-compile-beginning-of-line):
	* bytecomp.el (byte-compile-set):
	* bytecomp.el (byte-compile-set-default):
	* bytecomp.el (byte-compile-values):
	* bytecomp.el (byte-compile-values-list):
	* bytecomp.el (byte-compile-integerp):
	* bytecomp.el (byte-compile-multiple-value-list-internal):
	* bytecomp.el (byte-compile-throw):
	* cl-macs.el (cl-do-arglist):
	* cl-macs.el (cl-parse-loop-clause):
	* cl-macs.el (multiple-value-bind):
	* cl-macs.el (multiple-value-setq):
	* cl-macs.el (get-setf-method):
	* cmdloop.el (command-error):
	* cmdloop.el (y-or-n-p-minibuf):
	* cmdloop.el (yes-or-no-p-minibuf):
	* coding.el (unencodable-char-position):
	* cus-edit.el (custom-face-prompt):
	* cus-edit.el (custom-buffer-create-internal):
	* cus-edit.el (widget-face-action):
	* cus-edit.el (custom-group-value-create):
	* descr-text.el (describe-char-unicode-data):
	* dialog-gtk.el (popup-builtin-question-dialog):
	* dragdrop.el (experimental-dragdrop-drop-log-function):
	* dragdrop.el (experimental-dragdrop-drop-mime-default):
	* easymenu.el (easy-menu-add):
	* easymenu.el (easy-menu-remove):
	* faces.el (read-face-name):
	* faces.el (set-face-stipple):
	* files.el (file-name-non-special):
	* font.el (font-combine-fonts):
	* font.el (font-set-face-font):
	* font.el (font-parse-rgb-components):
	* font.el (font-rgb-color-p):
	* font.el (font-color-rgb-components):
	* gnuserv.el (gnuserv-edit-files):
	* help.el (key-or-menu-binding):
	* help.el (function-documentation-1):
	* help.el (function-documentation):
	* info.el (info):
	* isearch-mode.el (isearch-exit):
	* isearch-mode.el (isearch-edit-string):
	* isearch-mode.el (isearch-*-char):
	* isearch-mode.el (isearch-complete1):
	* ldap.el (ldap-encode-country-string):
	* ldap.el (ldap-decode-string):
	* minibuf.el (read-file-name-internal-1):
	* minibuf.el (read-non-nil-coding-system):
	* minibuf.el (get-user-response):
	* mouse.el (drag-window-divider):
	* mule/ccl.el:
	* mule/ccl.el (ccl-compile-if):
	* mule/ccl.el (ccl-compile-break):
	* mule/ccl.el (ccl-compile-repeat):
	* mule/ccl.el (ccl-compile-write-repeat):
	* mule/ccl.el (ccl-compile-call):
	* mule/ccl.el (ccl-compile-end):
	* mule/ccl.el (ccl-compile-read-multibyte-character):
	* mule/ccl.el (ccl-compile-write-multibyte-character):
	* mule/ccl.el (ccl-compile-translate-character):
	* mule/ccl.el (ccl-compile-mule-to-unicode):
	* mule/ccl.el (ccl-compile-unicode-to-mule):
	* mule/ccl.el (ccl-compile-lookup-integer):
	* mule/ccl.el (ccl-compile-lookup-character):
	* mule/ccl.el (ccl-compile-map-multiple):
	* mule/ccl.el (ccl-compile-map-single):
	* mule/devan-util.el (devanagari-compose-to-one-glyph):
	* mule/devan-util.el (devanagari-composition-component):
	* mule/mule-cmds.el (finish-set-language-environment):
	* mule/viet-util.el:
	* mule/viet-util.el (viet-encode-viscii-char):
	* multicast.el (open-multicast-group):
	* newcomment.el (comment-quote-nested):
	* newcomment.el (comment-region):
	* newcomment.el (comment-dwim):
	* regexp-opt.el (regexp-opt-group):
	* replace.el (map-query-replace-regexp):
	* specifier.el (derive-device-type-from-tag-set):
	* subr.el (skip-chars-quote):
	* test-harness.el (test-harness-from-buffer):
	* test-harness.el (batch-test-emacs):
	* wid-edit.el (widget-choice-action):
	* wid-edit.el (widget-symbol-prompt-internal):
	* wid-edit.el (widget-color-action):
	* window-xemacs.el (push-window-configuration):
	* window-xemacs.el (pop-window-configuration):
	* window.el (quit-window):
	* x-compose.el (electric-diacritic):
	It's better style, and cheaper (often one assembler instruction
	vs. a C funcall in the byte code), to use `eql' instead of `='
	when it's clear what numerical type a given result will be. Change
	much of our code to do this, with the help of a byte-compiler
	change (not comitted) that looked for calls to #'length (which
	always returns an integer) in its args.

2011-03-08  Aidan Kehoe  <kehoea@parhasard.net>

	* format.el (format-delq-cons): Removed.
	* format.el (format-make-relatively-unique): Removed.
	* format.el (format-common-tail): Removed.
	* format.el (format-reorder): Removed.
	* format.el (format-annotate-region):
	* format.el (format-annotate-single-property-change):
	* format.el (format-annotate-atomic-property-change):
	Remove various functions from this file that re-implemented Common
	Lisp functions that we have built-in.

2011-03-08  Aidan Kehoe  <kehoea@parhasard.net>

	* select.el (selection-preferred-types):
	* select.el (cut-copy-clear-internal):
	* select.el (create-image-functions):
	* select.el (select-convert-from-image/gif):
	* select.el (select-convert-from-image/jpeg):
	* select.el (select-convert-from-image/png):
	* select.el (select-convert-from-image/tiff):
	* select.el (select-convert-from-image/xpm):
	* select.el (select-convert-from-image/xbm):
	* select.el (selection-converter-in-alist):
	Make my Lisp a little more sophisticated in this file.

2011-03-08  Aidan Kehoe  <kehoea@parhasard.net>

	* package-ui.el (pui-add-required-packages):
	* packages.el (packages-handle-package-dumped-lisps):
	* bytecomp-runtime.el (byte-compile-with-fboundp):
	* bytecomp-runtime.el (globally-declare-fboundp):
	* bytecomp-runtime.el 
	(byte-compile-with-byte-compiler-warnings-suppressed):
	* mule/devan-util.el (devanagari-reorder-glyphs-for-composition):
	* mule/devan-util.el (devanagari-compose-to-one-glyph):
	* mule/japanese.el:
	* mule/japanese.el ("Japanese"):
	* mule/make-coding-system.el (fixed-width-generate-helper):
	* mule/mule-category.el (defined-category-list):
	* mule/mule-category.el (undefined-category-designator):
	Style change: remove redundant lambdas, things like (mapcar
	#'(lambda (pkg) (symbol-name pkg)) ...) => (mapcar #'symbol-name ...).

2011-02-16  Aidan Kehoe  <kehoea@parhasard.net>

	* bytecomp.el (byte-compile-normal-call):
	Check that the car of FORM is a symbol before examining its
	properties; it can be a lambda form if byte-optimize.el hasn't
	worked its magic and transformed such a lambda call into inline
	code.

2011-02-12  Aidan Kehoe  <kehoea@parhasard.net>

	* bytecomp.el:
	* bytecomp.el (byte-compile-initial-macro-environment):
	* bytecomp.el (unwind-protect):
	* bytecomp.el (byte-compile-active-blocks):
	* bytecomp.el (byte-compile-catch):
	* bytecomp.el ('return-from-1): Removed.
	* bytecomp.el ('block-1): Removed.
	* bytecomp.el (byte-compile-block-1): Removed.
	* bytecomp.el (byte-compile-return-from-1): Removed.
	* bytecomp.el (byte-compile-throw):
	* cl-macs.el (block):
	* cl-macs.el (return-from):
	In my last change, the elimination of `block's that were never
	`return-from'd didn't work if `cl-macroexpand-all' was called
	explicitly, something much code in cl-macs.el does.  Change the
	implementation to something that doesn't require shadowing of the
	macros in `byte-compile-initial-macro-environment', putting a
	`cl-block-name' property on the gensym'd symbol argument to
	`catch' instead.

2011-02-09  Aidan Kehoe  <kehoea@parhasard.net>

	* cl.el (acons): Removed, make the implementation in alloc.c
	visible to Lisp instead.

2011-02-07  Aidan Kehoe  <kehoea@parhasard.net>

	* bytecomp.el:
	* bytecomp.el (byte-compile-initial-macro-environment):
	Shadow `block', `return-from' here, we implement them differently
	when byte-compiling.

	* bytecomp.el (byte-compile-active-blocks): New.
	* bytecomp.el (byte-compile-block-1): New.
	* bytecomp.el (byte-compile-return-from-1): New.
	* bytecomp.el (return-from-1): New.
	* bytecomp.el (block-1): New.
	These are two aliases that exist to have their own associated
	byte-compile functions, which functions implement `block' and
	`return-from'.

	* cl-extra.el (cl-macroexpand-all):
	Fix a bug here when macros in the environment have been compiled.

	* cl-macs.el (block):
	* cl-macs.el (return):
	* cl-macs.el (return-from):
	Be more careful about lexical scope in these macros.

	* cl.el:
	* cl.el ('cl-block-wrapper): Removed.
	* cl.el ('cl-block-throw): Removed.
	These aren't needed in code generated by this XEmacs. They
	shouldn't be needed in code generated by XEmacs 21.4, but if it
	turns out the packages do need them, we can put them back.

2011-01-30  Mike Sperber  <mike@xemacs.org>

	* font-lock.el (font-lock-fontify-pending-extents): Don't fail if
	`font-lock-mode' is unset, which can happen in the middle of
	`revert-buffer'.

2011-01-23  Aidan Kehoe  <kehoea@parhasard.net>

	* cl-macs.el (delete):
	* cl-macs.el (delq):
	* cl-macs.el (remove):
	* cl-macs.el (remq):
	Don't use the compiler macro if these functions were given the
	wrong number of arguments, as happens in lisp-tests.el.
	* cl-seq.el (remove, remq): Removed.
	I added these to subr.el, and forgot to remove them from here.

2011-01-22  Aidan Kehoe  <kehoea@parhasard.net>

	* bytecomp.el (byte-compile-setq, byte-compile-set):
	Remove kludge allowing keywords' values to be set, all the code
	that does that is gone.

	* cl-compat.el (elt-satisfies-test-p):
	* faces.el (set-face-parent):
	* faces.el (face-doc-string):
	* gtk-font-menu.el:
	* gtk-font-menu.el (gtk-reset-device-font-menus):
	* msw-font-menu.el:
	* msw-font-menu.el (mswindows-reset-device-font-menus):
	* package-get.el (package-get-installedp):
	* select.el (select-convert-from-image-data):
	* sound.el:
	* sound.el (load-sound-file):
	* x-font-menu.el (x-reset-device-font-menus-core):
	Don't quote keywords, they're self-quoting, and the
	win from backward-compatibility is sufficiently small now that the
	style problem overrides it.

2011-01-22  Aidan Kehoe  <kehoea@parhasard.net>

	* cl-macs.el (block, return-from): Require that NAME be a symbol
	in these macros, as always documented in the #'block docstring and
	as required by Common Lisp.
	* descr-text.el (unidata-initialize-unihan-database):
	Correct the use of non-symbols in #'block and #'return-from in
	this function.

2011-01-15  Aidan Kehoe  <kehoea@parhasard.net>

	* cl-extra.el (concatenate): Accept more complicated TYPEs in this
	function, handing the sequences over to #'coerce if we don't
	understand them here.
	* cl-macs.el (inline): Don't proclaim #'concatenate as inline, its
	compiler macro is more useful than doing that.

2011-01-11  Aidan Kehoe  <kehoea@parhasard.net>

	* subr.el (delete, delq, remove, remq): Move #'remove, #'remq
	here, they don't belong in cl-seq.el; move #'delete, #'delq here
	from fns.c, implement them in terms of #'delete*, allowing support
	for sequences generally.
	* update-elc.el (do-autoload-commands): Use #'delete*, not #'delq
	here, now the latter's no longer dumped.
	* cl-macs.el (delete, delq): Add compiler macros transforming
	#'delete and #'delq to #'delete* calls.

2011-01-10  Aidan Kehoe  <kehoea@parhasard.net>

	* dialog.el (make-dialog-box): Correct a misplaced parenthesis
	here, thank you Mats Lidell in 87zkr9gqrh.fsf@mail.contactor.se !

2011-01-02  Aidan Kehoe  <kehoea@parhasard.net>

	* dialog.el (make-dialog-box):
	* list-mode.el (display-completion-list):
	These functions used to use cl-parsing-keywords; change them to
	use defun* instead, fixing the build. (Not sure what led to me
	not including this change in d1b17a33450b!)

2011-01-02  Aidan Kehoe  <kehoea@parhasard.net>

	* cl-macs.el (define-star-compiler-macros):
	Make sure the form has ITEM and LIST specified before attempting
	to change to calls with explicit tests; necessary for some tests
	in lisp-tests.el to compile correctly.
	(stable-union, stable-intersection): Add compiler macros for these
	functions, in the same way we do for most of the other functions
	in cl-seq.el.

2011-01-01  Aidan Kehoe  <kehoea@parhasard.net>

	* cl-macs.el (dolist, dotimes, do-symbols, macrolet)
	(symbol-macrolet):
	Define these macros with defmacro* instead of parsing the argument
	list by hand, for the sake of style and readability; use backquote
	where appropriate, instead of calling #'list and and friends, for
	the same reason.

2010-12-30  Aidan Kehoe  <kehoea@parhasard.net>

	* x-misc.el (device-x-display):
	Provide this function, documented in the Lispref for years, but
	not existing previously.  Thank you Julian Bradfield, thank you
	Jeff Mincy.

2010-12-30  Aidan Kehoe  <kehoea@parhasard.net>

	* cl-seq.el:
	Move the heavy lifting from this file to C. Dump the
	cl-parsing-keywords macro, but don't use defun* for the functions
	we define that do take keywords, dynamic scope lossage makes that
	not practical.
	* subr.el (sort, fillarray): Move these aliases here.
	(map-plist): #'nsublis is now built-in, but at this point #'eql
	isn't necessarily available as a test; use #'eq.
	* obsolete.el (cl-delete-duplicates): Make this available for old
	compiler macros and old code.
	(memql): Document that this is equivalent to #'member*, and worse.
	* cl.el (adjoin, subst): Removed. These are in C.

2010-12-30  Aidan Kehoe  <kehoea@parhasard.net>

	* simple.el (assoc-ignore-case): Remove a duplicate definition of
	this function (it's already in subr.el).
	* iso8859-1.el (char-width):
	On non-Mule, make this function equivalent to that produced by
	(constantly 1), but preserve its docstring.
	* subr.el (subst-char-in-string): Define this in terms of
	#'substitute, #'nsubstitute.
	(string-width): Define this using #'reduce and #'char-width.
	(char-width): Give this a simpler definition, it makes far more
	sense to check for mule at load time and redefine, as we do in
	iso8859-1.el. 
	(store-substring): Implement this in terms of #'replace, now
	#'replace is cheap.

2010-12-30  Aidan Kehoe  <kehoea@parhasard.net>

	* update-elc.el (lisp-files-needed-for-byte-compilation)
	(lisp-files-needing-early-byte-compilation):
	cl-macs belongs in the former, not the latter, it is as
	fundamental as bytecomp.el.

2010-12-30  Aidan Kehoe  <kehoea@parhasard.net>

	* cl.el:
	Provde the Common Lisp program-error, type-error as error
	symbols. This doesn't nearly go far enough for anyone using the
	Common Lisp errors.

2010-12-29  Aidan Kehoe  <kehoea@parhasard.net>

	* cl-macs.el (delete-duplicates):
	If the form has an incorrect number of arguments, don't attempt a
	compiler macroexpansion.

2010-12-29  Aidan Kehoe  <kehoea@parhasard.net>

	* cl-macs.el (cl-safe-expr-p):
	Forms that start with the symbol lambda are also safe.

2010-12-29  Aidan Kehoe  <kehoea@parhasard.net>

	* cl-macs.el (= < > <= >=):
	For these functions' compiler macros, the optimisation is safe
	even if the first and the last arguments have side effects, since
	they're only used the once.

2010-12-29  Aidan Kehoe  <kehoea@parhasard.net>

	* cl-macs.el (inline-side-effect-free-compiler-macros):
	Unroll a loop here at macro-expansion time, so these compiler
	macros are compiled.  Use #'eql instead of #'eq in a couple of
	places for better style.

2010-12-29  Aidan Kehoe  <kehoea@parhasard.net>

	* cl-extra.el (notany, notevery): Avoid some dynamic scope
	stupidity with local variable names in these functions, when they
	weren't prefixed with cl-; go into some more detail in the doc
	strings.

2010-12-29  Aidan Kehoe  <kehoea@parhasard.net>

	* byte-optimize.el (side-effect-free-fns): #'remove, #'remq are
	free of side-effects.
	(side-effect-and-error-free-fns):
	Drop dot, dot-marker from the list.

2010-11-17  Aidan Kehoe  <kehoea@parhasard.net>

	* cl-extra.el (coerce):
	In the argument list, name the first argument OBJECT, not X; the
	former name was always used in the doc string and is clearer.
	Handle vector type specifications which include the length of the
	target sequence, error if there's a mismatch.
	* cl-macs.el (cl-make-type-test): Handle type specifications
	starting with the symbol 'eql.

2010-11-14  Aidan Kehoe  <kehoea@parhasard.net>

	* cl-macs.el (eql): Don't remove the byte-compile property of this
	symbol. That was necessary to override a bug in bytecomp.el where
	#'eql was confused with #'eq, which bug we no longer have.
	If neither expression is constant, don't attempt to handle the
	expression in this compiler macro, leave it to byte-compile-eql,
	which produces better code anyway.
	* bytecomp.el (eq): #'eql is not the function associated with the
	byte-eq byte code.
	(byte-compile-eql): Add an explicit compile method for this
	function, for cases where the cl-macs compiler macro hasn't
	reduced it to #'eq or #'equal.

2010-10-25  Aidan Kehoe  <kehoea@parhasard.net>

	Add compiler macros and compilation sanity-checking for various
	functions that take keywords.

	* byte-optimize.el (side-effect-free-fns): #'symbol-value is
	side-effect free and not error free.
	* bytecomp.el (byte-compile-normal-call): Check keyword argument
	lists for sanity; store information about the positions where
	keyword arguments start using the new byte-compile-keyword-start
	property.
	* cl-macs.el (cl-const-expr-val): Take a new optional argument,
	cl-not-constant, defaulting to nil, in this function; return it if
	the expression is not constant.
	(cl-non-fixnum-number-p): Make this into a separate function, we
	want to pass it to #'every.
	(eql): Use it.
	(define-star-compiler-macros): Use the same code to generate the
	member*, assoc* and rassoc* compiler macros; special-case some
	code in #'add-to-list in subr.el.
	(remove, remq): Add compiler macros for these two functions, in
	preparation for #'remove being in C.
	(define-foo-if-compiler-macros): Transform (remove-if-not ...) calls to
	(remove ... :if-not) at compile time, which will be a real win
	once the latter is in C.
	(define-substitute-if-compiler-macros)
	(define-subst-if-compiler-macros): Similarly for these functions.
	(delete-duplicates): Change this compiler macro to use
	#'plists-equal; if we don't have information about the type of
	SEQUENCE at compile time, don't bother attempting to inline the
	call, the function will be in C soon enough.
	(equalp): Remove an old commented-out compiler macro for this, if
	we want to see it it's in version control.
	(subst-char-in-string): Transform this to a call to nsubstitute or
	nsubstitute, if that is appropriate.
	* cl.el (ldiff): Don't call setf here, this makes for a load-time
	dependency problem in cl-macs.el

2010-06-14  Stephen J. Turnbull  <stephen@xemacs.org>

	* term/vt100.el:
	Refer to XEmacs, not GNU Emacs, in permissions.

	* term/bg-mouse.el:
	* term/sup-mouse.el:
	Put copyright notice in canonical "Copyright DATE AUTHOR" form.
	Refer to XEmacs, not GNU Emacs, in permissions.

	* site-load.el:
	Add permission boilerplate.

	* mule/canna-leim.el:
	* alist.el:
	Refer to XEmacs, not APEL/this program, in permissions.

	* mule/canna-leim.el:
	Remove my copyright, I've assigned it to the FSF.

2010-06-14  Stephen J. Turnbull  <stephen@xemacs.org>

	* gtk.el:
	* gtk-widget-accessors.el:
	* gtk-package.el:
	* gtk-marshal.el:
	* gtk-compose.el:
	* gnome.el:
	Add copyright notice based on internal evidence.

2010-06-14  Stephen J. Turnbull  <stephen@xemacs.org>

	* easymenu.el: Add reference to COPYING to permission notice.

	* gutter.el:
	* gutter-items.el:
	* menubar-items.el:
	Fix typo "Xmacs" in permissions notice.

2010-06-14  Stephen J. Turnbull  <stephen@xemacs.org>

	* auto-save.el:
	* font.el:
	* fontconfig.el:
	* mule/kinsoku.el:
	Add "part of XEmacs" text to permission notice.

2010-10-14  Aidan Kehoe  <kehoea@parhasard.net>

	* byte-optimize.el (side-effect-free-fns): 
	* cl-macs.el (remf, getf): 
	* cl-extra.el (tailp, cl-set-getf, cl-do-remf): 
	* cl.el (ldiff, endp):
	Tighten up Common Lisp compatibility for #'ldiff, #'endp, #'tailp;
	add circularity checking for the first two.

	#'cl-set-getf and #'cl-do-remf were Lisp implementations of
	#'plist-put and #'plist-remprop; change the names to aliases,
	changes the macros that use them to using #'plist-put and
	#'plist-remprop directly.

2010-10-12  Aidan Kehoe  <kehoea@parhasard.net>

	* abbrev.el (fundamental-mode-abbrev-table, global-abbrev-table):
	Create both these abbrev tables using the usual
	#'define-abbrev-table calls, rather than attempting to
	special-case them.
	* cl-extra.el: Force cl-macs to be loaded here, if cl-extra.el is
	being loaded interpreted.  Previously other, later files would
	redundantly call (load "cl-macs") when interpreted, it's more
	reasonable to do it here, once.
	* cmdloop.el (read-quoted-char-radix): Use defcustom here, we
	don't have any dump-order dependencies that would prevent that.
	* custom.el (eval-when-compile): Don't load cl-macs when
	interpreted or when byte-compiling, rely on cl-extra.el in the
	former case and the appropriate entry in bytecomp-load-hook in the
	latter.  Get rid of custom-declare-variable-list, we have no
	dump-time dependencies that would require it.
	* faces.el (eval-when-compile): Don't load cl-macs when
	interpreted or when byte-compiling.
	* packages.el: Remove some inaccurate comments. 
	* post-gc.el (cleanup-simple-finalizers): Use #'delete-if-not
	here, now the order of preloaded-file-list has been changed to
	make it available.
	* subr.el (custom-declare-variable-list): Remove. No need for it.
	Also remove a stub define-abbrev-table from this file, given the
	current order of preloaded-file-list there's no need for it.

2010-10-10  Aidan Kehoe  <kehoea@parhasard.net>

	* bytecomp.el (byte-compile-constp) Forms quoted with FUNCTION are
	also constant.
	(byte-compile-initial-macro-environment): In #'the, if FORM is
	constant and does not match TYPE, warn at byte-compile time.

2010-10-10  Aidan Kehoe  <kehoea@parhasard.net>

	* backquote.el (bq-vector-contents, bq-list*): Remove; the former
	is equivalent to (append VECTOR nil), the latter to (list* ...).
	(bq-process-2): Use (append VECTOR nil) instead of using
	#'bq-vector-contents to convert to a list.
	(bq-process-1): Now we use list* instead of bq-list
	* subr.el (list*): Moved from cl.el, since it is now required to
	be available the first time a backquoted form is encountered.
	* cl.el (list*): Move to subr.el.

2010-09-16  Aidan Kehoe  <kehoea@parhasard.net>

	* test-harness.el (Check-Message):
	Add an omitted comma here, thank you the buildbot.

2010-09-16  Aidan Kehoe  <kehoea@parhasard.net>

	* hash-table.el (hash-table-key-list, hash-table-value-list)
	(hash-table-key-value-alist, hash-table-key-value-plist):
	Remove some useless #'nreverse calls in these files; our hash
	tables have no order, it's not helpful to pretend they do.
	* behavior.el (read-behavior):
	Do the same in this file, in some code evidently copied from
	hash-table.el.

2010-09-16  Aidan Kehoe  <kehoea@parhasard.net>

	* info.el (Info-insert-dir):
	* format.el (format-deannotate-region):
	* files.el (cd, save-buffers-kill-emacs):
	Use #'some, #'every and related functions for applying boolean
	operations to lists, instead of rolling our own ones that cons and
	don't short-circuit.

2010-09-16  Aidan Kehoe  <kehoea@parhasard.net>

	* bytecomp.el (byte-compile-initial-macro-environment):
	* cl-macs.el (the):
	Rephrase the docstring, make its implementation when compiling
	files a little nicer.

2010-09-16  Aidan Kehoe  <kehoea@parhasard.net>

	* descr-text.el (unidata-initialize-unicodedata-database)
	(unidata-initialize-unihan-database, describe-char-unicode-data)
	(describe-char-unicode-data):
	Wrap calls to the database functions with (with-fboundp ...),
	avoiding byte compile warnings on builds without support for the
	database functions.
	(describe-char): (reduce #'max ...), not (apply #'max ...), no
	need to cons needlessly.
	(describe-char): Remove a redundant lambda wrapping
	#'extent-properties. 
	(describe-char-unicode-data): Call #'nsubst when replacing "" with
	nil in the result of #'split-string, instead of consing inside
	mapcar.

2010-09-16  Aidan Kehoe  <kehoea@parhasard.net>

	* x-faces.el (x-available-font-sizes): 
	* specifier.el (let-specifier): 
	* package-ui.el (pui-add-required-packages): 
	* msw-faces.el (mswindows-available-font-sizes): 
	* modeline.el (modeline-minor-mode-menu): 
	* minibuf.el (minibuf-directory-files):
	Replace the O2N (delq nil (mapcar (lambda (W) (and X Y)) Z)) with
	the ON (mapcan (lambda (W) (and X (list Y))) Z) in these files.

2010-09-16  Aidan Kehoe  <kehoea@parhasard.net>

	* cl-macs.el (= < > <= >=):
	When these functions are handed more than two arguments, and those
	arguments have no side effects, transform to a series of two
	argument calls, avoiding funcall in the byte-compiled code.
	* mule/mule-cmds.el (finish-set-language-environment):
	Take advantage of this change in a function called 256 times at
	startup.

2010-09-16  Aidan Kehoe  <kehoea@parhasard.net>

	* bytecomp.el (byte-compile-function-form, byte-compile-quote)
	(byte-compile-quote-form):
	Warn at compile time, and error at runtime, if a (quote ...) or a
	(function ...) form attempts to quote more than one object.

2010-09-16  Aidan Kehoe  <kehoea@parhasard.net>

	* byte-optimize.el (byte-optimize-apply): Transform (apply 'nconc
	(mapcar ...)) to (mapcan ...); warn about use of the first idiom.

	* update-elc.el (do-autoload-commands): 
	* packages.el (packages-find-package-library-path): 
	* frame.el (frame-list): 
	* extents.el (extent-descendants): 
	* etags.el (buffer-tag-table-files): 
	* dumped-lisp.el (preloaded-file-list): 
	* device.el (device-list): 
	* bytecomp-runtime.el (proclaim-inline, proclaim-notinline)
	Use #'mapcan, not (apply #'nconc (mapcar ...) in all these files.

	* bytecomp-runtime.el (eval-when-compile, eval-and-compile):
	In passing, mention that these macros also evaluate the body when
	interpreted. 

2010-09-16  Aidan Kehoe  <kehoea@parhasard.net>

	* cl-macs.el (the): Add a docstring and an implementation for this
	macro.
	* bytecomp.el (byte-compile-initial-macro-environment): Add #'the
	to this, checking byte-compile-delete-errors to decide whether to
	make the type assertion. Change the initvalue to use backquote and
	preceding commas for the lambda expressions, to allow the latter
	to be compiled.

2010-09-06  Aidan Kehoe  <kehoea@parhasard.net>

	* cl-seq.el (replace):
	Move this function, with added bounds-checking per ANSI Common
	Lisp, to fns.c.

2010-09-05  Aidan Kehoe  <kehoea@parhasard.net>

	* x-compose.el (define-compose-map, compose-map)
	(decide-on-bindings): Support the precomposed characters with
	stroke here too, necessary for Polish and Danish, among others.
	* x-init.el (x-initialize-compose): Add the appropriate map
	autoloads and bindings here.

2010-09-03  Aidan Kehoe  <kehoea@parhasard.net>

	* cl-extra.el (coerce):
	Add fixnum as an accepted destination type.

2010-09-02  Aidan Kehoe  <kehoea@parhasard.net>

	* obsolete.el (process-get):
	Make #'process-get, #'process-put, #'process-plist,
	#'set-process-plist available as aliases to the more general
	functions #'get, #'put, #'object-plist, #'object-setplist, for GNU
	compatibility.

2010-08-20  Mike Sperber  <mike@xemacs.org>

	* files.el (save-some-buffers-action-alist): Add.
	(save-some-buffers-1): Use (synching with (GPLv2) FSF Emacs.

2010-08-18  Mike Sperber  <mike@xemacs.org>

	* files.el (diff-files-for-recover): Abstract this out out
	`recover-file'.
	(diff-buffer-with-file): Add from (GPLv2) FSF Emacs.
	(recover-file): Use `diff-files-for-recover'.

2010-08-15  Aidan Kehoe  <kehoea@parhasard.net>

	* specifier.el (canonicalize-inst-pair, canonicalize-spec):
	If a specifier tag set is correct, but an instantiator is not in
	an accepted format, don't error with the message "Invalid
	specifier tag set".
	Also, when we error, use error-symbols, for better structured
	error handling and more ease when testing.

2010-07-24  Aidan Kehoe  <kehoea@parhasard.net>

	* cl-extra.el (concatenate):
	* cl-seq.el (remove*, cl-delete-duplicates):
	Bit vectors are also sequences; enforce this in these functions.
	* cl-macs.el (concatenate):
	If TYPE is constant, don't inline #'concatenate, replace it by a
	call to the appropriate C functions.

2010-06-13  Stephen J. Turnbull  <stephen@xemacs.org>

	* gnome.el:
	* gtk-compose.el:
	* gtk-marshal.el:
	* gtk-package.el:
	* gtk-widget-accessors.el:
	* gtk.el:
	* hyper-apropos.el:
	* multicast.el:
	* view-less.el:
	Correct FSF address in permission notice.

2010-06-08  Aidan Kehoe  <kehoea@parhasard.net>

	* diagnose.el (show-gc-stats):
	Fix a misspelling in a heading in this function.

2010-06-08  Aidan Kehoe  <kehoea@parhasard.net>

	* paragraphs.el (sentence-end):
	* gtk-faces.el:
	* custom.el (custom-declare-variable):
	Remove all core code calls to #'purecopy.
	* obsolete.el (purecopy):
	Make the function itself an obsolete alias to #'identity.

2010-06-06  Aidan Kehoe  <kehoea@parhasard.net>

	* cl-seq.el (reduce):
	Move this to fns.c.

2010-06-02  Aidan Kehoe  <kehoea@parhasard.net>

	* cl-macs.el (complement):
	* cl-extra.el (complement):
	Add an implementation and a compiler macro for #'complement, as
	specified by CL. For discussion; the compiler macro may be a
	little too aggressive about taking the compile time argument lists
	of the functions it is inverting.

2010-06-02  Aidan Kehoe  <kehoea@parhasard.net>

	* version.el: 
	(emacs-version): 
	* startup.el (command-line): 
	* simple.el (display-warning, emacs-name): 
	* packages.el (packages-package-hierarchy-directory-names): 
	* loadup.el (Dumping): 
	* dumped-lisp.el (preloaded-file-list):
	Remove all InfoDock-specific code.

2010-05-31  Aidan Kehoe  <kehoea@parhasard.net>

	* specifier.el (current-display-table):
	Use keywords in the structure syntax here, now we've moved to that
	by default in C.

2010-05-30  Aidan Kehoe  <kehoea@parhasard.net>

	* cl.el: Remove extraneous empty lines.
	Remove the commented-out Lisp implementation of #'last,
	#'copy-list.
	Remove #'cl-maclisp-member.
	(acons, pairlis): Have the argument list reflect the docstring for
	these functions.

	* cl-macs.el (defun*): Have the argument list reflect the
	docstring.
	Document the syntax of keywords in ARGLIST.
	(defmacro*): Have the argument list reflect the docstring.
	Document &body, &whole and &environment.
	(function*): Have the argument list reflect the docstring.
	(loop): Have the argument list reflect the docstring.
	(eval-when, dolist, dotimes, do-symbols, flet, labels, macrolet,
	symbol-macrolet):
	Specify the argument list using the arguments: (...) syntax.
	(define-setf-method, rotatef, defsubst*): Have the argument list
	reflect the docstring.
	(letf, letf*): 
	Specify the argument list using the arguments: (...) syntax.
	(svref, acons, pairlis): Add compiler macros for these functions.

	* cl-extra.el: Remove the commented-out Lisp implementation of
	#'equalp. If we want to look at it, it's in version control.
	(cl-expt): Remove this. The subr #'expt is always available.
	Call #'cl-float-limits at dump time.
	Remove the commented-out Lisp implementation of #'subseq.
	(concatenate): Use (error 'invalid-argument ...) here, if TYPE is
	not understood.
	(list-length): Don't manually get the length of a list, call
	#'length and return nil if the list is circular.

	* byte-optimize.el (equalp): This needs
	byte-optimize-binary-predicate as its optimizer, as do the other
	equality predicates.

2010-05-30  Aidan Kehoe  <kehoea@parhasard.net>

	* subr.el (float-time): Add this function, available in editfns.c
	in GNU.

2010-05-16  Aidan Kehoe  <kehoea@parhasard.net>

	* files.el (default-file-system-ignore-case):
	Move this to fileio.c, where it's a constant boolean variable
	initialised at dump time.

2010-04-29  Aidan Kehoe  <kehoea@parhasard.net>

	* cmdloop.el (suggest-key-bindings):
	Make this available, documenting that it's for GNU Emacs
	compatibility.
	Implement it in terms of teach-extended-commands-p and
	teach-extended-commands-timeout, using Ben's
	set-symbol-value-handler functionality.

2010-04-17  Aidan Kehoe  <kehoea@parhasard.net>

	* loadup.el (load-history): Be a bit more discriminate in the
	entries we remove from load-history, only removing those where the
	information is entirely available from DOC.
	Fixes problems finding the files that dumped undocumented
	variables were loaded from, reported by Didier Verna.
	* loadhist.el (symbol-file): Correct a regexp here, I had
	forgotten to double a backslash.

2010-04-15  Aidan Kehoe  <kehoea@parhasard.net>

	* files.el (hack-local-variables-prop-line)
	(hack-one-local-variable):
	Only attempt to call MODENAME-mode on encountering a
	-*-MODENAME-*- line if the corresponding symbol has a function
	binding, avoiding an error if, for example, opening a log file
	with XLFDs and wild cards. Thanks for the bug report, Henrique
	Martins!

2010-04-09  Didier Verna  <didier@xemacs.org>

	* hyper-apropos.el (hyper-apropos-get-doc): Use [not available]
	when a function's arglist is unknown (this happens for autoloaded
	functions).

2010-04-07  Didier Verna  <didier@xemacs.org>

	* font-lock.el (lisp-font-lock-keywords-2): Add missing CL style
	lambda list constructs (&key etc.).
	* lisp-mode.el (lisp-function-and-type-regexp): Recognize defun*
	as well as defun.

2010-04-02  Aidan Kehoe  <kehoea@parhasard.net>

	* descr-text.el (describe-char-unicode-data):
	Don't give up if describe-char-use-cache is t and the database
	isn't readable, warn and insert the entire UnicodeData.txt file
	instead.

2010-04-01  Aidan Kehoe  <kehoea@parhasard.net>

	* cl-seq.el (fill, sort*, merge): Move these functions to fns.c.
	(stable-sort): Make this docstring reflect the argument names used
	in the #'sort* docstring.
	* cl-macs.el (stable-sort): Make #'stable-sort exactly equivalent
	to #'sort* in compiled code.

	* bytecomp.el (byte-compile-maybe-add-*):
	New macro, for functions like #'sort and #'mapcar that, to be
	strictly compatible, should only take two args, but in our
	implementation can take more, because they're aliases of #'sort*
	and #'mapcar*.
	(byte-compile-mapcar, byte-compile-sort, byte-compile-fillarray):
	Use this new macro.
	(map-into): Add a byte-compile method for #'map-into in passing.

	* apropos.el (apropos-print): Use #'sort* with a :key argument,
	now it's in C.
	* compat.el (extent-at): Ditto.
	* register.el (list-registers): Ditto.
	* package-ui.el (pui-list-packages): Ditto.
	* help.el (sorted-key-descriptions): Ditto. 

2010-02-22  Ben Wing  <ben@xemacs.org>

	* dumped-lisp.el (preloaded-file-list):
	* font.el (font-tty-find-closest-color):
	* fontcolor.el:
	* fontcolor.el (ws-object-property-1): Removed.
	* fontcolor.el (fontcolor-property-1): New.
	* fontcolor.el (font-name):
	* fontcolor.el (font-ascent):
	* fontcolor.el (font-descent):
	* fontcolor.el (font-width):
	* fontcolor.el (font-height):
	* fontcolor.el (font-proportional-p):
	* fontcolor.el (font-properties):
	* fontcolor.el (font-truename):
	* fontcolor.el (color-name):
	* fontcolor.el (color-rgb-components):
	* x-faces.el:
	Rename objects.el -> fontcolor.el.

2010-02-22  Ben Wing  <ben@xemacs.org>

	* obsolete.el:
	* obsolete.el ('show-buffer): New.
	* obsolete.el ('buffer-flush-undo): New.
	* obsolete.el (buffer-local-value): New.
	* obsolete.el (Info-default-directory-list): Removed.
	* obsolete.el (x-color-values): New.
	* obsolete.el (mswindows-color-list):
	* obsolete.el (init-file-user): Removed.
	* obsolete.el ('pui-add-install-directory): Removed.
	* obsolete.el (line-beginning-position):
	* obsolete.el ('line-beginning-position): New.
	* obsolete.el ('line-end-position): New.
	* obsolete.el (obsolete-throw): New.
	* obsolete.el ('cl-mapc): New.
	* obsolete.el ('byte-code-function-p): New.
	* obsolete.el ('interactive-form): New.
	* obsolete.el ('assq-delete-all): New.
	* obsolete.el (makehash): New.
	* obsolete.el ('user-original-login-name): Removed.
	* obsolete.el ('isearch-yank-x-selection): Removed.
	* obsolete.el ('isearch-yank-x-clipboard): Removed.
	* obsolete.el ('display-column-mode): New.
	Rearrange; create some new categories out of "misc" stuff,
	put categories in alphabetical order, move remaning "misc"
	stuff to bottom.

2010-03-29  Aidan Kehoe  <kehoea@parhasard.net>

	* hyper-apropos.el (hyper-apropos-get-doc):
	Use help.el's #'function-arglist, #'function-documentation,
	#'symbol-file in this function, instead of rolling our own.

2010-03-25  Ben Wing  <ben@xemacs.org>

	* diagnose.el (show-memory-usage):
	* diagnose.el (show-object-memory-usage-stats):
	Further changes to correspond with changes in the C code;
	add an additional column in show-object-memory-usage-stats showing
	the ancillary Lisp overhead used with each type; shrink columns for
	windows in show-memory-usage to get it to fit in 79 chars.

2010-03-26  Aidan Kehoe  <kehoea@parhasard.net>

	* descr-text.el (describe-char-display):
	Behave better on builds without database support, and for
	characters where no font is available. Especially relevant on
	Win32.

2010-03-23  Aidan Kehoe  <kehoea@parhasard.net>

	* x-win-xfree86.el (x-win-init-xfree86):
	If iso-left-tab (something ISO-specified and portable in theory;
	in practice only seen with XFree86 and derived non-US layouts)
	exists on the keyboard layout, make it equivalent to shift-tab,
	addressing the issue FKtPp sees in
	http://mid.xemacs.org/1269358206.4873.1.camel@fktpp-laptop .

2010-03-21  Aidan Kehoe  <kehoea@parhasard.net>

	* cl-extra.el (cl-prettyprint):
	Handle (function ...) specially here, as we do (quote ...).

2010-03-20  Ben Wing  <ben@xemacs.org>

	* diagnose.el (show-memory-usage):
	* diagnose.el (show-object-memory-usage-stats):
	Further changes to correspond with changes in the C code;
	add an additional column showing the overhead used with each type,
	and add it into the grand total memory usage.

2010-03-19  Ben Wing  <ben@xemacs.org>

	* diagnose.el (show-object-memory-usage-stats):
	Rewrite to take into account non-lisp-storage statistics
	returned by garbage-collect-1 and friends.

2010-03-18  Ben Wing  <ben@xemacs.org>

	* diagnose.el (show-memory-usage):
	Rewrite to take into account API changes in memory-usage functions.

2010-03-20  Aidan Kehoe  <kehoea@parhasard.net>

	* cl-macs.el (notany, notevery):
	Correct these compiler macros.

2010-03-15  Ben Wing  <ben@xemacs.org>

	* mule/mule-cmds.el:
	* mule/mule-cmds.el (finish-set-language-environment):
	Fix bug in generating display-table entries for error octet characters.

2010-03-12  Ben Wing  <ben@xemacs.org>

	* test-harness.el (test-harness-from-buffer):
	Undo change of e.g. (Assert (equalp ...)) to (Assert-equalp ...).
	Get rid of `Assert-equalp' and friends, `Assert-test', and
	`Assert-test-not'.  Instead, make `Assert' smart enough to do the
	equivalent functionality when an expression like (Assert (equalp ...))
	is seen.

2010-03-11  Aidan Kehoe  <kehoea@parhasard.net>

	* setup-paths.el (paths-find-emacs-roots)
	(paths-construct-info-path):
	Pass :from-end t to the delete-duplicates calls in these
	functions, now the compiler macro no longer defaults it to t.

2010-03-07  Ben Wing  <ben@xemacs.org>

	* disp-table.el:
	* disp-table.el (standard-display-g1):
	* disp-table.el (standard-display-graphic):
	Fix up docs; add comments about authorship.

2010-03-06  Ben Wing  <ben@xemacs.org>

	* test-harness.el:
	* test-harness.el (test-harness-backtrace): New.
	* test-harness.el (test-harness-assertion-failure-do-debug):
	* test-harness.el (test-harness-unexpected-error-do-debug):
	Use the print settings from edebug.el to make backtraces not
	be so huge.

2010-03-06  Aidan Kehoe  <kehoea@parhasard.net>

	* bytecomp.el (byte-compile-compiled-obj-to-list):
	Remove this function, printing a compiled object to a string and
	then reading back a substring is senseless, just use the
	compiled-function slot accessor functions.

2010-03-05  Aidan Kehoe  <kehoea@parhasard.net>

	* cl-macs.el (delete-duplicates):
	Correct the logic of this compiler macro when :from-end is nil,
	avoiding a hang in query-coding-tests.el. Thanks for the reports,
	Vin and Mats!

2010-03-04  Aidan Kehoe  <kehoea@parhasard.net>

	* make-docfile.el (process-args):
	Use #'subseq here, not #'substring, fixing the native Windows
	build. Thank you for the error report, Vin!

2010-03-03  Aidan Kehoe  <kehoea@parhasard.net>

	Move byte code #o117 to #'subseq, not #'substring.
	Make #'substring available as an alias for #'subseq in Lisp.
	* bytecomp.el (79, subseq, substring):
	* bytecomp.el (byte-compile-subseq): New.
	* update-elc.el (update-elc-chop-extension): Use #'subseq, not
	#'substring, the latter is not yet available.
	* subr.el (substring): New alias, to #'subseq.

2010-03-02  Aidan Kehoe  <kehoea@parhasard.net>

	* cl-macs.el (delete-dups): New compiler macro for this function,
	expanding to inline byte codes.
	(delete-duplicates): Handle the :from-end argument correctly in
	this compiler macro.

2010-03-01  Aidan Kehoe  <kehoea@parhasard.net>

	* cl-seq.el (cl-parsing-keywords):
	* cl-macs.el (cl-do-arglist):
	Use the new invalid-keyword-argument error here.

2010-02-26  Aidan Kehoe  <kehoea@parhasard.net>

	Back out Ben's revision c673987f5f3d.
	* coding.el:
	Add a compiler macro for #'make-coding-system on non-Mule builds
	too, to fix the problem he addressed with that changeset.
	* mule/make-coding-system.el (fixed-width-private-use-start):
	Don't call (decode-char ... 'ucs) here, it can make bootstrapping
	harder.

2010-02-26  Ben Wing  <ben@xemacs.org>

	* autoload.el (autoload-featurep-protect-autoloads):
	Always insert a coding-system cookie, either raw-text-unix or
	escape-quoted.  As before, insert an error statement when an
	escape-quoted auto-autoload is loaded in a non-Mule XEmacs.

	This fixes problems when the default coding system is UTF-8,
	as in Cygwin.  Under some circumstances, the file can get
	written out as raw text and read in as UTF-8, where invididual
	high-bytes are usually invalid UTF-8 sequences and lead to
	error octets in the buffer; when written out again, these
	force escape-quoted.  Result: auto-autoloads.el for the
	source-tree lisp/ directory would end up as escape-quoted.

2010-02-25  Didier Verna  <didier@xemacs.org>

	The background-placement face property.
	* cl-macs.el (face-background-placement): New defsetf.
	* cus-face.el (custom-face-attributes):
	* faces.el (face-interactive):
	* faces.el (set-face-property):
	* faces.el (face-equal):
	* faces.el (init-other-random-faces): Update.
	* faces.el (face-background-placement):
	* faces.el (set-face-background-placement):
	* faces.el (face-background-placement-instance):
	* faces.el (face-background-placement-instance-p):
	* frame.el (set-frame-background-placement):
	* frame.el (frame-background-placement):
	* frame.el (frame-background-placement-instance):
	* objects.el (make-face-background-placement-specifier): New.

2010-02-25  Ben Wing  <ben@xemacs.org>

	* autoload.el (make-autoload):
	Call cl-function-arglist with one arg.
	
	* cl-macs.el (cl-function-arglist):
	* cl-macs.el (cl-transform-lambda):
	Make cl-function-arglist take only one arg, the arglist; no
	function name passed.  Also make sure to print () instead of nil
	when empty arglist, or function-documentation-1 won't recognize
	the arguments: line.
	* help.el (function-arglist): If empty arg, don't display extra
	space after function name.

2010-02-24  Aidan Kehoe  <kehoea@parhasard.net>

	* cl-extra.el (constantly):
	Normally return a compiled function from #'constantly if we are
	handed a single argument. Shouldn't actually matter, the overhead
	for returning a single constant in a lambda form vs. in a compiled
	function is minuscule, but using compiled functions as much as
	possible is good style in XEmacs, our interpreter is not stellar
	(nor indeed should it need to be).

2010-02-23  Ben Wing  <ben@xemacs.org>

	* help.el: fux typo in comment. (oops)

2010-02-23  Ben Wing  <ben@xemacs.org>

	* autoload.el:
	* autoload.el (make-autoload):
	* cl-macs.el (cl-function-arglist):
	* cl-macs.el (cl-transform-lambda):
	Don't add argument list with the tag "Common Lisp lambda list:";
	instead add in "standard" form using "arguments:" and omitting the
	function name.  Add an arg to `cl-function-arglist' to omit the
	name and use it in autoload.el instead of just hacking it off.
	
	* help.el:
	* help.el (function-arglist):
	* help.el (function-documentation-1): New.
	Extract out common code to recognize and/or strip the arglist from
	documentation into `function-documentation-1'.  Use in
	`function-arglist' and `function-documentation'.  Modify
	`function-arglist' so it looks for the `arguments: ' stuff in all
	doc strings, not just subrs/autoloads, so that CL functions get
	recognized properly.  Change the regexp used to match "arguments: "
	specs to allow nested parens inside the arg list (happens when you
	have a default value specified in a CL arglist).

2010-02-22  Ben Wing  <ben@xemacs.org>

	* test-harness.el:
	* test-harness.el (test-harness-from-buffer):
	* test-harness.el (batch-test-emacs):
	Move file from tests/automated into lisp/ so it gets
	byte-compiled.  This significantly reduces the amount of extra
	crap in outputted backtraces.  Delete hack in batch-test-emacs to
	look for test-harness.el in the test directory since it's not there
	any more.

	Also, in `Check-Message', incorporate call to `Skip-Test-Unless'
	in the macro output rather than its body, to avoid problems byte-
	compiling the file -- `Skip-Test-Unless' isn't available in the
	environment during byte-compilation so we can't call it then.
	
2010-02-22  Ben Wing  <ben@xemacs.org>

	* cl-seq.el:
	* cl-seq.el (stable-union): New.
	* cl-seq.el (stable-intersection): New.
	New functions to do stable set operations, i.e. preserve the order
	of the elements in the argument lists, and prefer LIST1 over LIST2
	when ordering the combined result.  The result looks as much like
	LIST1 as possible, followed (in the case of `stable-union') by
	any necessary elements from LIST2, in order.  This is contrary to
	`union' and `intersection', which are not required to be order-
	preserving and are not -- they prefer LIST2 and output results in
	backwards order.

2010-02-22  Ben Wing  <ben@xemacs.org>

	* cl-seq.el:
	* cl-seq.el (reduce):
	* cl-seq.el (fill):
	* cl-seq.el (replace):
	* cl-seq.el (remove*):
	* cl-seq.el (remove-if):
	* cl-seq.el (remove-if-not):
	* cl-seq.el (delete*):
	* cl-seq.el (delete-if):
	* cl-seq.el (delete-if-not):
	* cl-seq.el (remove-duplicates):
	* cl-seq.el (delete-duplicates):
	* cl-seq.el (substitute):
	* cl-seq.el (substitute-if):
	* cl-seq.el (substitute-if-not):
	* cl-seq.el (nsubstitute):
	* cl-seq.el (nsubstitute-if):
	* cl-seq.el (nsubstitute-if-not):
	* cl-seq.el (find):
	* cl-seq.el (find-if):
	* cl-seq.el (find-if-not):
	* cl-seq.el (position):
	* cl-seq.el (position-if):
	* cl-seq.el (position-if-not):
	* cl-seq.el (count):
	* cl-seq.el (count-if):
	* cl-seq.el (count-if-not):
	* cl-seq.el (mismatch):
	* cl-seq.el (search):
	* cl-seq.el (sort*):
	* cl-seq.el (stable-sort):
	* cl-seq.el (merge):
	* cl-seq.el (member*):
	* cl-seq.el (member-if):
	* cl-seq.el (member-if-not):
	* cl-seq.el (assoc*):
	* cl-seq.el (assoc-if):
	* cl-seq.el (assoc-if-not):
	* cl-seq.el (rassoc*):
	* cl-seq.el (rassoc-if):
	* cl-seq.el (rassoc-if-not):
	* cl-seq.el (union):
	* cl-seq.el (nunion):
	* cl-seq.el (intersection):
	* cl-seq.el (nintersection):
	* cl-seq.el (set-difference):
	* cl-seq.el (nset-difference):
	* cl-seq.el (set-exclusive-or):
	* cl-seq.el (nset-exclusive-or):
	* cl-seq.el (subsetp):
	* cl-seq.el (subst-if):
	* cl-seq.el (subst-if-not):
	* cl-seq.el (nsubst):
	* cl-seq.el (nsubst-if):
	* cl-seq.el (nsubst-if-not):
	* cl-seq.el (sublis):
	* cl-seq.el (nsublis):
	* cl-seq.el (tree-equal):
	* cl-seq.el (cl-tree-equal-rec):
	* cl.el:
	* cl.el (pushnew):
	* cl.el (adjoin):
	* cl.el (subst):
	Document the keywords to the various sequence/list functions.

2010-02-21  Ben Wing  <ben@xemacs.org>

	* diagnose.el:
	* diagnose.el (show-object-memory-usage-stats):
	Fix errors preventing this from working properly, account for
	words like "entry" pluralized to "entries".

2010-02-22  Aidan Kehoe  <kehoea@parhasard.net>

	* cl-extra.el (constantly): 
	Add this function, from ANSI Common Lisp, using the SBCL extension
	that extra arguments to it are passed back as multiple values in
	the constructed function.
	* cl-macs.el (constantly):
	In the compiler macro for #'constantly, construct a
	compiled-function object almost every time, at compile time when
	all arguments are constant, and at runtime when they vary.

2010-02-08  Ben Wing  <ben@xemacs.org>

	* help.el (describe-function-1):
	Don't use compiled-function-annotation to retrieve the file name
	for a function since it doesn't provide this info and load-history
	already does provide it.

2010-02-07  Aidan Kehoe  <kehoea@parhasard.net>

	* make-docfile.el (format-decode): Remove this temporary function
	definition, now we check the symbol is bound in fileio.c
	* version.el (format-decode): Ditto.
	* format.el (car-less-than-car, cdr-less-than-cdr): Move these
	here from fileio.c, now they are only called once format.el is
	available.

2010-02-07  Aidan Kehoe  <kehoea@parhasard.net>

	* setup-paths.el (paths-find-emacs-roots)
	(paths-construct-info-path):
	* packages.el (packages-find-installation-package-directories):
	#'union doesn't guarantee that it will preserve the relative order
	of elements in its arguments; use #'delete-duplicates
	instead. Thank you for the bug reports, Robert Pluim, Stephen
	Turnbull.

2010-02-06  Ben Wing  <ben@xemacs.org>

	* unicode.el:
	* unicode.el (for):
	Convert file to utf-8.

2010-02-03  Aidan Kehoe  <kehoea@parhasard.net>

	* cl-extra.el (some, every):
	Move these functions to C.
	* cl-macs.el (notany, notevery): Add compiler macros for these
	functions, no longer proclaim them inline (which would involve
	specbinding that's not necessary with the compiler macros).

2010-02-06  Ben Wing  <ben@xemacs.org>

	* code-init.el:
	* code-init.el (set-eol-detection):
	* code-init.el (coding-system-current-system-configuration):
	* code-init.el (coding-system-default-configuration-table): New.
	* code-init.el (no-mule-no-eol-detection):
	* code-init.el (define-coding-system-default-configuration): New.
	* code-init.el (coding-system-variable-default-value-table): Removed.
	* code-init.el (no-mule-eol-detection):
	* code-init.el (coding-system-default-configuration-list): Removed.
	* code-init.el (coding-system-default-variable-list):
	* code-init.el (get-coding-system-variable):
	* code-init.el (set-coding-system-variable):
	* code-init.el (coding-system-variable-default-value):
	* code-init.el (reset-coding-categories-to-default):
	Significant clean-up, add Cygwin-UTF-8 support.

	1. Shorten the names of the coding system variables to follow
	   what used to be considered the "abbreviations":

	   default-process-coding-system-read	->	process-read
	   default-process-coding-system-write	->	process-write
	   buffer-file-coding-system-for-read	->	bfcs-for-read
	   default-buffer-file-coding-system	->	default-bfcs
	   no-conversion-coding-system-mapping	->	no-conv-cs

	2. Instead of listing all the defaults in a big, strangely organized
	   table, use a new function
	   `define-coding-system-default-configuration' to define a
	   particular configuration.  This uses a hash table stored in
	   `coding-system-default-configuration-table'.  Rewrite
	   `coding-system-variable-default-value' appropriately.

	3. Rename configurations to eliminate `unix' from the name:

	   unix-no-mule-no-eol-detection      ->     no-mule-no-eol-detection
	   unix-no-mule-eol-detection	      ->     no-mule-eol-detection
	   unix-mule			      ->     mule

	   This is because these are really for all systems but Windows,
	   not just Unix.

	4. Add configuration `cygwin-utf-8', enabled when (featurep
	   'cygwin-use-utf-8).  Uses `utf-8' for all defaults except for
	   `bfcs-for-read', which is `undecided'.

2010-01-28  Ben Wing  <ben@xemacs.org>

	* lisp-mode.el: Finish documenting `lisp-indent-specform',
	on Mike Sperber's request.

2010-01-17  Ben Wing  <ben@xemacs.org>

	* bytecomp-runtime.el:
	* bytecomp-runtime.el (error-unless-tests-match): New.
	* bytecomp-runtime.el (byte-compile-file-being-compiled): New.
	* bytecomp-runtime.el (compiled-if): New.
	* bytecomp-runtime.el (compiled-when): New.
	Add functions for dealing with conditional compilation of different code
	depending on the presence or absence of features.  Necessary for some
	Mule code where code is run during compilation (macros or eval-when-compile)
	but, depending on how the code is written, the code itself will crash
	either with or without Unicode-internal.

	compiled-if and compiled-when are the basic functions for conditional
	compilation.  They automatically trigger an error message upon file
	loading	if, at that time, the test expression that selected which code
	to compile does	not have the same value as at compile time.

2010-01-25  Ben Wing  <ben@xemacs.org>

	* mule/cyrillic.el (koi8-c):
	Fix bug in #83 mapping.
	* mule/vietnamese.el (viscii):
	Fix bug in #A6 mapping.

2010-01-24  Ben Wing  <ben@xemacs.org>

	* simple.el (capitalize-string-as-title):
	Use `with-string-as-buffer-contents' instead of emulating it.

2010-01-24  Ben Wing  <ben@xemacs.org>

	* syntax.el:
	* syntax.el (make-syntax-table):
	Expand doc string.

2010-01-22  Ben Wing  <ben@xemacs.org>

	* lisp-mode.el:
	* lisp-mode.el (lisp-indent-function):
	If the function begins with `with-', assume it is a macro or
	special form whose last argument is a body.  Call
	`lisp-indent-specform' with a flag indicating that it should indent
	all arguments as a body instead of with normal (full) indent.
	* lisp-mode.el (lisp-indent-specform):
	Add an optional flag argument indicating that all non-distinguished
	arguments, not just the first, should be indented as a body.  This
	is useful when the number of distinguished (i.e. pre-body) arguments
	isn't known, and is used for this purpose by `lisp-indent-function'.
	

2010-01-20  Aidan Kehoe  <kehoea@parhasard.net>

	* simple.el (handle-pre-motion-command-current-command-is-motion):
	This function is called a *lot*, make it faster, making
	keysyms-equal inline, calling #'characterp (which doesn't have a
	bytecode) much more rarely, and not throwing and catching. This
	won't make much difference in practice, but does eliminate losts
	of noise from profiling, e.g. at startup.

2010-01-13  Ben Wing  <ben@xemacs.org>

	* loadup.el:
	* loadup.el (featurep):
	* loadup.el (member):
	When featurep `debug-xemacs' (configure --with-debug), set
	debug-on-error, so that we get an exit-to-debugger/assertion
	failure upon Lisp error during loadup.  Unset before dumping.

2010-01-10  Ben Wing  <ben@xemacs.org>

	* mule/mule-cmds.el (get-native-coding-system-from-language-environment):
	Under Cygwin, force utf-8 if we are using Cygwin 1.7 or later
	(making use of the magic feature 'cygwin-use-utf-8).

2010-01-11  Ben Wing  <ben@xemacs.org>

	* unicode.el:
	* unicode.el (utf-8):
	Don't define `utf-8' coding system here, because it's too late.
	We need it during early startup code at dump time so we create it
	in C in unicode.c.

2010-01-10  Didier Verna  <didier@xemacs.org>

	* x-faces.el (x-init-face-from-resources)
	(x-init-device-faces)
	(x-init-frame-faces): Cosmetic changes (comments formatting).

2010-01-09  Didier Verna  <didier@xemacs.org>

	* x-faces.el (x-init-global-faces): Deactivate obsolete code.
	* x-faces.el (x-init-device-faces): Ditto.
	* x-faces.el (x-init-frame-faces): Ditto.

2010-01-09  Didier Verna  <didier@xemacs.org>

	* glyphs.el (init-glyphs): Recognize bitmaps/ directory as
	containing bitmap files.

2010-01-09  Aidan Kehoe  <kehoea@parhasard.net>

	* subr.el (with-trapping-errors): 
	Fix a bug here, where I used a normal quote instead of a
	backquote. Thank you the byte-compiler.

2010-01-08  Aidan Kehoe  <kehoea@parhasard.net>

	* indent.el (indent-region):
	Make COLUMN optional as in GNU, merging Andreas Roehler's change
	of http://mid.xemacs.org/4B46F5FC.2070506@online.de ; thank you
	Andreas!

2010-01-07  Aidan Kehoe  <kehoea@parhasard.net>

	* cl-macs.el (map):
	Add a compiler macro for this function, for cases where CL-TYPE is
	constant and understood.

2010-01-07  Aidan Kehoe  <kehoea@parhasard.net>

	* unicode.el (load-unicode-tables):
	* mule/mule-msw-init-late.el:
	* mule/mule-category.el (predefined-category-list):
	* mule/arabic.el:
	Move arabic-iso8859-6 back to C, it needs to be there, otherwise
	X11 character input lookup fails.

2010-01-06  Didier Verna  <didier@xemacs.org>

	* cl-extra.el (get-properties): New.

2009-12-31  Aidan Kehoe  <kehoea@parhasard.net>

	* list-mode.el (next-list-mode-item, switch-to-completions): Use
	next-single-char-property-change,
	previous-single-char-property-change now
	next-single-property-change no longer pays attention to extents
	not created using the text property functions. Fix for issue 546,
	bug dates from changeset 8c96bdabcaf9.

2009-12-21  Jerry James  <james@xemacs.org>

	* dragdrop.el (offix-start-drag): Remove.
	(offix-start-drag-region): Remove.
	* mouse.el (mouse-begin-drag-n-drop): Remove OffiX support.

2009-12-21  Adrian Aichner  <adrian@xemacs.org>

	* package-get.el (package-get-download-sites): Remove
	dk.xemacs.org from list of package download sites.
	* package-get.el (package-get-pre-release-download-sites): Ditto.

2009-12-21  Aidan Kehoe  <kehoea@parhasard.net>

	* mule/arabic.el (arabic-iso8859-6):
	Move the creation of this character set to this (dumped) file,
	since it's needed for input on X11.
	* mule/iso-with-esc.el:
	Remove arabic-iso8859-6 and its Unicode map from this file.
	* unicode.el (load-unicode-tables):
	Load arabic-iso8859-6 on startup again.

2009-12-19  Aidan Kehoe  <kehoea@parhasard.net>

	* cl-macs.el (cl-do-arglist):
	* cl-compat.el (keyword-of):
	Remove support in our generated code for emacs versions where
	keywords are not self-quoting.

2010-02-03  Aidan Kehoe  <kehoea@parhasard.net>

	Delete a couple of XEmacs-specific functions that duplicate CL
	functions.

	* find-paths.el (paths-filter, paths-uniq-append):
	Remove #'paths-filter, a reimplementation of #'remove-if-not, and
	#'paths-uniq-append, a reimplementation of #'union with test
	#'equal.
	(paths-decode-directory-path): Don't use #'path-filter here.
	* packages.el (packages-package-hierarchy-directory-names):
	Don't use #'path-filter here.
	(packages-find-installation-package-directories):
	Use #'union, not #'paths-uniq-append here.
	* setup-paths.el (paths-find-invocation-roots)
	(paths-find-emacs-roots, paths-construct-info-path)
	(paths-construct-info-path):
	Replace #'paths-filter with #'remove-if-not, #'paths-uniq-append
	with #'union. 

2010-02-01  Aidan Kehoe  <kehoea@parhasard.net>

	* loadhist.el (symbol-file):
	If #'built-in-symbol-file returns a Lisp file name, and
	source-lisp is readable, construct a full pathname to include
	that. Otherwise use lisp-directory, as we used to.
	* loadup.el:
	Delete load-history entries for those files in
	preloaded-file-list; unloading the associated features makes very
	little sense, and the symbol file information can be had from DOC.

2010-02-01  Aidan Kehoe  <kehoea@parhasard.net>

	* cl-macs.el (equalp):
	Remove special treatment for an #'equalp with a single character
	constant argument, it was incorrect (it used #'downcase instead of
	#'canoncase).

2010-02-01  Ben Wing  <ben@xemacs.org>

	* cl-extra.el:
	* cl-extra.el (cl-string-vector-equalp): Removed.
	* cl-extra.el (cl-bit-vector-vector-equalp): Removed.
	* cl-extra.el (cl-vector-array-equalp): Removed.
	* cl-extra.el (cl-hash-table-contents-equalp): Removed.
	* cl-extra.el (equalp): Removed.
	* cl-extra.el (cl-mapcar-many):
	Comment out the whole `equalp' implementation for the moment;
	remove once we're sure the C implementation works.
	
	* cl-macs.el:
	* cl-macs.el (equalp):
	Simplify the compiler-macro for `equalp' -- once it's in C,
	we don't need to try so hard to expand it.

2010-01-31  Aidan Kehoe  <kehoea@parhasard.net>

	* obsolete.el:
	* loadhist.el (symbol-file):
	* help.el (describe-function-1):
	* bytecomp.el: (byte-compile-save-current-buffer):
	* byte-optimize.el (byte-optimize-form-code-walker):
	* subr.el (subr-arity):
	Change "special form" to "special operator" in these files, it's
	the more logical term.

	* subr.el (special-form-p): Provide this alias for
	#'special-operator-p. 

2010-01-30  Aidan Kehoe  <kehoea@parhasard.net>

	* loadup.el:
	If any filename in load-history starts with the value of
	source-lisp, delete that part of the string, so that
	#'find-function works better with dumped functions in an installed
	XEmacs (it will look in lisp-directory instead, where it will
	probably succeed).

2010-01-29  Ben Wing  <ben@xemacs.org>

	* mule/cyrillic.el (for):
	Upper and lowercase mappings were reversed for some old-Cyrillic
	chars.

2010-01-31  Aidan Kehoe  <kehoea@parhasard.net>

	* cl.el (mapcar*): Delete; this is now in fns.c.
	Use #'mapc, not #'mapc-internal in a couple of places.
	* cl-macs.el (mapc, mapcar*, map): Delete these compiler macros
	now the corresponding functions are in fns.c; there's no run-time
	advantage to the macros.
	* cl-extra.el (coerce): Extend the possible conversions here a
	little; it's not remotely comprehensive yet, though it does allow
	running slightly more Common Lisp code than previously.
	(cl-mapcar-many): Delete.
	(map, maplist, mapc, mapl, mapcan, mapcon): Move these to fns.c.
	* bytecomp.el (byte-compile-maybe-mapc):
	Use #'mapc itself, not #'mapc-internal, now the former is in C.
	(mapcar*): Use #'byte-compile-maybe-mapc as this function's
	byte-compile method, now a #'mapc that can take more than one
	sequence is in C.
	* obsolete.el (cl-mapc): Move this compatibility alias to this file.
	* update-elc.el (do-autoload-commands): Use #'mapc, not
	#'mapc-internal here. 
	
2010-01-26  Aidan Kehoe  <kehoea@parhasard.net>

	* mule/vietnamese.el (viscii): Correct the mapping here, #xA6 is
	actually *SMALL* LETTER A WITH CIRCUMFLEX AND HOOK ABOVE.
	* mule/cyrillic.el (koi8-c): Correct the mapping here, #x8C is
	actually ?\u04D9. Add a case mapping for it.

2010-01-24  Aidan Kehoe  <kehoea@parhasard.net>

	Correct the semantics of #'member*, #'eql, #'assoc* in the
	presence of bignums; change the integerp byte code to fixnump
	semantics.

	* bytecomp.el (fixnump, integerp, byte-compile-integerp): 
	Change the integerp byte code to fixnump; add a byte-compile
	method to integerp using fixnump and numberp and avoiding a
	funcall most of the time, since in the non-core contexts where
	integerp is used, it's mostly distinguishing between fixnums and
	things that are not numbers at all.
	* byte-optimize.el (side-effect-free-fns, byte-after-unbind-ops)
	(byte-compile-side-effect-and-error-free-ops):
	Replace the integerp bytecode with fixnump; add fixnump to the
	side-effect-free-fns. Add the other extended number type
	predicates to the list in passing.

	* obsolete.el (floatp-safe): Mark this as obsolete.

	* cl.el (eql): Go into more detail in the docstring here. Don't
	bother checking whether both arguments are numbers; one is enough,
	#'equal will fail correctly if they have distinct types.
	(subst): Replace a call to #'integerp (deciding whether to use
	#'memq or not) with one to #'fixnump.
	Delete most-positive-fixnum, most-negative-fixnum from this file;
	they're now always in C, so they can't be modified from Lisp.
	* cl-seq.el (member*, assoc*, rassoc*):
	Correct these functions in the presence of bignums.
	* cl-macs.el (cl-make-type-test): The type test for a fixnum is
	now fixnump. Ditch floatp-safe, use floatp instead.
	(eql): Correct this compiler macro in the presence of bignums.
	(assoc*): Correct this compiler macro in the presence of bignums.

	* simple.el (undo): 
	Change #'integerp to #'fixnump here, since we use #'delq with the
	same value as ELT a few lines down.

2010-01-20  Aidan Kehoe  <kehoea@parhasard.net>

	* simple.el (handle-pre-motion-command-current-command-is-motion):
	This function is called a *lot*, make it faster, making
	keysyms-equal inline, calling #'characterp (which doesn't have a
	bytecode) much more rarely, and not throwing and catching. This
	won't make much difference in practice, but does eliminate losts
	of noise from profiling, e.g. at startup.

2010-01-13  Ben Wing  <ben@xemacs.org>

	* loadup.el:
	* loadup.el (featurep):
	* loadup.el (member):
	When featurep `debug-xemacs' (configure --with-debug), set
	debug-on-error, so that we get an exit-to-debugger/assertion
	failure upon Lisp error during loadup.  Unset before dumping.

2010-01-10  Ben Wing  <ben@xemacs.org>

	* mule/mule-cmds.el (get-native-coding-system-from-language-environment):
	Under Cygwin, force utf-8 if we are using Cygwin 1.7 or later
	(making use of the magic feature 'cygwin-use-utf-8).

2010-01-11  Ben Wing  <ben@xemacs.org>

	* unicode.el:
	* unicode.el (utf-8):
	Don't define `utf-8' coding system here, because it's too late.
	We need it during early startup code at dump time so we create it
	in C in unicode.c.

2010-01-10  Didier Verna  <didier@xemacs.org>

	* x-faces.el (x-init-face-from-resources)
	(x-init-device-faces)
	(x-init-frame-faces): Cosmetic changes (comments formatting).

2010-01-09  Didier Verna  <didier@xemacs.org>

	* x-faces.el (x-init-global-faces): Deactivate obsolete code.
	* x-faces.el (x-init-device-faces): Ditto.
	* x-faces.el (x-init-frame-faces): Ditto.

2010-01-09  Didier Verna  <didier@xemacs.org>

	* glyphs.el (init-glyphs): Recognize bitmaps/ directory as
	containing bitmap files.

2010-01-09  Aidan Kehoe  <kehoea@parhasard.net>

	* subr.el (with-trapping-errors): 
	Fix a bug here, where I used a normal quote instead of a
	backquote. Thank you the byte-compiler.

2010-01-08  Aidan Kehoe  <kehoea@parhasard.net>

	* indent.el (indent-region):
	Make COLUMN optional as in GNU, merging Andreas Roehler's change
	of http://mid.xemacs.org/4B46F5FC.2070506@online.de ; thank you
	Andreas!

2010-01-07  Aidan Kehoe  <kehoea@parhasard.net>

	* cl-macs.el (map):
	Add a compiler macro for this function, for cases where CL-TYPE is
	constant and understood.

2010-01-07  Aidan Kehoe  <kehoea@parhasard.net>

	* unicode.el (load-unicode-tables):
	* mule/mule-msw-init-late.el:
	* mule/mule-category.el (predefined-category-list):
	* mule/arabic.el:
	Move arabic-iso8859-6 back to C, it needs to be there, otherwise
	X11 character input lookup fails.

2010-01-06  Didier Verna  <didier@xemacs.org>

	* cl-extra.el (get-properties): New.

2009-12-31  Aidan Kehoe  <kehoea@parhasard.net>

	* list-mode.el (next-list-mode-item, switch-to-completions): Use
	next-single-char-property-change,
	previous-single-char-property-change now
	next-single-property-change no longer pays attention to extents
	not created using the text property functions. Fix for issue 546,
	bug dates from changeset 8c96bdabcaf9.

2009-12-21  Jerry James  <james@xemacs.org>

	* dragdrop.el (offix-start-drag): Remove.
	(offix-start-drag-region): Remove.
	* mouse.el (mouse-begin-drag-n-drop): Remove OffiX support.

2009-12-21  Adrian Aichner  <adrian@xemacs.org>

	* package-get.el (package-get-download-sites): Remove
	dk.xemacs.org from list of package download sites.
	* package-get.el (package-get-pre-release-download-sites): Ditto.

2009-12-21  Aidan Kehoe  <kehoea@parhasard.net>

	* mule/arabic.el (arabic-iso8859-6):
	Move the creation of this character set to this (dumped) file,
	since it's needed for input on X11.
	* mule/iso-with-esc.el:
	Remove arabic-iso8859-6 and its Unicode map from this file.
	* unicode.el (load-unicode-tables):
	Load arabic-iso8859-6 on startup again.

2009-12-19  Aidan Kehoe  <kehoea@parhasard.net>

	* cl-macs.el (cl-do-arglist):
	* cl-compat.el (keyword-of):
	Remove support in our generated code for emacs versions where
	keywords are not self-quoting.

2009-12-21  Michael Sperber  <mike@xemacs.org>

	* gnuserv.el (gnuserv-program): Specifically look for gnuserv in
	`exec-directory'.

2009-12-18  Aidan Kehoe  <kehoea@parhasard.net>

	* alist.el (modify-alist):
	* autoload.el (update-autoload-files, autoload-print-form):
	* bytecomp.el (batch-byte-compile-1)
	(byte-compile-multiple-value-call, byte-compile-funcall)
	(byte-compile-insert, byte-compile-concat, byte-compile-list)
	(byte-compile-normal-call, byte-compile-flush-pending):
	* cl-macs.el (letf):
	* cl.el:
	* disass.el (disassemble-1):
	* easy-mmode.el (easy-mmode-define-syntax):
	* faces.el (set-face-parent):
	* files.el (cd):
	* finder.el (finder-list-matches, finder-list-keywords)
	(finder-compile-keywords):
	* frame.el (frame-notice-user-settings)
	(frame-remove-geometry-props):
	* ldap.el (ldap-delete-entries, ldap-modify-entries)
	(ldap-add-entries):
	* loadhist.el (unload-feature):
	* map-ynp.el (map-y-or-n-p):
	* menubar-items.el (default-menubar):
	* mouse.el (default-mouse-track-next-move-rect)
	(default-mouse-track-next-move-rect)
	(default-mouse-track-cleanup-hook)
	(default-mouse-track-cleanup-extent):
	* mule/ethio-util.el (ethio-fidel-to-sera-buffer)
	(ethio-modify-vowel):
	* obsolete.el:
	* package-get.el (package-get-update-all):
	* package-ui.el (pui-list-packages)
	(pui-install-selected-packages, pui-install-selected-packages):
	* select.el (select-make-extent-for-selection)
	(dehilight-selection):
	* simple.el (clone-buffer):
	* term/tvi970.el:
	* term/wyse50.el:
	* unicode.el:
	(load-unicode-tables):
	* x-font-menu.el (fc-make-font-menu-entry)
	(x-reset-device-font-menus-xft):
	* x-misc.el (x-init-specifier-from-resources):
	Eliminate byte-compile warnings, with the exception of Stephen's
	various non-defined fontconfig functions, as I don't know if he
	plans to add them and is keeping the warnings around as a
	reminder. The warnings actually eliminated involve i) using mapcar
	instead of mapc where the result is discarded and ii) using a
	lambda quoted as data in a context where it is unequivocally used
	as a function.

2009-12-17  Aidan Kehoe  <kehoea@parhasard.net>

	* mule/make-coding-system.el
	(fixed-width-create-decode-encode-tables):
	Use a rehash threshold of 0.999 for this hash table, now that hash
	table rehash thresholds are serialised correctly; these hash
	tables will never be resized, and it's not even that important
	that they are *that* fast, for most of the coding systems they're
	used a minority of the time.

2010-01-01  Aidan Kehoe  <kehoea@parhasard.net>

	* syntax.el (map-syntax-table):
	* subr.el (map-plist):
	* startup.el (load-init-file):
	* minibuf.el (read-from-minbuffer):
	* cus-edit.el (custom-load-custom-defines-1):
	* cmdloop.el (execute-extended-command):
	Replace symbol names using underscore, whether to avoid dynamic
	scope problems or to ensure helpful arguments to
	#'call-with-condition-handler, with uninterned symbols.

2009-12-05  Stephen J. Turnbull  <stephen@xemacs.org>

	* font.el (x-font-create-object): Check for Xft before using it.
	This fixes the symptom in openSUSE bug #558764.

2010-01-09  Aidan Kehoe  <kehoea@parhasard.net>

	* descr-text.el (describe-char-unihan-field-descriptions):
	* cl-macs.el:
	Use keywords, not ordinary symbols, in the hash table read syntax,
	for compatibility with Common Lisp and recent GNU Emacs.

2009-11-10  Jerry James  <james@xemacs.org>

	* device.el (device-type): Remove (mostly imaginary) support for
	NeXTstep.
	* font.el (font-window-system-mappings): Ditto.
	(ns-font-weight-mappings): Remove, unused.
	(ns-font-families-for-device): Ditto.
	(ns-font-create-name): Ditto.
	* frame.el (make-frame-on-device): Ditto.
	(frame-type): Ditto.
	(display-mouse-p): Remove reference to NeXTstep in a comment.
	* paths.el (initialize-xemacs-paths): Remove support for old Ultrix,
	but still look in standard paths for mh.  Also remove support for old
	SCO Unix, Bull DPX/2, Data General Unix, RTU, and Unisoft Unix.

2009-11-15  Aidan Kehoe  <kehoea@parhasard.net>

	* custom.el (custom-quote):
	Define this as an alias for `quote-maybe', which is in C and more
	comprehensive; packages still use this name in places.
	(customize-mark-to-save, customize-mark-as-set): Use
	`quote-maybe', not `custom-quote'.
	* cus-edit.el (customize-set-variable, customize-save-variable)
	(custom-variable-value-create, custom-variable-set)
	(custom-variable-pre-save):
	Remove a version of `custom-quote' specific to this file; use
	`quote-maybe' universally instead.

2009-11-14  Aidan Kehoe  <kehoea@parhasard.net>

	* bytecomp.el (byte-compile-funarg-n):
	New macro, used to create the various byte-compile-funarg
	functions, which check for quoted lambdas in given positions.
	(byte-compile-funarg, byte-compile-funarg-2)
	(byte-compile-funarg-4, byte-compile-funarg-1-2): Use
	byte-compile-funarg-n in implementing these functions.
	(byte-compile-maybe-mapc): Add some commentary on GNU's approach
	to this problem.
	Be much more comprehensive in the functions that we use
	byte-compile-funarg and related function to compile, especially
	including functions from cl-seq.el.

2009-11-14  Aidan Kehoe  <kehoea@parhasard.net>

	* cl-macs.el (letf):
	Check whether arguments to #'values are bound, and make them
	unbound after evaluating BODY; document the limitations of this
	macro.

2009-11-14  Aidan Kehoe  <kehoea@parhasard.net>

	* faces.el (init-other-random-faces):
	If the modeline face is using its fallbacks, avoid that, specify
	the corresponding problems instead. Fixes problems described in
	http://mid.xemacs.org/3ggprc2diyt.wl_Ron.Isaacson@morganstanley.com

2009-11-09  Didier Verna  <didier@xemacs.org>

	* minibuf.el (read-buffer): New optional argument 'exclude' for
	excluding buffers from the completion list.
	* buffer.el (switch-to-buffer): Don't offer the current buffer in
	the completion list.

2009-11-08  Aidan Kehoe  <kehoea@parhasard.net>

	* bytecomp.el (save-window-excursion):
	Remove the compiler form for this bytecode, we no longer generate
	calls to it. Keep the information about the bytecode's numeric
	value, we want that for disassembling code.

2009-11-08  Aidan Kehoe  <kehoea@parhasard.net>

	* cl-extra.el (cl-string-vector-equalp)
	(cl-bit-vector-vector-equalp, cl-vector-array-equalp)
	(cl-hash-table-contents-equalp): New functions, to implement
	equalp treating arrays with identical contents as equivalent, as
	specified by Common Lisp.
	(equalp): Revise this function to implement array equivalence,
	and the hash-table equalp behaviour specified by CL.
	* cl-macs.el (equalp): Add a compiler macro for this function,
	used when one of the arguments is constant, and as such, its type
	is known at compile time.

2009-11-01  Aidan Kehoe  <kehoea@parhasard.net>

	* cl-extra.el (equalp):
	Don't error if handed a string and a non-string.

2009-11-01  Stephen Turnbull  <stephen@xemacs.org>

	* font.el (font-combine-fonts-internal):
	Fix syntax error in call of delete-duplicates.

2009-11-01  Stephen Turnbull  <stephen@xemacs.org>

	* lisp.el (forward-sexp):
	(backward-sexp):
	(mark-sexp):
	(forward-list):
	(backward-list):
	(down-list):
	(backward-up-list):
	(up-list):
	(kill-sexp):
	(backward-kill-sexp):
	(beginning-of-defun):
	(beginning-of-defun-raw):
	(end-of-defun):
	(insert-parentheses):
	Change generic parameter ARG to self-documenting COUNT.
	Update docstring.
	(buffer-end):
	Change generic parameter ARG to self-documenting DIRECTION.
	Update docstring.
	(narrow-to-defun):
	Document that optional ARG is ignored.

2009-11-01  Stephen Turnbull  <stephen@xemacs.org>

	* faces.el (Face-frob-property):
	Give mapper for TTYs 2 args.
	(make-face-family):
	(make-face-size):
	Generic mapper ignores TTYs and null devices.
	(make-face-bold):
	(make-face-italic):
	(make-face-bold-italic):
	(make-face-unbold):
	(make-face-unitalic):
	TTY mapper takes 2 args.

2009-10-09  Stephen Turnbull  <stephen@xemacs.org>

	* lisp.el (beginning-of-defun-function):
	(end-of-defun-function):
	(beginning-of-defun):
	(end-of-defun):
	Make docstrings stop lying.

2009-10-30  Aidan Kehoe  <kehoea@parhasard.net>

	* cl-macs.el (regexp-quote):
	If STRING is constant, call regexp-quote at compile time.

2009-10-24  Aidan Kehoe  <kehoea@parhasard.net>

	* files.el (default-file-system-ignore-case): New variable.
	(file-system-case-alist): New variable.
	(file-system-ignore-case-p):
	New function; return t if file names under PATH should be treated
	case-insensitively.
	* minibuf.el (read-file-name-1, read-file-name-internal-1)
	(read-file-name-internal-1):
	* package-admin.el (package-admin-check-manifest):
	Use file-system-ignore-case-p instead of checking system-type
	directly in these functions. (Even though minibuf.el is dumped
	before files.el, the function is only called in interactive usage,
	there's no dump time order dependency here.)

2009-10-19  Aidan Kehoe  <kehoea@parhasard.net>

	* bytecomp.el (byte-compile-default-warnings):
	Add two new warning types, discarded-consing (basically use of
	mapcar instead of mapc where its result is discarded) and
	quoted-lambda (use of a lambda expression quoted as data in a
	function context).
	(byte-compile-warnings): Document the new warnings.
	(byte-compile-fset, byte-compile-funarg): Implement the
	quoted-lambda warning option.
	(byte-compile-mapcar): Renamed to byte-compile-maybe-mapc.
	(byte-compile-maybe-mapc, byte-compile-maplist):
	Implement the discarded-consing warning option.
	Add more functions that should be compiled using
	byte-compile-funarg, notably mapvector, mapc-internal,
	map-char-table.
	* cl-macs.el (mapcar*):
	If we know at compile time that there are no CL options being
	used, use the mapcar subr, not the byte-coded function.

2009-10-12  Aidan Kehoe  <kehoea@parhasard.net>

	* cl-macs.el (mapc):
	New compiler macro, use mapc-internal at
	compile time if we're not using the Common Lisp functionality.
	* bytecomp.el (byte-compile-mapcar, byte-compile-maplist): New.
	If the return value of mapcar is being discarded, compile it to a
	mapc-internal call instead, and warn, because the programmer
	probably can't rely on always being compiled by an XEmacs that
	does this. Similarly for maplist and mapl; and use
	byte-compile-funarg for map, mapl, mapcan, mapcon.

2009-10-12  Aidan Kehoe  <kehoea@parhasard.net>

	* cl-macs.el (delete-duplicates):
	Fix another bug in the delete-duplicates compiler macro, thank you
	the byte compiler.

2009-10-07  Andreas Roehler  <andreas.roehler@online.de>

	* lisp.el (beginning-of-defun-function):
	make variable buffer local
	* lisp.el (end-of-defun-function):
	make variable buffer local

2009-10-05  Jerry James  <james@xemacs.org>

	* gnome.el: Add GPL v2 or later notice with explicit permission of
	Bill Perry (private email).
	* gtk-compose.el: Ditto.
	* gtk-marshal.el: Ditto.
	* gtk-package.el: Ditto.
	* gtk-widget-accessors.el: Ditto.
	* gtk.el: Ditto.

2009-10-05  Jerry James  <james@xemacs.org>

	* glyphs.el (make-image-specifier): Remove ancient comment about
	lack of support for animated GIFs.

2009-08-16  Stephen J. Turnbull  <stephen@xemacs.org>

	* gutter-items.el (progress-feedback-dispatch-non-command-events):
	Correct syntax of `condition-case'.

2009-06-28  Stephen J. Turnbull  <stephen@xemacs.org>

	* font-lock.el (font-lock-pre-idle-hook):
	* etags.el (find-tag-default):
	Correct :operation arguments in `with-trapping-errors'.

2009-10-03  Aidan Kehoe  <kehoea@parhasard.net>

	* cl-macs.el (delete-duplicates):
	Make this compiler macro aware that CL-SEQ is a sequence, which
	may not necessarily be a list.

2009-09-30  Mike Sperber  <mike@xemacs.org>

	* lisp.el (beginning-of-defun-raw): Unbreak; clean up sloppy
	coding.

2009-09-28  Mike Sperber  <mike@xemacs.org>

	* autoload.el (make-autoload): Only try to add arguments to
	documentation when the form actually allows it.

	* cl-macs.el (cl-function-arglist): Add autoload; used in autoload.el.

2009-09-27  Aidan Kehoe  <kehoea@parhasard.net>

	* cus-edit.el (custom-variable-prompt):
	nil is a symbol, check that variable-at-point is non-nil before
	checking if it's a symbol when deciding on the prompt used in this
	function.

2009-09-22  Andreas Roehler  <andreas.roehler@online.de>

	* lisp.el (beginning-of-defun-raw):
	new variable: beginning-of-defun-function,
	beginning-of-defun may call FUNCTION determining start position
	* lisp.el (end-of-defun):
	new variable: end-of-defun-function,
	end-of-defun may call FUNCTION determining the end position

2009-09-20  Aidan Kehoe  <kehoea@parhasard.net>

	Add arglist information to docstrings for autoloaded functions and
	macros.
	* hyper-apropos.el (hyper-apropos-get-doc):
	Treat autoload docstrings like subr docstrings; correct the regexp
	used.
	* help.el (describe-function-show-arglist):
	This no longer treats autoloads specially.
	(function-arglist): Treat autoload docstrings like subr docstrings.
	(function-documentation): Treat documentation strings that are
	zero-length after the arglist has been removed as indicating a
	lack of documentation.
	* cl-macs.el (case):
	(ecase):
	(typecase):
	(etypecase):
	(block):
	(return):
	(return-from):
	(progv):
	(lexical-let):
	(lexical-let*):
	(remf):
	(callf):
	(callf2):
	(define-modify-macro):
	(deftype):
	(define-compiler-macro):
	Rely on the autoload code to always show an arglist for these
	functions, don't supply an ad-hoc one in the docstring.
	These changes are for the most obvious functions; there are some
	missed that would require changing argument names in the docstring
	or in the function bodies.
	* autoload.el (make-autoload):
	Add arg list information to the doc string, using the same
	approach as for subrs.

2009-09-20  Aidan Kehoe  <kehoea@parhasard.net>

	* help.el (function-arglist):
	Show the double-quotes in the sample output, correctly.
	Bind print-gensym to nil, now we're using uninterned symbols.
	Don't #'mapcar + #'intern to create uppercase symbols, use #'loop
	and #'make-symbol instead.
	* cl-macs.el (cl-upcase-arg):
	Don't intern the upcased symbols we're using for cosmetic reasons.
	Trust #'true-list-p in #'cl-function-arglist to detect
	circularity.
	(cl-function-arglist): Bind print-gensym to nil, now we're
	printing uninterned symbols and would prefer to avoid the gensym
	syntax.
	(cl-transform-lambda): Only add the Common Lisp lambda list:
	argument information when that differs frmo the normal argument
	information.

2009-09-20  Aidan Kehoe  <kehoea@parhasard.net>

	* mule/make-coding-system.el (make-coding-system):
	Require a minimum of two, not four, arguments; thank you for the
	problem report, Adam Sjøgren!

2009-09-19  Aidan Kehoe  <kehoea@parhasard.net>

	Move the #'query-coding-region implementation to C.
	* coding.el:
	Consolidate code that depends on the presence or absence of Mule
	at the end of this file.
	(default-query-coding-region, query-coding-region):
	Move these functions to C.
	(default-query-coding-region-safe-charset-skip-chars-map):
	Remove this variable, the corresponding C variable is
	Vdefault_query_coding_region_chartab_cache in file-coding.c.
	(query-coding-string): Update docstring to reflect actual multiple
	values, be more careful about not modifying a range table that
	we're currently mapping over.
	(encode-coding-char): Make the implementation of this simpler.
	(featurep 'mule): Autoload #'make-coding-system from
	mule/make-coding-system.el if we're a mule build; provide an
	appropriate compiler macro.
	Do various non-mule compatibility things if we're not a mule
	build.
	* update-elc.el (additional-dump-dependencies):
	Add mule/make-coding-system as a dump time dependency if we're a
	mule build.
	* unicode.el (ccl-encode-to-ucs-2):
	(decode-char):
	(encode-char):
	Move these earlier in the file, for the sake of some byte compile
	warnings.
	(unicode-query-coding-region):
	Move this to unicode.c
	* mule/make-coding-system.el:
	New file, not dumped. Contains the functionality to rework the
	arguments necessary for fixed-width coding systems, and contains
	the implementation of #'make-coding-system, which now calls
	#'make-coding-system-internal.
	* mule/vietnamese.el (viscii):
	* mule/latin.el (iso-8859-2):
	(windows-1250):
	(iso-8859-3):
	(iso-8859-4):
	(iso-8859-14):
	(iso-8859-15):
	(iso-8859-16):
	(iso-8859-9):
	(macintosh):
	(windows-1252):
	* mule/hebrew.el (iso-8859-8):
	* mule/greek.el (iso-8859-7):
	(windows-1253):
	* mule/cyrillic.el (iso-8859-5):
	(koi8-r):
	(koi8-u):
	(windows-1251):
	(alternativnyj):
	(koi8-ru):
	(koi8-t):
	(koi8-c):
	(koi8-o):
	* mule/arabic.el (iso-8859-6):
	(windows-1256):
	Move all these coding systems to being of type fixed-width, not of
	type CCL. This allows the distinct query-coding-region for them to
	be in C, something which will eventually allow us to implement
	query-coding-region for the mswindows-multibyte coding systems.
	* mule/general-late.el (posix-charset-to-coding-system-hash):
	Document why we're pre-emptively persuading the byte compiler that
	the ELC for this file needs to be written using escape-quoted.
	Call #'set-unicode-query-skip-chars-args, now the Unicode
	query-coding-region implementation is in C.
	* mule/thai-xtis.el (tis-620):
	Don't bother checking whether we're XEmacs or not here.
	* mule/mule-coding.el:
	Move the eight bit fixed-width functionality from this file to
	make-coding-system.el.

2009-09-14  Michael Sperber  <mike@xemacs.org>

	* frame.el (pre-display-buffer-function): Don't set to
	`get-frame-for-buffer' - this broke the documented behavior of
	`display-buffer' of always displaying in the current frame.

2009-09-06  Aidan Kehoe  <kehoea@parhasard.net>

	* simple.el (handle-pre-motion-command-current-command-is-motion):
	If KEY is a character, ascertain that once, not every iteration of
	the loop.
	* mule/mule-cmds.el (finish-set-language-environment):
	Don't call #'string-match on a one-character string, use functions
	that have bytecodes instead, since this is called so often on
	startup.

2009-08-31  Aidan Kehoe  <kehoea@parhasard.net>

	* byte-optimize.el (byte-optimize-form-code-walker):
	Be careful about discarding multiple values when optimising
	#'prog1 calls.
	(byte-optimize-or):
	Preserve any trailing nil, as this is a supported way to
	explicitly discard multiple values.
	(byte-optimize-cond-1):
	Discard multiple values with a singleton followed by no more
	clauses.
	* bytecomp.el (progn):
	(prog1):
	(prog2):
	Be careful about discarding multiple values in the byte-hunk
	handler of these three forms.
	* bytecomp.el (byte-compile-prog1, byte-compile-prog2):
	Don't call #'values explicitly, use `(or ,(pop form) nil) instead,
	since that compiles to bytecode, not a funcall.
	* bytecomp.el (byte-compile-values):
	With one non-const argument, byte-compile to `(or ,(second form)
	nil), not an explicit #'values call.
	* bytecomp.el (byte-compile-insert-header):
	Be nicer in the error message to emacs versions that don't
	understand our bytecode.

2009-08-27  Aidan Kehoe  <kehoea@parhasard.net>

	* cl.el (bytecomp-load-hook): New.
	* bytecomp.el (bytecomp-load-hook): Use id.
	Merge Dave Love's 2000-02-02 GNU (GPLv2) change, forcing the
	byte-compiler to be more consistent about loading cl-macs at
	compile time.

2009-08-19  Malcolm Purvis  <malcolmp@xemacs.org>

	* simple.el:
	* simple.el (turn-off-auto-fill): Sync from FSF 21.4.

2009-08-18  Aidan Kehoe  <kehoea@parhasard.net>

	* simple.el (handle-pre-motion-command-current-command-is-motion):
	Replace mapc + #'(lambda ...) with dolist, eliminating 781
	funcalls at XEmacs startup and decreasing GC a little.

2009-08-16  Aidan Kehoe  <kehoea@parhasard.net>

	* faces.el (xpm-color-symbols):
	Call (featurep 'x) when faces.elc is dumped, not repeatedly
	(myriad times) at image instantiation time.

2009-08-15  It's me FKtPp ;)  <m_pupil@yahoo.com.cn>

	* gnuserv.el (gnuserv-edit-files): Don't run goto line if the
	gnuclient request to open a file only (a linenumber of nil).

2009-08-14  Aidan Kehoe  <kehoea@parhasard.net>

	* minibuf.el (read-from-minibuffer):
	Use buffer (format " *Minibuf-%d*" (minibuffer-depth)), regardless
	of depth.

2009-08-11  Aidan Kehoe  <kehoea@parhasard.net>

	* cl-extra.el (ceiling*, floor*, round*, truncate*):
	Implement these in terms of the C functions; mark them as
	obsolete.
	(mod*, rem*): Use #'nth-value with the C functions, not #'nth with
	the CL emulation functions.

2009-08-11  Aidan Kehoe  <kehoea@parhasard.net>

	* bytecomp.el :
	Update this file to support full C-level multiple values. This
	involves:
	-- Four new bytecodes, and special compiler functions to compile
	multiple-value-call, multiple-value-list-internal, values,
	values-list, and, since it now needs to pass back multiple values
	and is a special form, throw.
	-- There's a new compiler variable, byte-compile-checks-on-load,
	which is a list of forms that are evaluated at the very start of a
	file, with an error thrown if any of them give nil.
	-- The header is now inserted *after* compilation, giving a chance
	for the compilation process to influence what those checks
	are. There is still a check done before compilation for non-ASCII
	characters, to try to turn off dynamic docstrings if appopriate,
	in `byte-compile-maybe-reset-coding'.
	Space is reserved for checks; comments describing the version of
	the byte compiler generating the file are inserted if space
	remains for them.
	* bytecomp.el (byte-compile-version):
	Update this, we're a newer version of the byte compiler.
	* byte-optimize.el (byte-optimize-funcall):
	Correct a comment.
	* bytecomp.el (byte-compile-lapcode):
	Discard the arg with byte-multiple-value-call.
	* bytecomp.el (byte-compile-checks-and-comments-space):
	New variable, describe how many octets to reserve for checks at
	the start of byte-compiled files.
	* cl-compat.el:
	Remove the fake multiple-value implementation. Have the functions
	that use it use the real multiple-value implementation instead.
	* cl-macs.el (cl-block-wrapper, cl-block-throw):
	Revise the byte-compile properties of these symbols to work now
	we've made throw into a special form; keep the byte-compile
	properties as anonymous lambdas, since we don't have docstrings
	for them.
	* cl-macs.el (multiple-value-bind, multiple-value-setq)
	(multiple-value-list, nth-value):
	Update these functions to work with the C support for multiple
	values.
	* cl-macs.el (values):
	Modify the setf handler for this to call
	#'multiple-value-list-internal appropriately.
	* cl-macs.el (cl-setf-do-store):
	If the store form is a cons, treat it specially as wrapping the
	store value.
	* cl.el (cl-block-wrapper):
	Make this an alias of #'and, not #'identity, since it needs to
	pass back multiple values.
	* cl.el (multiple-value-apply):
	We no longer support this, mark it obsolete.
	* lisp-mode.el (eval-interactive-verbose):
	Remove a useless space in the docstring.
	* lisp-mode.el (eval-interactive):
	Update this function and its docstring. It now passes back a list,
	basically wrapping any eval calls with multiple-value-list. This
	allows multiple values to be printed by default in *scratch*.
	* lisp-mode.el (prin1-list-as-multiple-values):
	New function, printing a list as multiple values in the manner of
	Bruno Haible's clisp, separating each entry with " ;\n".
	* lisp-mode.el (eval-last-sexp):
	Call #'prin1-list-as-multiple-values on the return value of
	#'eval-interactive.
	* lisp-mode.el (eval-defun):
	Call #'prin1-list-as-multiple-values on the return value of
	#'eval-interactive.
	* mouse.el (mouse-eval-sexp):
	Deal with lists corresponding to multiple values from
	#'eval-interactive. Call #'cl-prettyprint, which is always
	available, instead of sometimes calling #'pprint and sometimes
	falling back to prin1.
	* obsolete.el (obsolete-throw):
	New function, called from eval.c when #'funcall encounters an
	attempt to call #'throw (now a special form) as a function. Only
	needed for compatibility with 21.4 byte-code.

2009-08-10  Aidan Kehoe  <kehoea@parhasard.net>

	* help.el (function-arglist, function-documentation):
	Deal more gracefully with tabs in the function arglist; in
	function-documentation, when stripping the arglist, pay attention
	to the fact that they may span multiple lines.

2009-08-09  Aidan Kehoe  <kehoea@parhasard.net>

	* faces.el (set-face-background-pixmap-file):
	Remove some extra parentheses revealed by change set 7757334005ae.

2009-08-07  Mike Sperber  <mike@xemacs.org>

	* window-xemacs.el (set-window-configuration): Add optional
	`set-frame-size-p' argument that determines whether the frame size
	should be restored along with the window configuration.

2009-07-29  Mike Sperber  <mike@xemacs.org>

	* window-xemacs.el (set-window-pixel-width)
	(set-window-pixel-height): Convenience functions, add.
	(restore-saved-window-parameters): Use the above.
	(really-set-window-configuration): Slightly restructure, reindent.

2009-07-28  Mike Sperber  <mike@xemacs.org>

	* startup.el (startup-setup-paths): Use `emacs-data-roots' instead
	of `emacs-roots' where appropriate.

2009-07-28  Mike Sperber  <mike@xemacs.org>

	* startup.el (startup-setup-paths): Print a few more variables
	upon --debug-paths.

2009-07-18  Aidan Kehoe  <kehoea@parhasard.net>

	* files.el (find-file-create-switch-thunk):
	Check that #'buffer-file-name gives non-nil before trying to
	determine whether that file exists; avoids problems in
	dired. Thank you Mats Lidell!

2009-07-13  Aidan Kehoe  <kehoea@parhasard.net>

	* code-files.el (insert-file-contents):
	Set the buffer coding system even on error; especially important
	when dealing with nonexistent files.
	If the `coding-system' property of an undecided coding system is
	itself undecided, don't use that as a value for
	buffer-file-coding-system.

2009-07-12  Aidan Kehoe  <kehoea@parhasard.net>

	* files.el (after-find-file):
	If the answer to "The directory containing %s does not exist.
	Create?" is no, kill the current buffer, since the user probably
	just misspelled the directory name. Thank you Rodney Sparapani!

2009-07-12  Aidan Kehoe  <kehoea@parhasard.net>

	* files.el (find-file-create-switch-thunk):
	New macro, used to mark buffers created within #'find-file (and
	related) modified if the associated file doesn't exist.
	(find-alternate-file-other-window):
	Correct this, pass CODESYS to find-file-other-window.
	(find-file-read-only):
	Correct behaviour of this function in the presence of wildcards.
	(find-file):
	(find-file-other-window):
	(find-file-other-frame):
	(find-file-read-only-other-window):
	(find-file-read-only-other-frame):
	(find-alternate-file):
	Simplify these functions, use #'find-file-create-switch-thunk'
	instead of explicit #'switch-to-buffer calls.

2009-07-11  Aidan Kehoe  <kehoea@parhasard.net>

	* code-files.el (insert-file-contents):
	Take advantage of more sensible behaviour from
	#'insert-file-contents-internal, allowing us to actually follow
	the documented coding system behaviour for nonexistent files (that
	is, buffer-file-coding-system reflects coding-system-for-read &c.,
	not becoming undecided for either zero-length or nonexistent
	files).

2009-06-20  It's me FKtPp ;)  <m_pupil@yahoo.com.cn>
	* files.el (cd): Do not #'split-path on nil #'getenv result; Make
	sure the cd-path value is a list.

2009-06-14  Aidan Kehoe  <kehoea@parhasard.net>

	* help.el (describe-function-1):
	Check macro-p, not macrop, when describing whether a symbol has an
	associated macro or an associated function. Relevant with
	autoloaded macros.
	(function-arglist):
	Accept multi-line arglists in built-in functions, as found in
	#'write-region-internal. #'dontusethis-set-symbol-value-handler
	is still broken for other reasons.

2009-06-07  Aidan Kehoe  <kehoea@parhasard.net>

	* code-files.el (insert-file-contents):
	Autodetection may return undecided as a coding system. If the file
	was zero-length, this is kosher, and we should set
	buffer-file-coding-system to its default; if it is not
	zero-length, we still need to set b-f-c-s, but we warn that the
	autodetection fails. (Ignoring that for the user, autodetection
	failing is something very distinct from what we use it to mean
	here.) See
	http://mid.xemacs.org/18986.53111.800393.660612@parhasard.net and
	the related thread.

2009-06-06  Aidan Kehoe  <kehoea@parhasard.net>

	* files.el (cd):
	Make CDPATH handling portable, accept entries without trailing
	slashes within it. Some style corrections from Stephen Turnbull,
	thank you Stephen.

2009-05-29  Aidan Kehoe  <kehoea@parhasard.net>

	* bytecomp.el (byte-compile-lambda):
	Even if we are going to store uncompiled interactive forms in the
	compiled-function object, byte compile (and discard) the code, for
	the sake of the warnings generated.

ChangeLog Entries from lwlib/ChangeLog

goto announcement, summary, changes


2011-04-26  Stephen J. Turnbull  <stephen@xemacs.org>

	* XEmacs 21.5.30 "garlic" is released.

2011-01-11  Aidan Kehoe  <kehoea@parhasard.net>

	* lwlib-fonts.c (xft_open_font_by_name):
	Replace the POSIX index(3), not universally available even today,
	with the C89 strchr(3), hopefully fixing a few of the buildbots'
	problems.

2010-06-13  Stephen J. Turnbull  <stephen@xemacs.org>

	* lwlib-internal.h: Correct FSF address in permission notice.

2010-02-22  Ben Wing  <ben@xemacs.org>

	* lwlib-colors.h:
	objects*.h -> fontcolor*.h.

2010-02-08  Ben Wing  <ben@xemacs.org>

	* xt-wrappers.h:
	* xt-wrappers.h (Xt_SET_VALUE):
	* xt-wrappers.h (Xt_GET_VALUE):
	Rename var to avoid shadowing problems.

2010-01-24  Ben Wing  <ben@xemacs.org>

	* xlwgauge.c (GaugeResize):
	* xlwgauge.c (GaugeSize):
	Fix warnings about possible use of uninitialized vars.

2010-02-01  Ben Wing  <ben@xemacs.org>

	* lwlib-colors.c:
	* lwlib-colors.h:
	* lwlib-fonts.c:
	* lwlib-fonts.h:
	* xlwmenu.c:
	* xlwmenu.c (xlwMenuResources):
	* xlwmenu.c (x_xft_text_width):
	* xlwmenu.c (label_button_draw):
	* xlwmenu.c (push_button_size):
	* xlwmenu.c (push_button_draw):
	* xlwmenu.c (make_drawing_gcs):
	* xlwmenu.c (extract_font_extents):
	* xlwmenu.c (default_font_of_font_list):
	* xlwmenu.c (XlwMenuInitialize):
	* xlwmenu.c (XlwMenuDestroy):
	* xlwmenu.c (XlwMenuSetValues):
	* xlwmenuP.h:
	* xlwmenuP.h (_XlwMenu_part):
	* xlwtabs.c:
	* xlwtabs.c (TabsInit):
	* xlwtabs.c (TabsDestroy):
	* xlwtabs.c (TabsSetValues):
	* xlwtabs.c (DrawTab):
	* xlwtabs.c (TabWidth):
	* xlwtabs.c (TabsAllocFgGC):
	* xlwtabs.c (TabsAllocGreyGC):
	* xlwtabsP.h:
	USE_XFT* -> HAVE_XFT*.

2010-01-28  Jerry James  <james@xemacs.org>

	* lwlib-internal.h: Add copyright and license boilerplate text
	based on Ben's recollections.

2009-12-09  Jerry James  <james@xemacs.org>

	* lwlib-Xlw.c: Include needed Xmu headers instead of obsolete xmu.h.
	* xlwcheckbox.c: Ditto.
	* xlwradio.c: Ditto.
	* xlwgauge.c: Ditto.  Unconditionally include HAVE_XMU code.
	* xlwtabs.c: Ditto.
	* xlwgcs.c: Ditto.  Remove pre-X11R5 code.
	* xlwgcs.h: Remove pre-X11R5 declarations.

2009-11-10  Jerry James  <james@xemacs.org>

	* lwlib.c: Drop workaround for old NeXT systems.

ChangeLog Entries from man/ChangeLog

goto announcement, summary, changes


2011-04-26  Stephen J. Turnbull  <stephen@xemacs.org>

	* XEmacs 21.5.30 "garlic" is released.

2011-04-02  Stephen J. Turnbull  <stephen@xemacs.org>

	* xemacs-faq.texi (Q2.5.7):
	New node on troubleshooting duplicate auto-autoloads.
	(Top):
	(Installation):
	(Q2.5.6):
	Update menus and node links for Q2.5.7.

2011-03-24  Jerry James  <james@xemacs.org>

	* internals/internals.texi (Creating a Window-System Type):
	"desireable" -> "desirable", "neglible" -> "negligible".
	(The Non-Client Area): "negotation" -> "negotiation".
	(Better Rendering Support -- Modern Font Support): "anomolies" ->
	"anomalies".
	(Discussion -- Switching to C++): "reliablity" -> "reliability".
	* lispref/mule.texi (Theory of Operation): "noticable" -> "noticeable".
	* lispref/strings.texi (Creating Strings): "occurances" ->
	"occurrences".
	* xemacs-faq.texi (Q1.0.3: How do you pronounce XEmacs?):
	"pronounciation" -> "pronunciation".
	(Q1.7.2: Which external packages are there?): "withing" -> "within".
	(Q2.4.3: XEmacs crashes and I compiled it myself.): "ealier" ->
	"earlier".
	(hg diff gives bizarre output.): "occured" -> "occurred", "relevent"
	-> "relevant".
	(How do I recover from a bad commit?  (I already pushed.)):
	"inadvertantly" -> "inadvertently".

2011-03-19  Stephen J. Turnbull  <stephen@xemacs.org>

	* lispref/customize.texi (Face Definitions): New node.
	(Customization): Add entry to menu.
	(Variable Definitions): Add cross-ref for `defface'.
	(Customization Types): Fixup Previous link.

	* lispref/faces.texi (Faces):
	Clarify that built-in properties of faces are computed at runtime.

2011-03-15  Aidan Kehoe  <kehoea@parhasard.net>

	* lispref/objects.texi (Character Type):
	* lispref/objects.texi (Equality Predicates):
	No longer document `old-eq', `old-equal', they haven't been used
	in years.

2011-03-14  Jeff Sparkes  <jsparkes@gmail.com>

	* lispref/faces.texi (Faces): Mention `min-colors' as a
	face specifier.

2011-03-01  Aidan Kehoe  <kehoea@parhasard.net>

	* lispref/commands.texi (Using Interactive):
	* lispref/compile.texi (Eval During Compile):
	* lispref/compile.texi (Compiled-Function Objects):
	* lispref/control.texi (Sequencing):
	* lispref/control.texi (Conditionals):
	* lispref/control.texi (Combining Conditions):
	* lispref/control.texi (Iteration):
	* lispref/control.texi (Catch and Throw):
	* lispref/control.texi (Handling Errors):
	* lispref/control.texi (Cleanups):
	* lispref/display.texi (Temporary Displays):
	* lispref/eval.texi (Quoting):
	* lispref/eval.texi (Multiple values):
	* lispref/frames.texi (Input Focus):
	* lispref/functions.texi (Argument List):
	* lispref/functions.texi (Defining Functions):
	* lispref/functions.texi (Anonymous Functions):
	* lispref/internationalization.texi (Level 3 Primitives):
	* lispref/internationalization.texi (Domain Specification):
	* lispref/intro.texi (A Sample Function Description):
	* lispref/intro.texi (A Sample Variable Description):
	* lispref/lists.texi (Sets And Lists):
	* lispref/macros.texi (Defining Macros):
	* lispref/macros.texi (Backquote):
	* lispref/positions.texi (Excursions):
	* lispref/positions.texi (Narrowing):
	* lispref/searching.texi (Saving Match Data):
	* lispref/sequences.texi (Sequence Functions):
	* lispref/sequences.texi (Array Functions):
	* lispref/specifiers.texi (Adding Specifications):
	* lispref/variables.texi (Local Variables):
	* lispref/variables.texi (Defining Variables):
	* lispref/variables.texi (Setting Variables):
	* lispref/variables.texi (Default Value):
	* lispref/windows.texi (Selecting Windows):
	* lispref/windows.texi (Window Configurations):
	No longer use @defspec, since we no longer use the term "special
	form"; instead use @deffn {Special Operator}. Unfortunately
	there's no way in texinfo to redefine @defspec in one place.

2011-03-01  Aidan Kehoe  <kehoea@parhasard.net>

	* cl.texi (Argument Lists):
	* cl.texi (Time of Evaluation):
	* cl.texi (Type Predicates):
	* cl.texi (Assignment):
	* cl.texi (Basic Setf):
	* cl.texi (Modify Macros):
	* cl.texi (Customizing Setf):
	* cl.texi (Dynamic Bindings):
	* cl.texi (Lexical Bindings):
	* cl.texi (Function Bindings):
	* cl.texi (Macro Bindings):
	* cl.texi (Conditionals):
	* cl.texi (Blocks and Exits):
	* cl.texi (Iteration):
	* cl.texi (Loop Basics):
	* cl.texi (Macros):
	* cl.texi (Declarations):
	* cl.texi (Property Lists):
	* cl.texi (Structures):
	* cl.texi (Assertions):
	* cl.texi (Efficiency Concerns):

2011-02-19  Aidan Kehoe  <kehoea@parhasard.net>

	* lispref/lists.texi (Sets And Lists):
	Document #'member*, #'remove*, #'delete* in this file. Document
	#'memq, #'member, #'remq, #'remove, #'delq, #'delete in terms of
	the former functions.
	Document #'subsetp, #'union, #'intersection, #'set-difference,
	#'set-exclusive-or and their destructive analogues in this file.
	* lispref/lists.texi (Association Lists):
	Document #'assoc*, #'rassoc* in this file. Document #'assq,
	#'assoc, #'rassq, #'rassoc in terms of the first two functions.
	* lispref/objects.texi (Equality Predicates):
	Document #'eql here, don't leave it to cl.texi.

2010-11-06  Aidan Kehoe  <kehoea@parhasard.net>

	* lispref/lists.texi (Rearrangement, Building Lists):
	Document that #'nreverse and #'reverse now accept sequences, not
	just lists, in this file.

2010-09-02  Aidan Kehoe  <kehoea@parhasard.net>

	* lispref/os.texi (Time Conversion):
	Document the new #'format-time-string flags for Roman month
	numbers.

2010-08-30  Aidan Kehoe  <kehoea@parhasard.net>

	* lispref/eval.texi (Evaluation, Multiple values):
	Document our implementation of multiple values; point the reader
	to the CLTL or the Hyperspec for details of exactly when values
	are discarded.

	* lispref/numbers.texi (Numeric Conversions): Document the
	optional DIVISOR arguments to the rounding functions, and
	document that they all return multiple values.
	(Rounding Operations): Ditto.

	* cl.texi (Multiple Values):
	Document that we've moved the multiple values implementation to
	core code, and cross-reference to the Lispref.
	(Numerical Functions): The various rounding functions are now
	identical to the built-in rounding functions, with the exception
	that they return lists, not multiple values; document this.

2010-08-21  Aidan Kehoe  <kehoea@parhasard.net>

	* lispref/objects.texi (Character Type):
	Go into more detail here on the specific type of error provoked on
	overlong hex character escapes and non-Latin-1 octal character
	escapes; give details of why the latter may be encountered, and
	what to do with such code.

2010-06-13  Stephen J. Turnbull  <stephen@xemacs.org>

	* external-widget.texi: Correct FSF address in permission notice.

2010-05-28  Aidan Kehoe  <kehoea@parhasard.net>

	* lispref/windows.texi (Buffers and Windows):
	Reword the documentation of `buffer-display-count';
	`buffer-display-time's documentation was taken from a version of
	the GNU elisp manuwal with a compatible licence,
	`buffer-display-count' was not.

2010-05-17  Jeff Sparkes  <jsparkes@gmail.com>

	* lispref/windows.texi (Buffers and Windows):
	Document buffer-display-count and buffer-display-time with
	descriptions from GNU emacs lispref.

	* lispref/locals.texi (Standard Buffer-Local Variables):
	Add buffer-display-count and buffer-display-time.

2010-04-03  Aidan Kehoe  <kehoea@parhasard.net>

	* lispref/hash-tables.texi (Introduction to Hash Tables):
	Document that we now support #'equalp as a hash table test by
	default, and mention #'define-hash-table-test.
	(Working With Hash Tables): Document #'define-hash-table-test.

2010-04-01  Aidan Kehoe  <kehoea@parhasard.net>

	* lispref/lists.texi (Rearrangement):
	Update the documentation of #'sort here, now that it accepts any
	type of sequence and the KEY keyword argument. (Though this is
	probably now the wrong place for this function, given that.)

2010-02-22  Ben Wing  <ben@xemacs.org>

	* internals/internals.texi (A Summary of the Various XEmacs Modules):
	* internals/internals.texi (Modules for other Display-Related Lisp Objects):
	objects*.[ch] -> fontcolor*.[ch].

2010-03-18  Mike Sperber  <mike@xemacs.org>

	* xemacs/startup.texi (Startup Paths): Reflect the (long-ago)
	change from `lib' to `share' for the architecture-independent
	directories.

2010-03-13  Ben Wing  <ben@xemacs.org>

	* internals/internals.texi (Working with Lisp Objects):
	* internals/internals.texi (Writing Macros):
	* internals/internals.texi (lrecords):
	More rewriting to correspond with changes from
	*LRECORD* to *LISP_OBJECT*.

2010-03-05  Ben Wing  <ben@xemacs.org>

	* internals/internals.texi (Introduction to Allocation):
	* internals/internals.texi (Integers and Characters):
	* internals/internals.texi (Allocation from Frob Blocks):
	* internals/internals.texi (lrecords):
	* internals/internals.texi (Low-level allocation):
	Rewrite section on allocation of Lisp objects to reflect the new
	reality.  Remove references to nonexistent XSETINT and XSETCHAR.

2010-03-04  Ben Wing  <ben@xemacs.org>

	* internals/internals.texi (Top):
	* internals/internals.texi (list-to-texinfo): Removed.
	* internals/internals.texi (convert-list-to-texinfo): New.
	* internals/internals.texi (table-to-texinfo): Removed.
	* internals/internals.texi (convert-table-to-texinfo): New.
	Update Lisp functions at top to newest versions.
	
	* internals/internals.texi (A History of Emacs):
	* internals/internals.texi (Through Version 18):
	* internals/internals.texi (Lucid Emacs):
	* internals/internals.texi (XEmacs):
	* internals/internals.texi (The XEmacs Split):
	* internals/internals.texi (Modules for Other Aspects of the Lisp Interpreter and Object System):
	* internals/internals.texi (Introduction to Writing C Code):
	* internals/internals.texi (Writing Good Comments):
	* internals/internals.texi (Writing Macros):
	* internals/internals.texi (Major Textual Changes):
	* internals/internals.texi (Great Integral Type Renaming):
	* internals/internals.texi (How to Regression-Test):
	* internals/internals.texi (Creating a Branch):
	* internals/internals.texi (Dynamic Arrays):
	* internals/internals.texi (Allocation by Blocks):
	* internals/internals.texi (mark_object):
	* internals/internals.texi (gc_sweep):
	* internals/internals.texi (Byte-Char Position Conversion):
	* internals/internals.texi (Searching and Matching):
	* internals/internals.texi (Introduction to Multilingual Issues #3):
	* internals/internals.texi (Byte Types):
	* internals/internals.texi (Different Ways of Seeing Internal Text):
	* internals/internals.texi (Buffer Positions):
	* internals/internals.texi (Basic internal-format APIs):
	* internals/internals.texi (The DFC API):
	* internals/internals.texi (General Guidelines for Writing Mule-Aware Code):
	* internals/internals.texi (Mule-izing Code):
	* internals/internals.texi (Locales):
	* internals/internals.texi (More about code pages):
	* internals/internals.texi (More about locales):
	* internals/internals.texi (Unicode support under Windows):
	* internals/internals.texi (The Frame):
	* internals/internals.texi (The Non-Client Area):
	* internals/internals.texi (The Client Area):
	* internals/internals.texi (The Paned Area):
	* internals/internals.texi (Text Areas):
	* internals/internals.texi (The Displayable Area):
	* internals/internals.texi (Event Queues):
	* internals/internals.texi (Event Stream Callback Routines):
	* internals/internals.texi (Focus Handling):
	* internals/internals.texi (Future Work -- Autodetection):
	Replace " with ``, '' (not complete, maybe about halfway through).

2010-03-03  Ben Wing  <ben@xemacs.org>

	* internals/internals.texi (Intro to Window and Frame Geometry):
	* internals/internals.texi (The Paned Area):
	* internals/internals.texi (The Displayable Area):
	Update to make note of e.g. the fact that the bottom gutter is
	actually above the minibuffer.

2010-03-02  Jerry James  <james@xemacs.org>

	* custom.texi: Delete, redundant with xemacs/custom.texi and
	lispref/customize.texi.
	* Makefile: Remove all rules relating to custom.texi.

2010-03-03  Aidan Kehoe  <kehoea@parhasard.net>

	* lispref/tips.texi (Comment Tips):
	* lispref/text.texi (Text Properties):
	* lispref/strings.texi (Creating Strings):
	* lispref/processes.texi (Input to Processes):
	* lispref/functions.texi (Argument List):
	* lispref/extents.texi (Duplicable Extents):
	Move examples that used substring to using subseq; in
	strings.texi, do not change the examples, but document that in
	this XEmacs, it is an alias for subseq, and that there may be some
	incompatibilities if you depend on that.

2010-02-25  Didier Verna  <didier@xemacs.org>

	The background-placement face property.
	* xemacs/custom.texi (Faces): Document it.

2010-02-20  Ben Wing  <ben@xemacs.org>

	* internals/internals.texi (Intro to Window and Frame Geometry):
	Shrink diagram to fit when offset by five spaces as a result of
	quoting.

2010-02-16  Ben Wing  <ben@xemacs.org>

	* internals/internals.texi (Top):
	* internals/internals.texi (Modules for the Basic Displayable Lisp Objects):
	* internals/internals.texi (Creating a Window-System Type):
	* internals/internals.texi (Window and Frame Geometry):
	* internals/internals.texi (Intro to Window and Frame Geometry):
	* internals/internals.texi (The Frame):
	* internals/internals.texi (The Non-Client Area):
	* internals/internals.texi (The Client Area):
	* internals/internals.texi (The Paned Area):
	* internals/internals.texi (Text Areas):
	* internals/internals.texi (The Displayable Area):
	* internals/internals.texi (Which Functions Use Which?):
	* internals/internals.texi (The Redisplay Mechanism):
	Integrate the long comment in frame.c into the internals manual.

2010-02-17  Jerry James  <james@xemacs.org>

	* term.texi: Move to the eterm package.
	* Makefile: Remove all rules relating to term.texi.

2010-02-10  Stephen J. Turnbull  <stephen@xemacs.org>

	* xemacs-faq.texi (Top): Update menu.
	(Legacy Versions): Update next pointer.
	(Bleeding Edge):
	(Q11.0.1):
	(Q11.0.2):
	(Q11.0.3):
	(Q11.0.4):
	(Q11.0.5):
	(Q11.1.1):
	(Q11.2.1):
	(Q11.2.2):
	(Q11.2.3):
	(Q11.2.4):
	(Q11.2.5):
	(Q11.2.6):
	(Q11.2.7):
	New nodes, describing repositories and VCS usage.

2010-02-08  Ben Wing  <ben@xemacs.org>

	* internals/internals.texi (How Lisp Objects Are Represented in C):
	* internals/internals.texi (Allocation of Objects in XEmacs Lisp):
	DEC Alpha is hardly the only 64-bit processor any more.
	Also, ERROR_CHECK_TYPECHECK is now ERROR_CHECK_TYPES.

2010-02-08  Jerry James  <james@xemacs.org>

	* emodules.texi: Relicense as GPL v2 or later, using J. Kean
	Johnston's blanket permission for such relicensing of his works.

2010-02-05  Ben Wing  <ben@xemacs.org>

	* internals/internals.texi (A Summary of the Various XEmacs Modules):
	* internals/internals.texi (Conversion to and from External Data):
	* internals/internals.texi (General Guidelines for Writing Mule-Aware Code):
	Correct names of files renamed common -> xlike.
	Fix up outdated explanation of old-style DFC conversion macros.
	Add a section on the different types of character and their uses,
	taken from a long comment in lisp.h.

2010-01-27  Ben Wing  <ben@xemacs.org>

	* internals/internals.texi (lrecords):
	* internals/internals.texi (The DFC API):
	* internals/internals.texi (Conversion to and from External Data):
	* internals/internals.texi (Mule-izing Code):
	* internals/internals.texi (Pervasive changes throughout XEmacs sources):
	* internals/internals.texi (Ben's README):
	* internals/internals.texi (Future Work -- Localized Text/Messages):
	* emodules.texi (Defining Variables):
	Rename:

	write_c_string -> write_cistring
	build_intstring -> build_istring
	build_string -> build_cistring
	build_ext_string -> build_extstring
	make_ext_string -> make_extstring
	buffer_insert_c_string -> buffer_insert_ascstring
	intern_int -> intern_istring

	See comment in src/ChangeLog about this.

2010-02-03  Ben Wing  <ben@xemacs.org>

	* internals/internals.texi (Top):
	* internals/internals.texi (Evaluation; Stack Frames; Bindings):
	* internals/internals.texi (Ben's README):
	* internals/internals.texi (Consoles; Devices; Frames; Windows):
	* internals/internals.texi (Window Hierarchy):
	* internals/internals.texi (The Window Object):
	* internals/internals.texi (Modules for the Basic Displayable Lisp Objects):
	* internals/internals.texi (Window-System Support):
	* internals/internals.texi (Creating a Window-System Type):
	* internals/internals.texi (Discussion -- Garbage Collection):
	Update the part at the top about how to maintain the file with
	more tips.

	Add a chapter on "window-system support" describing in a general
	way how the support for different window systems/device types
	works, including the separation between device-independent and
	device-dependent parts, device methods, the specific device types
	and the "xlike" pseudo-type.

2010-01-31  Aidan Kehoe  <kehoea@parhasard.net>

	* xemacs/programs.texi (Defuns): 
	* lispref/variables.texi (Local Variables, Defining Variables)
	(Setting Variables, Default Value):
	* lispref/symbols.texi (Definitions): 
	* lispref/searching.texi (Saving Match Data): 
	* lispref/positions.texi (Excursions, Narrowing):
	* lispref/objects.texi (Primitive Function Type): 
	* lispref/macros.texi (Defining Macros, Backquote): 
	* lispref/lispref.texi (Top): 
	* lispref/intro.texi (A Sample Function Description):
	* lispref/help.texi (Help Functions):
	* lispref/functions.texi (What Is a Function, Simple Lambda)
	(Defining Functions, Calling Functions, Anonymous Functions):
	* lispref/frames.texi (Input Focus):
	* lispref/eval.texi (Forms, Function Indirection)
	(Special Operators, Quoting):
	* lispref/edebug-inc.texi (Instrumenting)
	(Specification Examples):
	* lispref/debugging.texi (Internals of Debugger):
	* lispref/control.texi (Control Structures, Sequencing):
	(Conditionals, Combining Conditions, Iteration):
	(Catch and Throw, Handling Errors):
	* lispref/commands.texi (Defining Commands, Using Interactive):
	Terminology change; special operator -> special form. 

	Don't attempt to change this in texinfo.texi or cl.texi, which use
	macros I don't understand.

	* lispref/macros.texi (Defining Macros): Give an anonymous macro
	example here. 
	* lispref/positions.texi (Excursions):
	Correct some documentation that called a couple of macros special
	forms.
	* lispref/searching.texi (Saving Match Data):
	Drop some documentation of how to write code that works with Emacs
	18.
	* lispref/specifiers.texi (Adding Specifications):
	Correct this; #'let-specifier is a macro, not a special operator.
	* lispref/windows.texi (Window Configurations)
	(Selecting Windows): 
	Correct this, #'save-selected-window and #'save-window-excursion
	are macros, not special operators.

2010-01-28  Jerry James  <loganjerry@gmail.com>

	* external-widget.texi: Add copyright and license boilerplate text
	based on Ben's recollections.
	* lispref/internationalization.texi (Documentation String Extraction):
	Removed, as it refers to the obsolete make-po program.

2010-01-23  Aidan Kehoe  <kehoea@parhasard.net>

	Generally: be careful to say fixnum, not integer, when talking
	about fixed-precision integral types. I'm sure I've missed
	instances, both here and in the docstrings, but this is a decent
	start.

	* lispref/text.texi (Columns): 
	Document where only fixnums, not integers generally, are accepted.
	(Registers):
	Remove some ancient char-int confoundance here.
	* lispref/strings.texi (Creating Strings, Creating Strings):
	Be more exact in describing where fixnums but not integers in
	general are accepted.
	(Creating Strings): Use a more contemporary example to illustrate
	how concat deals with lists including integers about #xFF.  Delete
	some obsolete documentation on same.
	(Char Table Types): Document that only fixnums are accepted as
	values in syntax tables.
	* lispref/searching.texi (String Search, Search and Replace):
	Be exact in describing where fixnums but not integers in general
	are accepted.
	* lispref/range-tables.texi (Range Tables): Be exact in describing
	them; only fixnums are accepted to describe ranges.
	* lispref/os.texi (Killing XEmacs, User Identification)
	(Time of Day, Time Conversion):
	Be more exact about using fixnum where only fixed-precision
	integers are accepted.
	* lispref/objects.texi (Integer Type): Be more exact (and
	up-to-date) about the possible values for
	integers. Cross-reference to documentation of the bignum extension.
	(Equality Predicates):
	(Range Table Type):
	(Array Type): Use fixnum, not integer, to describe a
	fixed-precision integer.
	(Syntax Table Type): Correct some English syntax here.
	* lispref/numbers.texi (Numbers): Change the phrasing here to use
	fixnum to mean the fixed-precision integers normal in emacs.
	Document that our terminology deviates from that of Common Lisp,
	and that we're working on it.
	(Compatibility Issues): Reiterate the Common Lisp versus Emacs
	Lisp compatibility issues.
	(Comparison of Numbers, Arithmetic Operations):
	* lispref/commands.texi (Command Loop Info, Working With Events): 
	* lispref/buffers.texi (Modification Time): 
	Be more exact in describing where fixnums but not integers in
	general are accepted.

2010-01-06  Jerry James  <james@xemacs.org>

	* internals/internals.texi (Debugging and Testing): Document
	valgrind configuration and use.

2009-12-21  Jerry James  <james@xemacs.rg>

	* internals/internals.texi (A Summary of the Various XEmacs Modules):
	Remove references to OffiX support files.
	* lispref/dragndrop.texi (Drag and Drop): Remove reference to OffiX.
	(Supported Protocols): Ditto.
	(OffiX DND): Remove.

2009-12-10  Jerry James  <james@xemacs.org>

	* lispref/processes.texi (Functions that Create Subprocesses): Refer
	to etags instead of the obsolete wakeup program.

2009-12-09  Jerry James  <james@xemacs.org>

	* internals/internals.texi (A Summary of the Various XEmacs Modules):
	Remove references to xmu.c and xmu.h.
	(Modules for Interfacing with X Windows): Ditto.

2010-01-09  Aidan Kehoe  <kehoea@parhasard.net>

	* lispref/objects.texi (Hash Table Type):
	* lispref/hash-tables.texi (Introduction to Hash Tables):
	Use keywords, not ordinary symbols, in the hash table read syntax;
	document that we do accept the ordinary symbols for the sake of
	backward-compatiblity.

2009-11-10  Jerry James  <james@xemacs.org>

	* internals/internals.texi (XEmacs from the Perspective of Building):
	Remove reference to dynodump.
	(A Summary of the Various XEmacs Modules): Remove references to
	deleted files.
	(Low-Level Modules): Ditto.
	(Modules for the Basic Displayable Lisp Objects): Remove reference to
	NeXTstep.
	* lispref/os.texi (Operating System Environment): Remove references to
	old unsupported systems.
	* make-stds.texi (Variables for Installation Directories): Likely
	insufficient update to list of current operating systems.
	* xemacs-faq.texi (Q1.2.2: What versions of Unix does XEmacs run on?):
	Ditto.

2009-11-08  Aidan Kehoe  <kehoea@parhasard.net>

	* lispref/objects.texi (Equality Predicates): 
	Document #'equalp here, as well as #'equal and #'eq. 

2009-10-05  Jerry James  <james@xemacs.org>

	* beta.texi (Building XEmacs from a full distribution): Remove
	"(builtin)" from GIF line in example Installation.
	(Reporting Problems): Recommend taking screenshots as a PNG
	instead of a GIF.
	* internals/internals.texi (A Summary of the Various XEmacs Modules):
	Remove GIF-related files.
	* lispref/glyphs.texi (Image Instantiator Formats): Remove remark
	about builtin GIF support.

2009-08-11  Aidan Kehoe  <kehoea@parhasard.net>

	* lispref/numbers.texi (Bigfloat Basics): 
	Correct this documentation (ignoring for the moment that it breaks
	off in mid-sentence).

2009-08-11  Aidan Kehoe  <kehoea@parhasard.net>

	* cl.texi (Organization): 
	Remove references to the obsolete multiple-value emulating code.

2009-07-28  Stephen Turnbull  <stephen@xemacs.org>

	* internals/internals.texi (Redisplay Piece by Piece):
	Small improvements.

2009-07-08  Stephen Turnbull  <stephen@xemacs.org>

	* xemacs/custom.texi (Xft Font Customization): Change references
	from XftFont (now deprecated) to FcFontName.
	Thanks, Raymond Toy <raymond.toy@stericsson.com>.

ChangeLog Entries from modules/ChangeLog

goto announcement, summary, changes


2011-04-26  Stephen J. Turnbull  <stephen@xemacs.org>

	* XEmacs 21.5.30 "garlic" is released.

2010-04-12  Ben Wing  <ben@xemacs.org>

	* canna/canna_api.c:
	* canna/canna_api.c (Fcanna_henkan_begin):
	Fixes for errors reported in smoketest build.

2010-03-12  Ben Wing  <ben@xemacs.org>

	* base64/base64.c:
	* base64/base64.c (Fbase64_encode):
	* base64/base64.c (Fbase64_decode):
	* base64/base64.c (syms_of_base64):
	Fix file to follow GNU coding standards for indentation, spacing
	before parens.

2010-03-13  Ben Wing  <ben@xemacs.org>

	* postgresql/postgresql.c (print_pgconn):
	* postgresql/postgresql.c (print_pgresult):
	printing_unreadable_object -> printing_unreadable_object_fmt.

2010-03-13  Ben Wing  <ben@xemacs.org>

	* ldap/eldap.c (print_ldap):
	printing_unreadable_object -> printing_unreadable_object_fmt.

2010-03-07  Ben Wing  <ben@xemacs.org>

	* postgresql/postgresql.c (finalize_pgconn):
	* postgresql/postgresql.c (finalize_pgresult):
	* ldap/eldap.c (finalize_ldap):
	Fix the finalizers to go with the new calling sequence.  Done
	previously but somehow got lost.

2010-03-05  Ben Wing  <ben@xemacs.org>

	* postgresql/postgresql.c (allocate_pgconn):
	* postgresql/postgresql.c (allocate_pgresult):
	* postgresql/postgresql.h (struct Lisp_PGconn):
	* postgresql/postgresql.h (struct Lisp_PGresult):
	* ldap/eldap.c (allocate_ldap):
	* ldap/eldap.h (struct Lisp_LDAP):
	Same changes as in src/ dir.  See large log there in ChangeLog,
	but basically:

	ALLOC_LISP_OBJECT -> ALLOC_NORMAL_LISP_OBJECT
	LISP_OBJECT_HEADER -> NORMAL_LISP_OBJECT_HEADER

2010-02-06  Ben Wing  <ben@xemacs.org>

	* canna/canna_api.c:
	* canna/canna_api.c (storeResults):
	* canna/canna_api.c (Fcanna_set_bunsetsu):
	* canna/canna_api.c (Fcanna_initialize):
	* canna/canna_api.c (Fcanna_store_yomi):
	* canna/canna_api.c (Fcanna_henkan_end):
	Convert file to utf-8.

2010-02-05  Ben Wing  <ben@xemacs.org>

	* postgresql/postgresql.c:
	* postgresql/postgresql.c (CHECK_LIVE_CONNECTION):
	* postgresql/postgresql.c (Fpq_connectdb):
	* postgresql/postgresql.c (Fpq_connect_start):
	* postgresql/postgresql.c (Fpq_lo_import):
	* postgresql/postgresql.c (Fpq_lo_export):
	* ldap/eldap.c (Fldap_open):
	* ldap/eldap.c (Fldap_search_basic):
	* ldap/eldap.c (Fldap_add):
	* ldap/eldap.c (Fldap_modify):
	* ldap/eldap.c (Fldap_delete):
	* canna/canna_api.c (Fcanna_initialize):
	* canna/canna_api.c (Fcanna_store_yomi):
	* canna/canna_api.c (Fcanna_parse):
	* canna/canna_api.c (Fcanna_henkan_begin):
	EXTERNAL_TO_C_STRING returns its argument instead of storing it
	in a parameter, and is renamed to EXTERNAL_TO_ITEXT.  Similar
	things happen to related macros.  See entry in src/ChangeLog.

	More Mule-izing of postgresql.c.  Extract out common code
	between `pq-connectdb' and `pq-connect-start'.  Fix places
	that signal an error string using a formatted string to instead
	follow the standard and have a fixed reason followed by the
	particular error message stored as one of the frobs.

2010-01-27  Ben Wing  <ben@xemacs.org>

	* postgresql/postgresql.c (print_pgconn):
	* postgresql/postgresql.c (print_pgresult):
	* postgresql/postgresql.c (Fpq_conn_defaults):
	* postgresql/postgresql.c (Fpq_pgconn):
	* postgresql/postgresql.c (Fpq_res_status):
	* postgresql/postgresql.c (Fpq_result_error_message):
	* postgresql/postgresql.c (Fpq_fname):
	* postgresql/postgresql.c (Fpq_get_value):
	* postgresql/postgresql.c (Fpq_cmd_status):
	* postgresql/postgresql.c (Fpq_cmd_tuples):
	* postgresql/postgresql.c (Fpq_notifies):
	* postgresql/postgresql.c (Fpq_get_line):
	* postgresql/postgresql.c (Fpq_get_line_async):
	* postgresql/postgresql.c (FROB):
	* postgresql/postgresql.c (init_postgresql_from_environment):
	* ldap/eldap.c:
	* ldap/eldap.c (Fldap_open):
	* ldap/eldap.c (Fldap_search_basic):
	* canna/canna_api.c:
	* canna/canna_api.c (make_euc_string):
	Rename:

	write_c_string -> write_cistring
	build_intstring -> build_istring
	build_string -> build_cistring
	build_ext_string -> build_extstring
	make_ext_string -> make_extstring
	buffer_insert_c_string -> buffer_insert_ascstring
	intern_int -> intern_istring

	See comment in src/ChangeLog about this.
	
2010-01-26  Ben Wing  <ben@xemacs.org>

	* postgresql/postgresql.c:
	* postgresql/postgresql.c (CHECK_LIVE_CONNECTION):
	* postgresql/postgresql.c (print_pgresult):
	* postgresql/postgresql.c (Fpq_conn_defaults):
	* postgresql/postgresql.c (Fpq_connectdb):
	* postgresql/postgresql.c (Fpq_connect_start):
	* postgresql/postgresql.c (Fpq_result_status):
	* postgresql/postgresql.c (Fpq_res_status):
	Mule-ize large parts of it.  

2010-01-26  Ben Wing  <ben@xemacs.org>

	* ldap/eldap.c (print_ldap):
	* ldap/eldap.c (allocate_ldap):
	Use write_ascstring().

2010-01-24  Ben Wing  <ben@xemacs.org>

	* postgresql/postgresql.c (CHECK_LIVE_CONNECTION):
	* postgresql/postgresql.c (print_pgconn):
	* postgresql/postgresql.c (Fpq_connectdb):
	* postgresql/postgresql.c (Fpq_connect_start):
	* postgresql/postgresql.c (Fpq_exec):
	* postgresql/postgresql.c (Fpq_get_result):
	Fix g++ 4.3 complaints about implicit conversions of string
	literals (const char *) to char *.

2010-01-16  Ben Wing  <ben@xemacs.org>

	* common/Makefile.common:
	* common/Makefile.common (.PHONY):
	Use WIN32_ANY not HAVE_MS_WINDOWS so we still link with the
	import library even when --with-msw=no.

2010-01-11  Ben Wing  <ben@xemacs.org>

	* ldap/eldap.c (Fldap_search_basic):
	Cast to Extbyte * to avoid C++ compile error.

2009-11-10  Jerry James  <james@xemacs.org>

	* canna/canna_api.c (Fcanna_initialize): Drop support for the NEC EWS.

2009-11-09  Jerry James  <james@xemacs.org>

	* sample/external/Makefile.in.in: Clarify GPL status.
	* sample/external/configure.ac: Ditto.
	* sample/external/sample.c: Ditto.
	* sample/internal/sample.c: Ditto.

2009-10-05  Jerry James  <james@xemacs.org>

	* ldap/eldap.c (Fldap_search_basic): quiet gcc warnings due to
	NEW_LISP_STRING_TO_EXTERNAL modifying a variable while computing a
	result to be passed as a parameter.

ChangeLog Entries from nt/ChangeLog

goto announcement, summary, changes


2011-04-26  Stephen J. Turnbull  <stephen@xemacs.org>

	* XEmacs 21.5.30 "garlic" is released.

2010-06-14  Stephen J. Turnbull  <stephen@xemacs.org>

	* compface.mak: More permission consistency.

2010-06-13  Stephen J. Turnbull  <stephen@xemacs.org>

	* tiff.mak:
	* xemacs.rc:
	* xpm.mak:
	Correct FSF address in permission notice.

2010-02-22  Ben Wing  <ben@xemacs.org>

	* xemacs.dsp:
	* xemacs.mak:
	* xemacs.mak (OPT_OBJS):
	objects*.[ch] -> fontcolor*.[ch].

2010-03-29  Vin Shelton  <acs@xemacs.org>

	* xemacs.mak (TEMACS_COMMON_OBJS): Add array.obj and remove
	dynarr.obj, to catch up with Ben's changes of 2010-03-28.

2010-03-08  Vin Shelton  <acs@xemacs.org>

	* xemacs.mak (batch_test_emacs): The test harness no longer
	resides in $(testdir), per Ben's changes of 2010-02-22.

2010-03-02  Jerry James  <james@xemacs.org>

	* xemacs.mak (INFO_FILES): Removed custom.info.

2010-02-18  Vin Shelton  <acs@xemacs.org>

	* xemacs.mak (INFO_FILES): Removed term.info.

2010-02-11  Vin Shelton  <acs@xemacs.org>
 
 	* xemacs.mak (LIB_SRC_DEFINES): Added PROGRAM_DEFINES to lib_src
 	compilation options so winclient.c can see them.
 
2010-02-03  Jerry James  <james@xemacs.org>

	* xemacs.rc: Add license and copyright boilerplate text for Jonathan
	Harris.
	* xpm.mak: Ditto.

2010-01-28  Jerry James  <james@xemacs.org>

	* compface.mak: Add license and copyright boilerplate text based
	on Ben's recollections.
	* tiff.mak: Ditto.

2009-12-21  Jerry James  <james@xemacs.org>

	* xemacs.dsp: Remove references to OffiX files.

2009-12-15  Jerry James  <james@xemacs.org>

	* xemacs.mak: Remove build dependency for lib-src/wakeup.  Thanks to
	Vin Shelton for the patch.

2009-12-14  Jerry James  <james@xemacs.org>

	* installer: Remove unused Wise installer sources.

2009-12-09  Jerry James  <james@xemacs.org>

	* xemacs.dsp: Drop references to xmu.c and xmu.h.

2009-11-10  Jerry James  <james@xemacs.org>

	* xemacs.dsp: Drop references to removed source files.

2009-11-09  Jerry James  <james@xemacs.org>

	* xemacs.mak: Don't define GNU_MALLOC, as there is no longer an "old"
	GNU malloc.

2009-10-06  Vin Shelton  <acs@xemacs.org>

	* xemacs.mak: For giflib, the include files are found in
		      $(GIF_DIR)\include and the library is named
		      giflib.lib.

2009-10-05  Jerry James  <james@xemacs.org>

	* config.inc.samp: Add GIF_DIR for external GIF support.
	* xemacs.mak: Convert from internal to external GIF support.
	* xemacs.dsp: Drop internal GIF source files.
	* README: Remove remark about internal GIF support.

ChangeLog Entries from src/ChangeLog

goto announcement, summary, changes


2011-04-26  Stephen J. Turnbull  <stephen@xemacs.org>

	* XEmacs 21.5.30 "garlic" is released.

2011-04-23  Aidan Kehoe  <kehoea@parhasard.net>

	* editfns.c:
	* editfns.c (syms_of_editfns):
	Implement #'char= in cl-extra.el, not here, accepting more than
	two arguments as Common Lisp specifies.

2011-04-17  Jeff Sparkes  <jsparkes@gmail.com>

	* device-tty.c (tty_device_system_metrics): Fix compile issues for
	C89 compilers.  Use log() instead of log2().

2011-04-04  Aidan Kehoe  <kehoea@parhasard.net>

	* fns.c (count_with_tail):
	This can be legitimately called from #'delete* with a specified
	COUNT keyword value, accept this in the assertion.
	* fns.c (FdeleteX):
	* fns.c (FremoveX):
	If COUNT is specified and FROM-END is non-nil, set COUNT to nil in
	the argument vector, so count_with_tail doesn't see it when
	calculating the total number of times an item occurs.  Fixes
	problems with the interaction of :count and :from-end.

2011-04-04  Aidan Kehoe  <kehoea@parhasard.net>

	* fns.c (FremoveX):
	* fns.c (sublis):
	Correct some nesting of GCPRO and UNGCPRO here, revealed by the
	the C++ build compiling core Lisp. Thank you Mats' buildbot!

2011-04-04  Aidan Kehoe  <kehoea@parhasard.net>

	* lisp.h (GC_EXTERNAL_LIST_LOOP_3, GC_EXTERNAL_LIST_LOOP_4): New.
	* fns.c (count_with_tail, list_position_cons_before, FassocX):
	* fns.c (FrassocX, position, FdeleteX, FremoveX):
	* fns.c (list_delete_duplicates_from_end):
	* fns.c (Fdelete_duplicates, Fremove_duplicates, Freduce):
	* fns.c (Fnsubstitute, Fsubstitute, sublis, nsublis, Fnsublis):
	* fns.c (venn, nvenn, Funion, Fset_exclusive_or, Fnset_exclusive_or):
	Use GC_EXTERNAL_LIST_LOOP_* in the sequence functions in fns.c
	where appropriate, there were some corner cases where my old
	approach was unsafe (mainly if the circularity checking's tortoise
	lost GCPRO protection.
	Add GC_EXTERNAL_LIST_LOOP_{3,4}, analogous to
	GC_EXTERNAL_LIST_LOOP_2.

2011-03-28  Jeff Sparkes  <jsparkes@gmail.com>

	* console-tty-impl.h (struct tty_console): Add field for number of
	displayable colors.
	* device-tty.c (tty_device_system_metrics): Return metrics for
	num-color-cells and num-bit-planes.  Tracker issue 757.
	* device.c: There are two required args for device-system-metric.
	* redisplay-tty.c (init_tty_for_redisplay): Retrieve number of
	colors from terminal description.  Default to 2 if none found.

2011-03-24  Jerry James  <james@xemacs.org>

	* alloc.c (listu): Assemble the list in the right order so we don't
	have to reverse it.
	(listn): Ditto.
	* dired.c (Ffile_attributes): Use listn instead of building an array
	to pass to Flist.  GC protect the mode string.
	* editfns.c (Fdecode_time): Use listn instead of Flist.
	* faces.c (vars_of_faces): Use listu instead of Flist.

2011-03-24  Jerry James  <james@xemacs.org>

	* README.kkcc: "occured" -> "occurred".
	* alloc.c (malloced_storage_size): "supress" -> "suppress".
	* buffer.c: "intial" -> "initial".
	* elhash.c (Fdefine_hash_table_test): "analagous" -> "analogous".
	* emacs.c: "targetting" -> "targeting".
	(shut_down_emacs): "recurrance" -> "reoccurrence".
	* event-stream.c: "accidentaly" -> "accidentally", and fix grammar.
	* extents.c: "occuring" -> "occurring".
	* faces.c (update_face_cachel_data): "appart" -> "apart", "begining"
	-> "beginning".
	* file-coding.c (Vkeyboard_coding_system): "interpet" -> "interpret".
	* fileio.c (Fmake_temp_name): "analagous" -> "analogous".
	* fontcolor-gtk.c: "sucess" -> "success".
	* frame-gtk.c (gtk_init_frame_2): "carefull" -> "careful", fix
	whitespace.
	* frame.c: "negotation" -> "negotiation".
	* glyphs-msw.c (mswindows_map_subwindow): "everytime" -> "every time".
	* glyphs-widget.c: "accomodate" -> "accommodate".
	(logical_unit_height): Ditto.
	(Fwidget_logical_to_character_height): Ditto.
	* gtk-xemacs.c (__nuke_background_items): "noticable" -> "noticeable".
	* menubar-gtk.c: "inital" -> "initial".
	* mule-ccl.c: "refered" -> "referred to".
	* nt.c (mswindows_stat): "noticable" -> "noticeable".
	* ntheap.c (recreate_heap): "commited" -> "committed".
	* s/cygwin32.h: "konw" -> "know".
	* sysdll.c: "dependant" -> "dependent".
	* syswindows.h: "targetting" -> "targeting".
	* text.c: "reversable" -> "reversible".
	* unexcw.c (copy_executable_and_dump_data_section): "addres" ->
	"address".
	* unicode.c (Funicode_precedence_list): "occurrance" -> "occurrence".
	* window.c (struct window_mirror_stats): "Ancilliary" -> "Ancillary".

2011-03-20  Mats Lidell  <matsl@xemacs.org>

	* alloca.c (find_stack_direction):
	* alloca.c (xemacs_c_alloca):
	Remove use of auto keyword. It is default and will be illegal in
	C++0X.

2011-03-17  Didier Verna  <didier@xemacs.org>

	* data.c (init_errors_once_early): Define Qextent_read_only error.
	* lisp.h: Declare it.
	* extents.c (verify_extent_mapper): Signal an extent-read-only
	error instead of a buffer-read-only one.

2011-03-15  Aidan Kehoe  <kehoea@parhasard.net>

	* config.h.in (SUPPORT_CONFOUNDING_FUNCTIONS): New #define,
	equivalent NEED_TO_HANDLE_21_4_CODE by default, describing whether
	this XEmacs should support the old-eq, old-equal and related
	functions and byte codes.
	* bytecode.c (UNUSED):
	Only interpret old-eq, old-equal, old-memq if
	SUPPORT_CONFOUNDING_FUNCTIONS is defined.
	* data.c:
	Move Fold_eq to fns.c with the rest of the Fold_* functions.
	* fns.c:
	* fns.c (Fmemq):
	* fns.c (memq_no_quit):
	* fns.c (assoc_no_quit):
	* fns.c (Frassq):
	* fns.c (Fequal):
	* fns.c (Fold_equal):
	* fns.c (syms_of_fns):
	Group old-eq, old-equal, old-memq etc together, surround them with
	#ifdef SUPPORT_CONFOUNDING_FUNCTIONS.

2011-03-14  Aidan Kehoe  <kehoea@parhasard.net>

	* glyphs-eimage.c (png_instantiate):
	Update the PNG handling code to work with versions of the library
	where the png_info structure is no longer visible. Thank you for
	the report, Robert Delius Royar.

2011-03-12  Aidan Kehoe  <kehoea@parhasard.net>

	* event-stream.c (Fdispatch_event):
	As documented, allow pre-command-hook to usefully modify
	this-command even when this-command is nil (that is, we would
	normally throw an undefined-keystroke-sequence error). Don't throw
	that error if this-command was modified, instead try to execute
	the new value.
	Allow pre-command-hook to modify last-command-event in this
	specific context. Don't document this, for the moment.

2011-03-11  Aidan Kehoe  <kehoea@parhasard.net>

	* bytecode.c (optimize_byte_code):
	Only transform assignments to keywords to Bdiscard if
	NEED_TO_HANDLE_21_4_CODE is turned on. Cf. similar code in
	reject_constant_symbols().

2011-02-24  Aidan Kehoe  <kehoea@parhasard.net>

	* fns.c (Fsubstring_no_properties):
	Sigh, get_string_range_char checks the type of its START and END
	arguments, but doesn't check the type of its STRING
	argument. Thank you Raymond Toy!

2011-02-19  Aidan Kehoe  <kehoea@parhasard.net>

	* fns.c (Fset_exclusive_or):
	This function accepts the :stable keyword too, document this in
	its arglist.

2011-02-16  Aidan Kehoe  <kehoea@parhasard.net>

	* xemacs.def.in.in:
	No longer export acons(), export Facons() instead, thank you Mats,
	Jerry and Jeff Sparkes.

2011-02-10  Aidan Kehoe  <kehoea@parhasard.net>

	* fns.c (shortest_length_among_sequences):
	This was buggy, it always errored if the last argument was
	circular, even if other arguments were non-circular. Correct that.

2011-02-09  Aidan Kehoe  <kehoea@parhasard.net>

	* alloc.c (Facons):
	* alloc.c (Fobject_memory_usage):
	* alloc.c (syms_of_alloc):
	* faces.c (complex_vars_of_faces):
	* lisp.h:
	* mc-alloc.c (Fmc_alloc_memory_usage):
	Rename acons() to Facons(), make it visible to Lisp. Change uses
	of the function in C accordingly.

2011-02-07  Aidan Kehoe  <kehoea@parhasard.net>

	* keymap.c (describe_map_sort_predicate): Correct the order of
	arguments to map_keymap_sort_predicate() here. Thanks again, Mats.

2011-02-06  Aidan Kehoe  <kehoea@parhasard.net>

	* symbols.c (Fapropos_internal):
	Supply check_string_lessp_nokey explicitly as the CHECK_MERGE
	argument to list_sort(), NULL no longer works. Thank you Mats
	Lidell in IRC!

2011-02-05  Aidan Kehoe  <kehoea@parhasard.net>

	* fns.c:
	* fns.c (check_lss_key, check_lss_key_car): New.
	* fns.c (check_string_lessp_key check_string_lessp_key_car): New.
	* fns.c (get_merge_predicate): New.
	* fns.c (list_merge):
	* fns.c (array_merge):
	* fns.c (list_array_merge_into_list):
	* fns.c (list_list_merge_into_array):
	* fns.c (list_array_merge_into_array):
	* fns.c (Fmerge):
	* fns.c (list_sort):
	* fns.c (array_sort):
	* fns.c (FsortX):
	* fns.c (syms_of_fns):
	* lisp.h:
	Move #'sort, #'merge to using the same test approach as is used in
	the functions that take TEST, TEST-NOT and KEY arguments.  This
	allows us to avoid the Ffuncall() overhead when the most common
	PREDICATE arguments are supplied, in particular #'< and
	#'string-lessp.

	* fontcolor-msw.c (sort_font_list_function):
	* fontcolor-msw.c (mswindows_enumerate_fonts):
	* dired.c:
	* dired.c (Fdirectory_files):
	* fileio.c:
	* fileio.c (build_annotations):
	* fileio.c (syms_of_fileio):
	* keymap.c:
	* keymap.c (keymap_submaps):
	* keymap.c (map_keymap_sort_predicate):
	* keymap.c (describe_map_sort_predicate):
	* keymap.c (describe_map):
	Change the various C predicates passed to list_sort () and
	list_merge () to fit the new calling convention, returning
	non-zero if the first argument is less than the second, zero
	otherwise.

2011-01-30  Michael Sperber  <mike@xemacs.org>

	* redisplay.h: 
	* redisplay.c: 
	(redisplay_cancel_ritual_suicide): 
	* eval.c (throw_or_bomb_out_unsafe): 
	* device-x.c (x_IO_error_handler): Don't commit suicide when an X
	device dies.

2011-01-23  Aidan Kehoe  <kehoea@parhasard.net>

	* file-coding.c (complex_vars_of_file_coding):
	* intl-win32.c (complex_vars_of_intl_win32):
	* profile.c (Fget_profiling_info):
	* unicode.c (complex_vars_of_unicode):
	Replace various awkward calls to nconc2 () with list6 () with
	analogous calls to Ben's relatively-recently introduced listu (),
	constructing a list from an arbitrary number of C arguments.

2011-01-18  Mike Sperber  <mike@xemacs.org>

	* s/freebsd.h: Zap. Not really needed anymore, and it has unclear
	license status.

2011-01-15  Aidan Kehoe  <kehoea@parhasard.net>

	* s/usg5-4.h (PTY_NAME_SPRINTF, PTY_TTY_NAME_SPRINTF):
	That didn't work; attempt with qxestrcpy_ascii(),
	qxestrncpy_ascii().

2011-01-14  Aidan Kehoe  <kehoea@parhasard.net>

	* s/hpux11.h (PTY_TTY_NAME_SPRINTF, PTY_NAME_SPRINTF):
	* s/usg5-4.h (PTY_TTY_NAME_SPRINTF, PTY_NAME_SPRINTF):
	Replace sprintf() with qxesprintf(), strcpy with qxestrpy(),
	hopefully fixing some platform-specific C++ builds.

2011-01-14  Aidan Kehoe  <kehoea@parhasard.net>

	* fns.c (Ffind): Use the correct subr information here, pass in
	the DEFAULT keyword argument value correctly.

2011-01-11  Aidan Kehoe  <kehoea@parhasard.net>

	* device-msw.c (Fmswindows_printer_list): Remove a Fdelete ()
	call here, remove the necessity for it.
	* fns.c (Fdelete, Fdelq): 
	* lisp.h:
	Move #'delete, #'delq to Lisp, implemented in terms of #'delete*
	* select.c (Fown_selection_internal):
	* select.c (handle_selection_clear):
	Use delq_no_quit() in these functions, don't reimplement it or use
	Fdelq(), which is now gone.

2011-01-10  Aidan Kehoe  <kehoea@parhasard.net>

	* mc-alloc.c (get_used_list_index):
	Replace some C++ comments with C-style /* comments.

2011-01-02  Aidan Kehoe  <kehoea@parhasard.net>

	* fns.c (FdeleteX, FremoveX, Fnsubstitute, Fsubstitute, syms_of_fns): 
	Don't repeat the declaration and DEFSYMBOL() for Qnintersection in
	this file; don't assume that bignums are always available. Fixes
	some of the build problems the buildbot is showing me at the
	moment.
	(syms_of_fns): Remove a couple more duplicate symbol declarations.

2011-01-01  Aidan Kehoe  <kehoea@parhasard.net>

	* data.c (print_ephemeron, print_weak_list, print_weak_box):
	Be more helpful in printing these structures; show their contents,
	print their UIDs so it's possible to distinguish between them.

2010-12-30  Aidan Kehoe  <kehoea@parhasard.net>

	Move the heavy lifting from cl-seq.el to C, finally making those
	functions first-class XEmacs citizens, with circularity checking,
	built-in support for tests other than #'eql, and as much
	compatibility with current Common Lisp as Paul Dietz' tests require.

	* fns.c (check_eq_nokey, check_eq_key, check_eql_nokey)
	(check_eql_key, check_equal_nokey, check_equal_key)
	(check_equalp_nokey, check_equalp_key, check_string_match_nokey)
	(check_string_match_key, check_other_nokey, check_other_key)
	(check_if_nokey, check_if_key, check_match_eq_key)
	(check_match_eql_key, check_match_equal_key)
	(check_match_equalp_key, check_match_other_key): New. These are
	basically to provide function pointers to be used by Lisp
	functions that take TEST, TEST-NOT and KEY arguments.

	(get_check_match_function_1, get_check_test_function)
	(get_check_match_function): These functions work out which of the
	previous list of functions to use, given the keywords supplied by
	the user.

	(count_with_tail): New. This is the bones of #'count.
	(list_count_from_end, string_count_from_end): Utility functions
	for #'count.
	(Fcount): New, moved from cl-seq.el.
	(list_position_cons_before): New. The implementation of #'member*,
	and important in implementing various other functions.

	(FmemberX, Fadjoin, FassocX, FrassocX, Fposition, Ffind)
	(FdeleteX, FremoveX, Fdelete_duplicates, Fremove_duplicates)
	(Fnsubstitute, Fsubstitute, Fsublis, Fnsublis, Fsubst, Fnsubst)
	(Ftree_equal, Fmismatch, Fsearch, Fintersection, Fnintersection)
	(Fsubsetp, Fset_difference, Fnset_difference, Fnunion, Funion)
	(Fset_exclusive_or, Fnset_exclusive_or): New, moved here from
	cl-seq.el.

	(position): New. The implementation of #'find and #'position.
	(list_delete_duplicates_from_end, subst, sublis, nsublis)
	(tree_equal, mismatch_from_end, mismatch_list_list)
	(mismatch_list_string, mismatch_list_array)
	(mismatch_string_array, mismatch_string_string)
	(mismatch_array_array, get_mismatch_func): Helper C functions for
	the Lisp-visible functions.
	(venn, nvenn): New. The implementation of the main Lisp functions that
	treat lists as sets.

2010-12-30  Aidan Kehoe  <kehoea@parhasard.net>

	* lisp.h (DECLARE_N_KEYWORDS_8, DECLARE_N_KEYWORDS_9)
	(CHECK_N_KEYWORDS_8, CHECK_N_KEYWORDS_9):
	Support up to nine keywords in the PARSE_KEYWORDS() macro.

2010-12-30  Aidan Kehoe  <kehoea@parhasard.net>

	* elhash.c (syms_of_elhash): 
	* chartab.c (syms_of_chartab):
	* abbrev.c (syms_of_abbrev):
	* general-slots.h:
	Move Qcount, Q_default, Q_test to general-slots.h, they're about
	to be used by other files. Rename Q_default to Q_default_, for the
	sake of the PARSE_KEYWORDS macro (given that default is a reserved
	identifier in C). Add SYMBOL_KEYWORD_GENERAL(), analogous to
	SYMBOL_GENERAL() to make this easier.

2010-12-29  Aidan Kehoe  <kehoea@parhasard.net>

	* floatfns.c (Ffloat): If we've been handed a bigfloat here, it's
	appropriate to give the same bigfloat back.

2010-11-30  Aidan Kehoe  <kehoea@parhasard.net>

	* fns.c (Ffill):
	Move all declarations before statements, for the sake of the
	Visual Studio build. Thank you Vin!

2010-11-24  Aidan Kehoe  <kehoea@parhasard.net>

	* font-mgr.c (Ffc_pattern_get): Fix my last change when both
	--with-union-type and --with-xft are specified, thank you Robert
	Delius Royar!

2010-11-20  Aidan Kehoe  <kehoea@parhasard.net>

	* abbrev.c (Fexpand_abbrev):
	* alloc.c:
	* alloc.c (Fmake_list):
	* alloc.c (Fmake_vector):
	* alloc.c (Fmake_bit_vector):
	* alloc.c (Fmake_byte_code):
	* alloc.c (Fmake_string):
	* alloc.c (vars_of_alloc):
	* bytecode.c (UNUSED):
	* bytecode.c (Fbyte_code):
	* chartab.c (decode_char_table_range):
	* cmds.c (Fself_insert_command):
	* data.c (check_integer_range):
	* data.c (Fnatnump):
	* data.c (Fnonnegativep):
	* data.c (Fstring_to_number):
	* elhash.c (hash_table_size_validate):
	* elhash.c (decode_hash_table_size):
	* eval.c (Fbacktrace_frame):
	* event-stream.c (lisp_number_to_milliseconds):
	* event-stream.c (Faccept_process_output):
	* event-stream.c (Frecent_keys):
	* event-stream.c (Fdispatch_event):
	* events.c (Fmake_event):
	* events.c (Fevent_timestamp):
	* events.c (Fevent_timestamp_lessp):
	* events.h:
	* events.h (struct command_builder):
	* file-coding.c (gzip_putprop):
	* fns.c:
	* fns.c (check_sequence_range):
	* fns.c (Frandom):
	* fns.c (Fnthcdr):
	* fns.c (Flast):
	* fns.c (Fnbutlast):
	* fns.c (Fbutlast):
	* fns.c (Fmember):
	* fns.c (Ffill):
	* fns.c (Freduce):
	* fns.c (replace_string_range_1):
	* fns.c (Freplace):
	* font-mgr.c (Ffc_pattern_get):
	* frame-msw.c (msprinter_set_frame_properties):
	* glyphs.c (check_valid_xbm_inline):
	* indent.c (Fmove_to_column):
	* intl-win32.c (mswindows_multibyte_to_unicode_putprop):
	* lisp.h:
	* lisp.h (ARRAY_DIMENSION_LIMIT):
	* lread.c (decode_mode_1):
	* mule-ccl.c (ccl_get_compiled_code):
	* number.h:
	* process-unix.c (unix_open_multicast_group):
	* process.c (Fset_process_window_size):
	* profile.c (Fstart_profiling):
	* unicode.c (Funicode_to_char):
	Change NATNUMP to return 1 for positive bignums; changes uses of
	it and of CHECK_NATNUM appropriately, usually by checking for an
	integer in an appropriate range.
	Add array-dimension-limit and use it in #'make-vector,
	#'make-string. Add array-total-size-limit, array-rank-limit while
	we're at it, for the sake of any Common Lisp-oriented code that
	uses these limits.
	Rename check_int_range to check_integer_range, have it take
	Lisp_Objects (and thus bignums) instead.
	Remove bignum_butlast(), just set int_n to an appropriately large
	integer if N is a bignum.
	Accept bignums in check_sequence_range(), change the functions
	that use check_sequence_range() appropriately.
	Move the definition of NATNUMP() to number.h; document why it's a
	reasonable name, contradicting an old comment.

2010-11-17  Aidan Kehoe  <kehoea@parhasard.net>

	* fns.c (bignum_butlast): New.
	(Fnbutlast, Fbutlast): Use it.
	In #'butlast and #'nbutlast, if N is a bignum, we should always
	return nil. Bug revealed by Paul Dietz' test suite, thank you
	Paul.

2010-11-15  Aidan Kehoe  <kehoea@parhasard.net>

	* .gdbinit.in: Remove lrecord_type_popup_data,
	lrecord_type_window_configuration from this file, they're not
	used, and their presence breaks pobj in GDB at runtime for me.

2010-11-14  Aidan Kehoe  <kehoea@parhasard.net>

	* fns.c (Fnreverse):
	Check that non-list sequences are writable from Lisp before
	modifying them. (There's an argument that we should do this for
	list sequences too, but for the moment other code (e.g. #'setcar)
	doesn't.)
	(mapcarX): Initialise lisp_vals_staging, lisp_vals_type
	explicitly, for the sake of compile warnings. Check if
	lisp_vals_staging is non-NULL when deciding whether to replace a
	string's range.
	(Fsome): Cross-reference to #'find-if in the doc string for this
	function.
	(Freduce): GCPRO accum in this function, when a key argument is
	specicified it can be silently garbage-collected.  When deciding
	whether to iterate across a string, check whether the cursor
	exceeds the byte len; while iterating, increment an integer
	counter.  Don't ABORT() if check_sequence_range() returns when
	handed a suspicious sequence; it is legal to supply the length of
	SEQUENCE as the :end keyword value, and this will provoke our
	suspicions, legitimately enough. (Problems with this function
	revealed by Paul Dietz' ANSI test suite, thank you Paul Dietz.)
	(Freplace): Check list sequence lengths using the arguments, not
	the conses we're currently looking at, thank you Paul Dietz.

2010-11-14  Aidan Kehoe  <kehoea@parhasard.net>

	* fns.c (Frandom): Correct the docstring here, the name of the
	argument is LIMIT, not N.

2010-11-06  Aidan Kehoe  <kehoea@parhasard.net>

	* bytecode.c (bytecode_nreverse): Call Fnreverse() if SEQUENCE is
	not a cons in this function.
	(Fnreverse, Freverse):
	Accept sequences, not just lists, in these functions.

2010-11-06  Aidan Kehoe  <kehoea@parhasard.net>

	* fns.c (Flist_length): Error if LIST is dotted in this function;
	document this behaviour.

2010-10-25  Aidan Kehoe  <kehoea@parhasard.net>

	* specifier.c (specifier_instance_from_inst_list):
	Call call_with_suspended_errors() with ERROR_ME_WARN, explicitly;
	avoids the problem Giacomo Boffi describes in
	http://mid.xemacs.org/19617.52517.341117.388679@aiuole.stru.polimi.it
	, but the specifier instantiation bug that makes XEmacs fail for
	him is still visible.

2010-10-25  Aidan Kehoe  <kehoea@parhasard.net>

	* print.c (ulong_to_bit_string): If printing zero, actually print
	a zero, don't return the empty string.

2010-07-06  Stephen J. Turnbull  <stephen@xemacs.org>

	* emodules.c (emodules_load):
	Add one more dereference on f = dll_variable() in three places.
	We then use EXTERNAL_TO_ITEXT on it, which returns an alloca'd
	string, so I delete the unneeded alloca copy statements.
	Fixes error reported by Anders Odberg, confirmed in
	<rfawrpfhm3l.fsf@fangorn.uio.no>.

2010-06-14  Stephen J. Turnbull  <stephen@xemacs.org>

	* ui-byhand.c:
	* gtk-glue.c:
	Add copyright notice based on internal evidence.

2010-06-14  Stephen J. Turnbull  <stephen@xemacs.org>

	* number.h: Another permission consistency fix.

2010-10-14  Aidan Kehoe  <kehoea@parhasard.net>

	* fns.c (Fnbutlast, Fbutlast):
	Tighten up Common Lisp compatibility for these two functions; they
	need to operate on dotted lists without erroring.

2010-10-12  Aidan Kehoe  <kehoea@parhasard.net>

	* fns.c (list_merge):
	Circularity checking here needs to be done independently for each
	list, they can't share a loop counter. Thank you for the bug
	report, Robert Pluim!

2010-09-20  Aidan Kehoe  <kehoea@parhasard.net>

	* lisp.h (GET_DEFUN_LISP_OBJECT): Make the NEW_GC version of this
	work, remove a needless and unhelpful semicolon.
	(GET_DEFUN_LISP_OBJECT): Remove a needless semicolon from the
	non-NEW_GC version of this.
	(PARSE_KEYWORDS): Fix the indentation for the DEBUG_XEMACS
	version of this macro.
	(PARSE_KEYWORDS): Use GET_DEFUN_LISP_OBJECT() for both the NEW_GC
	and non-NEW_GC versions of this macro, when working out the
	function's min args. 

2010-09-18  Aidan Kehoe  <kehoea@parhasard.net>

	* lisp.h (PARSE_KEYWORDS):
	Turns out #elsif is not valid preprocessor syntax, who knew!

2010-09-18  Aidan Kehoe  <kehoea@parhasard.net>

	* lisp.h (PARSE_KEYWORDS):
	Correct the NEW_GC non-DEBUG_XEMACS version of this macro; under
	such builds S##function is a pointer, not a Lisp_Subr structure.

2010-09-18  Aidan Kehoe  <kehoea@parhasard.net>

	Simplify the API of PARSE_KEYWORDS for callers.

	* lisp.h (PARSE_KEYWORDS): Simply the API, while making the
	implementation a little more complex; work out KEYWORDS_OFFSET
	from the appropriate Lisp_Subr struct, take the function name as
	the C name of the DEFUN rather than a symbol visible as a
	Lisp_Object, on debug builds assert that we're actually in the
	function so we choke on badly-done copy-and-pasting,

	* lisp.h (PARSE_KEYWORDS_8): New. This is the old PARSE_KEYWORDS.

	* fns.c (Fmerge, FsortX, Ffill, Freduce, Freplace):
	Change to use the new PARSE_KEYWORDS syntax.
	* elhash.c (Fmake_hash_table): Chance to the new PARSE_KEYWORDS
	syntax, rename a define to correspond to what other files use.
	
	* symbols.c (intern_massaging_name):
	* buffer.c (ADD_INT):
	Rename intern_converting_underscores_to_dashes() to
	intern_massaging_name(), now it does a little more.

2010-09-18  Aidan Kehoe  <kehoea@parhasard.net>

	* termcap.c:
	Add a couple of missing includes here, which should fix builds
	that use this file. (I have no access to such builds, but Mats'
	buildbot shows output that indicates they fail at link time since
	DEVICE_BAUD_RATE and IS_DIRECTORY_SEP are available.)

2010-09-18  Aidan Kehoe  <kehoea@parhasard.net>

	* fns.c (Freduce):
	Move statements outside of the braces surrounding the
	EXTERNAL_LIST_LOOP_3 macro, fixing strict C89 builds. Thank you
	for the report, Vin!

2010-09-16  Aidan Kehoe  <kehoea@parhasard.net>

	* fns.c (Flist_length): New, moved here from cl-extra.el, needed
	by the next function.
	(shortest_length_among_sequences): New.
	(Fmapconcat, FmapcarX, Fmapvector, Fmapcan, Fmapc, Fmap)
	(Fmap_into, Fsome, Fevery):
	Use shortest_length_among_sequences() when working out how many
	iterations to do, only giving circular list errors if all
	arguments are circular.

2010-09-16  Aidan Kehoe  <kehoea@parhasard.net>

	* fns.c (Fsubseq):
	Change the string code to better fit in with the rest of this
	function (it still uses get_string_range_char(), though, which *may*
	diverge algorithmically from what we're doing).

	If dealing with a cons, only call #'length if we have reason to
	believe that the START and END arguments are badly specified, and
	check for circular lists ourselves when that's appropriate.

	If dealing with a vector, call Fvector() on the appropriate subset
	of the old vector's data directly, don't initialise the result
	with nil and then copy.

	(Ffill):
	Only check the range arguments for a cons SEQUENCE if we have good
	reason to think they were badly specified.
	
	(Freduce):
	Handle multiple values properly. Add bounds checking to this
	function, as specificied by ANSI Common Lisp.

2010-09-16  Aidan Kehoe  <kehoea@parhasard.net>

	* eval.c (Ffunction, Fquote):
	Add argument information in the arguments: () format for these two
	special operators.

2010-09-07  Aidan Kehoe  <kehoea@parhasard.net>

	* fns.c (Freplace): 
	Replace an accidental double semi-colon with a single semi-colon,
	hopefully fixing Vin's Visual Studio 6 build. (Visual Studio 2005
	had no problem with it, oddly.)

2010-09-06  Aidan Kehoe  <kehoea@parhasard.net>

	Move #'replace to C; add bounds checking to it and to #'fill.

	* fns.c (Fsubseq, Ffill, mapcarX):
	Don't #'nreverse in #'subseq, use fill_string_range and check
	bounds in #'fill, use replace_string_range() in #'map-into
	avoiding quadratic time when modfiying the string.

	* fns.c (check_sequence_range, fill_string_range)
	(replace_string_range, replace_string_range_1, Freplace):
	New functions; check that arguments fit sequence dimensions, fill
	a string range with a given character, replace a string range from
	an Ibyte pointer.

2010-09-05  Aidan Kehoe  <kehoea@parhasard.net>

	* chartab.c (char_table_default_for_type,
	chartab_default_validate): New. 
	(print_char_table, Freset_char_table, chartab_default_validate)
	(chartab_instantiate, structure_type_create_chartab):
	Accept keyword :default in the read syntax for char tables, and
	print the default when it is not what was expected for the
	time. Makes it a little easier to debug things.

2010-09-05  Aidan Kehoe  <kehoea@parhasard.net>

	* editfns.c (Fformat_time_string):
	Use two backslashes so that there is at least one present in the
	output of describe function, when describing the Roman month
	number syntax in this function's docstring. Thanks for provoking
	me to look at this, Stephen Turnbull.

2010-09-03  Aidan Kehoe  <kehoea@parhasard.net>

	* symsinit.h: Declare reinit_process_early() here, fixing the C++
	build; thank you for pointing this out, Adam Sjøgren!
	* fontcolor-msw.c (mswindows_string_to_color):
	Cast the result of bsearch() to a colormap_t pointer, fixing the
	Visual Studio 2005 build.

2010-09-02  Aidan Kehoe  <kehoea@parhasard.net>

	* strftime.c (roman_upper, roman_lower, strftime):
	Implement Roman month numbers, as used in central and eastern
	Europe.
	* editfns.c (Fformat_time_string):
	Document two new escapes, to allow uppercase and lowercase Roman
	month numbers. Remove documentation of a bug that we didn't
	actually have.
	* text.h (Qtime_function_encoding): We know the text encoding
	coming from strftime(), because we always use the one in
	strftime.c. Don't use Qnative.

2010-09-01  Aidan Kehoe  <kehoea@parhasard.net>

	* fns.c (list_merge, list_array_merge_into_list)
	(list_array_merge_into_array):
	Avoid algorithmic complexity surprises when checking for
	circularity in these functions.
	(Freduce): Fix some formatting, in passing.

	(mapcarX): Drop the SOME_OR_EVERY argument to this function;
	instead, take CALLER, a symbol reflecting the Lisp-visible
	function that called mapcarX(). Use CALLER with
	mapping_interaction_error() when sequences are modified
	illegally. Don't cons with #'some, #'every, not even a little.
	(Fmapconcat, FmapcarX, Fmapvector, Fmapcan, Fmapc, Fmap)
	(Fmap_into, Fsome, Fevery): Call mapcarX() with its new
	arguments.
	(Fmapcan): Don't unnecessarily complicate the nconc call.

	(maplist): Take CALLER, a symbol reflecting the Lisp-visible
	function that called maplist(), rather than having separate
	arguments to indicate mapl vs. mapcon.
	Avoid algorithmic complexity surprises when checking for
	circularity. In #'mapcon, check a given stretch of
	result for well-formedness once, which was not previously the
	case, despite what the comments said.
	(Fmaplist, Fmapl, Fmapcon):
	Call maplist() with its new arguments.	

2010-09-02  Aidan Kehoe  <kehoea@parhasard.net>

	* process.c (process_getprop, process_putprop, process_remprop)
	(process_plist, process_setplist, reinit_process_early):
	Add functions to modify a process's property list.
	* process-slots.h (MARKED_SLOT): Add a plist slot.

	* fns.c (Fobject_setplist): New function, analogous to #'setplist,
	but more general.
	Update the documentation in the other plist functions to reflect
	that processes now have property lists.
	* emacs.c (main_1): Call reinit_process_early(), now processes have
	plist methods that need to be initialised.
	* symbols.c (reinit_symbol_objects_early): Fsetplist is the named
	setplist method for symbols.

2010-08-30  Aidan Kehoe  <kehoea@parhasard.net>

	* floatfns.c (ceiling_one_mundane_arg, floor_one_mundane_arg)
	(round_one_mundane_arg, truncate_one_mundane_arg):
	INTEGERP is always available, no need to wrap calls to it with
	#ifdef HAVE_BIGNUM.
	(Fceiling, Ffloor, Fround, Ftruncate, Ffceiling, Fffloor)
	(Ffround, Fftruncate):
	Correct some code formatting here.
	* doprnt.c (emacs_doprnt_1):
	Remove some needless #ifdef WITH_NUMBER_TYPES, now number.h is
	always #included. 

2010-08-26  Adam Sjøgren <asjo@koldfront.dk>

	* glyphs-eimage.c (gif_instantiate): Try harder to find an
	appropriate GIF colormap and then flag an error if one can't be
	found.

2010-08-21  Aidan Kehoe  <kehoea@parhasard.net>

	* lread.c (read_escape):
	Make error messages better reflect the text that was encountered,
	when overlong hex character escapes or non-Latin-1 octal character
	escapes are encountered.

2010-08-15  Aidan Kehoe  <kehoea@parhasard.net>

	* print.c (print_symbol):
	Escape any symbols that look like ratios, in the same way we do
	symbols that look like floats or integers. Prevents confusion in
	the Lisp reader.
	* lread.c (isratio_string): Make this available even on builds
	without HAVE_RATIO, so we can print symbols that look like ratios
	with the appropriate escapes.
	* lisp.h:
	Make isratio_string available even if HAVE_RATIO is not defined.

2010-07-24  Aidan Kehoe  <kehoea@parhasard.net>

	* lisp.h (PARSE_KEYWORDS):
	Always accept a nil :allow-other-keys keyword argument, as
	described in the ALLOW-OTHER-KEYS-NIL Common Lisp issue writeup,
	and as necessary for Paul Dietz' tests for #'reduce.

	* fns.c (mapping_interaction_error): New.
	(Freduce): Call mapping_interaction_error when KEY or FUNCTION
	have modified a string SEQUENCE such that the byte length of the
	string has changed, or such that the current cursor pointer
	doesn't point to the beginning of a character.
	Cf. the MAPPING-DESTRUCTIVE-INTERACTION Common Lisp issue
	writeup.
	When traversing a list, GCPRO the part of it we still have to
	traverse, to avoid any crashes if FUNCTION or KEY amputate it
	behind us and force a garbage collection.

2010-06-05  Marcus Crestani  <crestani@informatik.uni-tuebingen.de>

	* gc.c:
	* mc-alloc.c:
	Document the new allocator and the new garbage collector.

2010-06-13  Stephen J. Turnbull  <stephen@xemacs.org>

	* elhash.c:
	* emacs.c:
	* glade.c:
	* gtk-glue.c:
	* gtk-xemacs.c:
	* gtk-xemacs.h:
	* m/alpha.h:
	* number-gmp.c:
	* number-gmp.h:
	* number-mp.c:
	* number-mp.h:
	* number.c:
	* number.h:
	* s/hpux11-shr.h:
	* s/mach-bsd4-3.h:
	* s/sco7.h:
	* symsinit.h:
	* ui-byhand.c:
	* ui-gtk.c:
	* ui-gtk.h:
	Correct FSF address in permission notice.
	
2010-06-08  Aidan Kehoe  <kehoea@parhasard.net>

	* alloc.c (Fpurecopy):
	Moved to obsolete.el as an alias for #'identity, marked obsolete.

2010-06-06  Aidan Kehoe  <kehoea@parhasard.net>

	* fns.c (Freduce):
	Move this here from cl-seq.el, avoiding the need to cons.  This
	has been tested using Paul Dietz' test suite, and everything
	applicable passes, with the exception that the
	ALLOW-OTHER-KEYS-NIL Common Lisp issue (functions with &key must
	*always* accept :allow-other-keys nil) hasn't been implemented.

2010-06-02  Aidan Kehoe  <kehoea@parhasard.net>

	* lread.c (vars_of_lread):
	* emacs.c:
	(shut_down_emacs, vars_of_emacs, complex_vars_of_emacs):
	* device-x.c (get_device_from_display)
	(have_xemacs_resources_in_xrdb):
	* device-gtk.c (Fgtk_init):
	* config.h.in:
	Remove all checks for InfoDock.

2010-06-01  Aidan Kehoe  <kehoea@parhasard.net>

	* fns.c (Fsubstring_no_properties):
	Add this function, API taken from GNU, though ours drops all
	extent data, not just properties.

2010-06-01  Aidan Kehoe  <kehoea@parhasard.net>

	* glyphs.c (syms_of_glyphs):
	Remove the definition of Q_data from this file, now it's in
	general-slots.h. Problem picked up by a C++ build.

2010-05-31  Aidan Kehoe  <kehoea@parhasard.net>

	* rangetab.c (print_range_table, rangetab_instantiate)
	(structure_type_create_rangetab):
	* chartab.c (print_char_table, chartab_instantiate)
	(structure_type_create_chartab):
	* faces.c (syms_of_faces, print_face, face_validate):

	Move structure syntax in these files to using keywords by default,
	as is done in Common Lisp and GNU Emacs, accepting for the moment
	the older non-keywords syntax too.

	* glyphs.h: No need to have Q_data here.
	* general-slots.h: Add Q_data, Q_type here.

	* config.h.in (NEED_TO_HANDLE_21_4_CODE):
	New #define, always 1 for the moment, replacing the previous
	never-really-used NO_NEED_TO_HANDLE_21_4_CODE, and avoiding
	confusing syntax.
	
	* eval.c (Ffuncall): Wrap the hack that allows #'throw to be
	funcalled in #ifdef NEED_TO_HANDLE_21_4_CODE.
	* elhash.c (syms_of_elhash): Move Q_type, Q_data to
	general-slots.h. Change to NEED_TO_HANDLE_21_4_CODE throughout
	this file.

2010-05-29  Aidan Kehoe  <kehoea@parhasard.net>

	* fontcolor-msw.c (mswindows_X_color_map): Sort this, case
	insensitively, by the color name.
	(colormap_t_compare): New function.
	(mswindows_string_to_color): When using symbolic color names, use
	binary search, not linear search.
	(mswindows_color_list): No need to start from the beginning of the
	array and call #'nreverse to get the colors in an intuitive order,
	just build the list starting from the end of the array.

2010-05-28  Marcus Crestani  <crestani@informatik.uni-tuebingen.de>

	* window.c (compute_window_usage): Unbreak `show-memory-usage' for
	NEW_GC.

2010-05-28  Marcus Crestani  <crestani@informatik.uni-tuebingen.de>

	* mc-alloc.c: 
	* mc-alloc.c (visit_all_used_page_headers): 
	* mc-alloc.c (install_page_in_used_list): 
	* mc-alloc.c (mc_alloc_1): 
	* mc-alloc.c (init_mc_allocator): 
	* mc-alloc.c (Fmc_alloc_memory_usage): Allocate lrecord arrays in
	own size class.

2010-05-24  Mike Sperber  <mike@xemacs.org>

	* lread.c (read1): Accept #B<binary>, #O<octal>, and #X<hex>, just
	like GNU Emacs.

2010-05-17  Jeff Sparkes  <jsparkes@gmail.com>

	* buffer.c (complex_vars_of_buffer):
	Add buffer local variables buffer-display-count and
	buffer-display-time.
	(common_init_complex_vars_of_buffer):
	Initialize them here.

	* bufslots.h: Add slots for buffer-display-count and buffer-display-time.

	* window.c (Fset_window_buffer): Update buffer-display-count and
	buffer-display-time whenever a buffer is displayed.

2010-05-16  Aidan Kehoe  <kehoea@parhasard.net>

	Move `default-file-system-ignore-case' to C; pay attention to it
	in creating the directory hash tables for #'locate-file. Fix a bug
	where #'eq was specified when creating directory hash tables in
	dired.c. 

	* config.h.in (DEFAULT_FILE_SYSTEM_IGNORE_CASE): This is 1 on
	Darwin.
	* dired.c (make_directory_hash_table): If
	#'file-system-ignore-case-p gives non-nil for a directory, created
	the associated hash table with #'equalp as its test. Never use
	#'eq as a directory hash table test.
	* fileio.c (vars_of_fileio):
	Move `default-file-system-ignore-case' here, so it can be a
	constant boolean reflecting a compile-time #define.
	* lisp.h: Update the declaration of make_directory_hash_table;
	remove the declaration of wasteful_word_to_lisp, which was
	#ifdef'd out.
	* lread.c (Flocate_file): Take out a debugging statement from
	this function.
	(locate_file_refresh_hashing): Call make_directory_hash_table with
	a Lisp string, not an Ibyte pointer.
	(vars_of_lread): If DEFAULT_FILE_SYSTEM_IGNORE_CASE is defined,
	use #'equalp as the hash table test for locate-file-hash-table,
	not #'equal.
	* s/win32-common.h (DEFAULT_FILE_SYSTEM_IGNORE_CASE):
	Case should normally be ignored in file names on Win32.

2010-04-29  Aidan Kehoe  <kehoea@parhasard.net>

	* eval.c (Fquote, Ffunction): Error on more than one argument to
	these special operators.
	* data.c (syms_of_data): Move Qquote to general-slots.h from this
	file, now it's used in eval.c

2010-04-17  Aidan Kehoe  <kehoea@parhasard.net>

	* doc.c (Fdocumentation):
	If we have a zero length doc string in DOC, as may happen for
	undocumented compiled function objects which nonetheless have file
	information stored, return nil.
	(Fsnarf_documentation):
	DOC info existing for compiled functions without docstrings is
	perfectly legitimate, now the file is also used to store file names.
	* bytecode.c (set_compiled_function_documentation):
	Allow this function to set the documentation successfully for
	compiled function objects that don't currently have documentation;
	most relevant for functions without docstrings which have file
	information stored in DOC.

2010-04-15  Ben Wing  <ben@xemacs.org>

	* device-x.c (x_init_device):
	Don't declare something const if we're going to modify it.
	Clean up code to follow GNU coding standards.

2010-04-12  Ben Wing  <ben@xemacs.org>

	* specifier.c (specifier_memory_usage):
	Disable specifier memory-usage stats for now.  Sometimes they can
	end up with circularities in them and I'm not sure exactly whats
	going on to produce them.

2010-04-12  Ben Wing  <ben@xemacs.org>

	* charset.h:
	* lisp.h:
	* lisp.h (XREALLOC_ARRAY):
	* text.h:
	Port charset_codepoint_to_itext(), buffer_itext_to_charset_codepoint(),
	EXTBYTE_STRING_TO_ALLOCA(), `enum converr' from ben-unicode-internal,
	for use with the mule-wnnfns.c changes.
	
	* mule-wnnfns.c:
	* mule-wnnfns.c (Fwnn_open):
	* mule-wnnfns.c (Fwnn_dict_add):
	* mule-wnnfns.c (Fwnn_dict_list):
	* mule-wnnfns.c (Fwnn_get_zenkouho):
	* mule-wnnfns.c (Fwnn_inspect):
	* mule-wnnfns.c (Fwnn_bunsetu_kanji):
	* mule-wnnfns.c (Fwnn_bunsetu_yomi):
	* mule-wnnfns.c (Fwnn_word_info):
	* mule-wnnfns.c (Fwnn_dict_search):
	* mule-wnnfns.c (Fwnn_get_msg):
	* mule-wnnfns.c (Fwnn_fuzokugo_set):
	* mule-wnnfns.c (Fwnn_fuzokugo_get):
	* mule-wnnfns.c (Fwnn_hinsi_list):
	* mule-wnnfns.c (Fwnn_fisys_dict_add):
	* mule-wnnfns.c (Fwnn_fiusr_dict_add):
	* mule-wnnfns.c (Fwnn_notrans_dict_add):
	* mule-wnnfns.c (Fwnn_bmodify_dict_add):
	* mule-wnnfns.c (reinit_vars_of_mule_wnn):
	* mule-wnnfns.c (vars_of_mule_wnn):
	* mule-wnnfns.c (w2m):
	* mule-wnnfns.c (m2w):
	* mule-wnnfns.c (yes_or_no):
	* mule-wnnfns.c (puts2):
	* mule-wnnfns.c (check_wnn_server_type):
	Mule-ize, borrowed from ben-unicode-internal.

2010-04-09  Ben Wing  <ben@xemacs.org>

	* fileio.c (check_writable):
	* fileio.c (Fdo_auto_save):
	* redisplay-xlike-inc.c (separate_textual_runs_nomule):
	* redisplay-xlike-inc.c (separate_textual_runs_xft_nomule):
	* redisplay-xlike-inc.c (separate_textual_runs_xft_mule):
	* redisplay-xlike-inc.c (separate_textual_runs_mule):
	* redisplay-xlike-inc.c (XLIKE_output_string):
	* redisplay-xlike-inc.c (XLIKE_output_vertical_divider):
	* redisplay.c (create_text_block):
	* redisplay.c (regenerate_window):
	* redisplay.c (redisplay_window):
	* redisplay.c (redisplay_device):
	* redisplay.c (window_line_number):
	* redisplay.c (point_would_be_visible):
	* redisplay.c (compute_display_line_dynarr_usage):
	* specifier.c (prune_specifiers):
	* specifier.c (finalize_specifier):
	* specifier.c (make_magic_specifier):
	* specifier.c (charset_matches_specifier_tag_set_p):
	* specifier.c (Fdefine_specifier_tag):
	* specifier.c (setup_device_initial_specifier_tags):
	* specifier.c (bodily_specifier):
	* specifier.c (add_spec_to_ghost_specifier):
	* specifier.c (remove_ghost_specifier):
	* specifier.c (set_specifier_fallback):
	* specifier.c (specifier_instance_from_inst_list):
	* specifier.c (set_specifier_caching):
	Fix coding style to correspond to GNU standard.

2010-04-09  Didier Verna  <didier@xemacs.org>

	* fontcolor-xlike-inc.c (DEBUG_FONTS2):
	* fontcolor-xlike-inc.c (DEBUG_FONTS3):
	* fontcolor-xlike-inc.c (DEBUG_FONTS4):
	* fontcolor-xlike-inc.c (DEBUG_FONTS_LISP1):
	* fontcolor-xlike-inc.c (DEBUG_FONTS_LISP2):
	* fontcolor-xlike-inc.c (DEBUG_FONTS_LISP3):
	* fontcolor-xlike-inc.c (DEBUG_FONTS_LISP4): Conditionalize
	definitions on DEBUG_XEMACS, provide empty definitions otherwise.

2010-04-06  Ben Wing  <ben@xemacs.org>

	* elhash.c (Feq_hash):
	Cast to EMACS_INT to fix warning.

	* elhash.c (internal_hash):
	* elhash.c (Feql_hash):
	Fix spacing before parens.
	
	* general-slots.h:
	* xemacs.def.in.in:
	Export Qfixnump to fix eldap.c link error.

2010-04-06  Aidan Kehoe  <kehoea@parhasard.net>

	* toolbar-msw.c (allocate_toolbar_item_id)
	(mswindows_output_toolbar):
	* menubar-msw.c (allocate_menu_item_id, checksum_menu_item): 
	* glyphs-msw.c (mswindows_image_instance_hash):
	* fontcolor-msw.c (mswindows_color_instance_equal):
	* device-msw.c (hash_devmode):
	Call internal_hash() with the correct number of arguments, declare
	various hash methods with the correct number of arguments, fixing
	the Win32 build. Thank you Vin.

2010-04-06  Aidan Kehoe  <kehoea@parhasard.net>

	* frame.c (print_frame):
	When printing a frame, print its device, making the output of
	#'frame-list a lot more helpful if using gnuclient.

2010-04-04  Ben Wing  <ben@xemacs.org>

	* font-mgr.c:
	* font-mgr.c (fc_standard_properties):
	* font-mgr.c (Ffc_pattern_p):
	* font-mgr.c (Ffc_pattern_create):
	* font-mgr.c (Ffc_name_parse):
	* font-mgr.c (Ffc_name_unparse):
	* font-mgr.c (Ffc_pattern_duplicate):
	* font-mgr.c (Ffc_pattern_add):
	* font-mgr.c (Ffc_pattern_del):
	* font-mgr.c (Ffc_pattern_get):
	* font-mgr.c (fc_config_create_using):
	* font-mgr.c (fc_strlist_to_lisp_using):
	* font-mgr.c (fontset_to_list):
	* font-mgr.c (Ffc_config_p):
	* font-mgr.c (Ffc_config_create):
	* font-mgr.c (Ffc_config_destroy):
	* font-mgr.c (Ffc_config_up_to_date):
	* font-mgr.c (Ffc_config_build_fonts):
	* font-mgr.c (Ffc_config_get_config_dirs):
	* font-mgr.c (Ffc_config_get_font_dirs):
	* font-mgr.c (Ffc_config_get_config_files):
	* font-mgr.c (Ffc_config_get_cache):
	* font-mgr.c (Ffc_config_get_fonts):
	* font-mgr.c (Ffc_config_set_current):
	* font-mgr.c (Ffc_config_get_blanks):
	* font-mgr.c (Ffc_config_get_rescan_interval):
	* font-mgr.c (Ffc_config_set_rescan_interval):
	* font-mgr.c (Ffc_config_app_font_add_file):
	* font-mgr.c (Ffc_config_app_font_add_dir):
	* font-mgr.c (Ffc_config_app_font_clear):
	* font-mgr.c (Ffc_init_load_config):
	* font-mgr.c (Ffc_init_load_config_and_fonts):
	* font-mgr.c (Ffc_config_get_current):
	* font-mgr.c (size):
	* font-mgr.c (Ffc_font_render_prepare):
	* font-mgr.c (Ffc_font_match):
	* font-mgr.c (Ffc_font_sort):
	* font-mgr.c (Ffc_init):
	* font-mgr.c (Ffc_get_version):
	* font-mgr.c (Ffc_init_reinitialize):
	* font-mgr.c (Ffc_init_bring_up_to_date):
	* font-mgr.c (Fxlfd_font_name_p):
	* font-mgr.c (make_xlfd_font_regexp):
	* font-mgr.c (syms_of_font_mgr):
	* font-mgr.c (vars_of_font_mgr):
	* font-mgr.c (complex_vars_of_font_mgr):
	Fix the code to conform to GNU style standards.
	Rename xft-debug-level to debug-xft.
	
	* fontcolor-x.c:
	* fontcolor-x.c (vars_of_fontcolor_x):
	Rename debug-x-objects to debug-x-fonts.
	
	* fontcolor-xlike-inc.c:
	* fontcolor-xlike-inc.c (DEBUG_FONTS1):
	* fontcolor-xlike-inc.c (DEBUG_FONTS2):
	* fontcolor-xlike-inc.c (DEBUG_FONTS3):
	* fontcolor-xlike-inc.c (DEBUG_FONTS4):
	* fontcolor-xlike-inc.c (DEBUG_FONTS_LISP1):
	* fontcolor-xlike-inc.c (count_hyphens):
	* fontcolor-xlike-inc.c (XFUN):
	* fontcolor-xlike-inc.c (xlistfonts_checking_charset):
	* fontcolor-xlike-inc.c (xft_find_charset_font):
	Misc. code fixes, mostly cosmetic.  Get rid of some warnings.
	Fix the code to conform to GNU style standards.
	
	* lisp.h:
	* print.c:
	* print.c (debug_out_lisp):
	New function for doing printf-like formatting involving Lisp objects
	and outputting to the debug output.

2010-04-03  Aidan Kehoe  <kehoea@parhasard.net>

	* fns.c (Ffill):
	Be much more careful about resizing a string argument, update
	pointers to within the string data that may have been relocated
	with the string resize. Fixes a test hang reported by Vin Shelton;
	thanks, Vin.

2010-04-05  Aidan Kehoe  <kehoea@parhasard.net>

	* elhash.h:
	* elhash.c (struct Hash_Table_Test, lisp_object_eql_equal)
	(lisp_object_eql_hash, lisp_object_equal_equal)
	(lisp_object_equal_hash, lisp_object_equalp_hash)
	(lisp_object_equalp_equal, lisp_object_general_hash)
	(lisp_object_general_equal, Feq_hash, Feql_hash, Fequal_hash)
	(Fequalp_hash, define_hash_table_test, Fdefine_hash_table_test)
	(init_elhash_once_early, mark_hash_table_tests, string_equalp_hash):
	* glyphs.c (vars_of_glyphs):
	Add a new hash table test in C, #'equalp.
	Make it possible to specify new hash table tests with functions
	define_hash_table_test, #'define-hash-table-test.
	Use define_hash_table_test() in glyphs.c.
	Expose the hash functions (besides that used for #'equal) to Lisp,
	for people writing functions to be used with #'define-hash-table-test.
	Call define_hash_table_test() very early in temacs, to create the
	built-in hash table tests.

	* ui-gtk.c (emacs_gtk_boxed_hash):
	* specifier.h (struct specifier_methods):
	* specifier.c (specifier_hash):
	* rangetab.c (range_table_entry_hash, range_table_hash):
	* number.c (bignum_hash, ratio_hash, bigfloat_hash):
	* marker.c (marker_hash):
	* lrecord.h (struct lrecord_implementation):
	* keymap.c (keymap_hash):
	* gui.c (gui_item_id_hash, gui_item_hash):
	* glyphs.c (image_instance_hash, glyph_hash):
	* glyphs-x.c (x_image_instance_hash):
	* glyphs-msw.c (mswindows_image_instance_hash):
	* glyphs-gtk.c (gtk_image_instance_hash):
	* frame-msw.c (mswindows_set_title_from_ibyte):
	* fontcolor.c (color_instance_hash, font_instance_hash):
	* fontcolor-x.c (x_color_instance_hash):
	* fontcolor-tty.c (tty_color_instance_hash):
	* fontcolor-msw.c (mswindows_color_instance_hash):
	* fontcolor-gtk.c (gtk_color_instance_hash):
	* fns.c (bit_vector_hash):
	* floatfns.c (float_hash):
	* faces.c (face_hash):
	* extents.c (extent_hash):
	* events.c (event_hash):
	* data.c (weak_list_hash, weak_box_hash):
	* chartab.c (char_table_entry_hash, char_table_hash):
	* bytecode.c (compiled_function_hash):
	* alloc.c (vector_hash):
	Change the various object hash methods to take a new EQUALP
	parameter, hashing appropriately for #'equalp if it is true.

2010-04-02  Aidan Kehoe  <kehoea@parhasard.net>

	* fns.c (FsortX, Ffill):
	Don't try to be clever with the ascii_begin string header slot in
	these functions, just call init_string_ascii_begin().

2010-04-02  Aidan Kehoe  <kehoea@parhasard.net>

	Avoid build failure, Apple's g++-4.0.1, Mac OS 10.4.
	* sysdll.c (search_linked_libs, dll_variable): Correct some casts
	for the C++ build.
	* regex.h (END_C_DECLS, BEGIN_C_DECLS): Wrap function declarations
	in extern "C" { ... } on the C++ build.
	* mule-ccl.c (ccl_driver): Initialise i, silencing a warning on
	a C++ build.
	* keymap.c (key_desc_list_to_event):
	Work around a bug in Apple's g++-4.0.1.

2010-03-31  Aidan Kehoe  <kehoea@parhasard.net>

	* fns.c (STRING_DATA_TO_OBJECT_ARRAY)
	(BIT_VECTOR_TO_OBJECT_ARRAY, c_merge_predicate_key)
	(c_merge_predicate_nokey, list_merge, array_merge)
	(list_array_merge_into_list, list_list_merge_into_array)
	(list_array_merge_into_array, CHECK_KEY_ARGUMENT, Fmerge)
	(list_sort, array_sort, FsortX):
	Move #'sort*, #'fill, #'merge from cl-seq.el to C, extending the
	implementations of Fsort, Ffillarray, and merge() to do so.

	* keymap.c (keymap_submaps, map_keymap_sort_predicate)
	(describe_map_sort_predicate):
	Change the calling semantics of the C sort predicates to return a
	non-nil Lisp object if the first argument is less than the second,
	rather than C integers.

	* fontcolor-msw.c (sort_font_list_function): 
	* fileio.c (build_annotations):
	* dired.c (Fdirectory_files):
	* abbrev.c (Finsert_abbrev_table_description):
	Call list_sort instead of Fsort, list_merge instead of merge() in
	these functions.

2010-03-29  Ben Wing  <ben@xemacs.org>

	* lisp.h (PRIVATE_UNVERIFIED_LIST_LOOP_7):
	Need to cast 0 to void (so both parts of conditional expression
	have void type) to fix C++ compilation.

2010-03-29  Ben Wing  <ben@xemacs.org>

	* alloc.c:
	* alloc.c (lisp_object_storage_size):
	* alloc.c (Fobject_memory_usage):
	* alloc.c (lisp_object_memory_usage_full):
	Don't crash if passed a non-record object (int or char).
	
	* alloc.c (tree_memory_usage_1):
	* lrecord.h:
	New function tree_memory_usage() to return the memory usage of
	a tree of conses and/or vectors.
	
	* lisp.h:
	* lisp.h (PRIVATE_UNVERIFIED_LIST_LOOP_7):
	Add SAFE_LIST_LOOP_* functions for looping over a list not known
	to be correct or non-circular, but without signalling an error --
	instead, just stop enumerating when an error detected.
	
	* emacs.c (main_1):
	* specifier.c:
	* specifier.c (specifier_memory_usage):
	* specifier.c (vars_of_specifier):
	* symsinit.h:
	Add memory usage info for specifiers.

2010-03-28  Ben Wing  <ben@xemacs.org>

	* window.c (find_window_mirror_internal):
	Stop looking if no window mirror, and return 0.
	
	* window.c (window_display_lines):
	* window.c (window_display_buffer):
	* window.c (set_window_display_buffer):
	Don't need to update window mirror before calling find_window_mirror
	because does the updating automatically.

2010-03-25  Ben Wing  <ben@xemacs.org>

	* alloc.c:
	* alloc.c (struct):
	* alloc.c (finish_object_memory_usage_stats):
	* alloc.c (object_memory_usage_stats):
	* alloc.c (Fobject_memory_usage):
	* alloc.c (lisp_object_memory_usage_full):
	* alloc.c (compute_memusage_stats_length):
	* lrecord.h:
	* lrecord.h (struct lrecord_implementation):
	Add fields to the `lrecord_implementation' structure to list an
	offset into the array of extra statistics in a
	`struct generic_usage_stats' and a length, listing the first slice
	of ancillary Lisp-object memory.  Compute automatically in
	compute_memusage_stats_length().  Use to add an entry
	`FOO-lisp-ancillary-storage' for object type FOO.

	Don't crash when an int or char is given to object-memory-usage,
	signal an error instead.

	Add functions lisp_object_memory_usage_full() and
	lisp_object_memory_usage() to compute the total memory usage of an
	object (sum of object, non-Lisp attached, and Lisp ancillary
	memory).
	
	* array.c:
	* array.c (gap_array_memory_usage):
	* array.h:
	Add function to return memory usage of a gap array.
	
	* buffer.c (struct buffer_stats):
	* buffer.c (compute_buffer_usage):
	* buffer.c (vars_of_buffer):
	* extents.c (compute_buffer_extent_usage):
	* marker.c:
	* marker.c (compute_buffer_marker_usage):
	* extents.h:
	* lisp.h:
	Remove `struct usage_stats' arg from compute_buffer_marker_usage()
	and compute_buffer_extent_usage() -- these are ancillary Lisp
	objects and don't get accumulated into `struct usage_stats';
	change the value of `memusage_stats_list' so that `markers' and
	`extents' memory is in Lisp-ancillary, where it belongs.

	In compute_buffer_marker_usage(), use lisp_object_memory_usage()
	rather than lisp_object_storage_size().
	
	* casetab.c:
	* casetab.c (case_table_memory_usage):
	* casetab.c (vars_of_casetab):
	* emacs.c (main_1):
	Add memory usage stats for case tables.
	
	* lisp.h:
	Add comment explaining the `struct generic_usage_stats' more,
	as well as the new fields in lrecord_implementation.

	* console-impl.h:
	* console-impl.h (struct console_methods):
	* scrollbar-gtk.c:
	* scrollbar-gtk.c (gtk_compute_scrollbar_instance_usage):
	* scrollbar-msw.c:
	* scrollbar-msw.c (mswindows_compute_scrollbar_instance_usage):
	* scrollbar-x.c:
	* scrollbar-x.c (x_compute_scrollbar_instance_usage):
	* scrollbar.c:
	* scrollbar.c (struct scrollbar_instance_stats):
	* scrollbar.c (compute_all_scrollbar_instance_usage):
	* scrollbar.c (scrollbar_instance_memory_usage):
	* scrollbar.c (scrollbar_objects_create):
	* scrollbar.c (vars_of_scrollbar):
	* scrollbar.h:
	* symsinit.h:
	* window.c:
	* window.c (find_window_mirror_maybe):
	* window.c (struct window_mirror_stats):
	* window.c (compute_window_mirror_usage):
	* window.c (window_mirror_memory_usage):
	* window.c (compute_window_usage):
	* window.c (window_objects_create):
	* window.c (syms_of_window):
	* window.c (vars_of_window):
	Redo memory-usage associated with windows, window mirrors, and
	scrollbar instances.  Should fix crash in find_window_mirror,
	among other things.  Properly assign memo ry to object memory,
	non-Lisp extra memory, and Lisp ancillary memory.  For example,
	redisplay structures are non-Lisp memory hanging off a window
	mirror, not a window; make it an ancillary Lisp-object field.
	Window mirrors and scrollbar instances have their own statistics,
	among other things.
	 
2010-03-24  Ben Wing  <ben@xemacs.org>

	* array.h:
	* array.h (XD_LISP_DYNARR_DESC):
	* dumper.c (pdump_register_sub):
	* dumper.c (pdump_store_new_pointer_offsets):
	* dumper.c (pdump_reloc_one_mc):
	* elhash.c:
	* gc.c  (lispdesc_one_description_line_size):
	* gc.c (kkcc_marking):
	* lrecord.h:
	* lrecord.h (IF_NEW_GC):
	* lrecord.h (enum memory_description_type):
	* lrecord.h (enum data_description_entry_flags):
	* lrecord.h (struct opaque_convert_functions):
	Rename XD_LISP_OBJECT_BLOCK_PTR to XD_INLINE_LISP_OBJECT_BLOCK_PTR
	and document it in lrecord.h.

	* data.c:
	* data.c (finish_marking_weak_lists):
	* data.c (continue_marking_ephemerons):
	* data.c (finish_marking_ephemerons):
	* elhash.c (MARK_OBJ):
	* gc.c:
	* gc.c (lispdesc_indirect_count_1):
	* gc.c (struct):
	* gc.c (kkcc_bt_push):
	* gc.c (kkcc_gc_stack_push):
	* gc.c (kkcc_gc_stack_push_lisp_object):
	* gc.c (kkcc_gc_stack_repush_dirty_object):
	* gc.c (KKCC_DO_CHECK_FREE):
	* gc.c (mark_object_maybe_checking_free):
	* gc.c (mark_struct_contents):
	* gc.c (mark_lisp_object_block_contents):
	* gc.c (register_for_finalization):
	* gc.c (mark_object):
	* gc.h:
	* lisp.h:
	* profile.c:
	* profile.c (mark_profiling_info_maphash):
	Clean up KKCC code related to DEBUG_XEMACS.  Rename
	kkcc_backtrace() to kkcc_backtrace_1() and add two params: a
	`size' arg to control how many stack elements to print and a
	`detailed' arg to control whether Lisp objects are printed using
	`debug_print()'.  Create front-ends to kkcc_backtrace_1() --
	kkcc_detailed_backtrace(), kkcc_short_backtrace(),
	kkcc_detailed_backtrace_full(), kkcc_short_backtrace_full(), as
	well as shortened versions kbt(), kbts(), kbtf(), kbtsf() -- to
	call it with various parameter values.  Add an `is_lisp' field to
	the stack and backtrace structures and use it to keep track of
	whether an object pushed onto the stack is a Lisp object or a
	non-Lisp structure; in kkcc_backtrace_1(), don't try to print a
	non-Lisp structure as a Lisp object.
	
	* elhash.c:
	* extents.c:
	* file-coding.c:
	* lrecord.h:
	* lrecord.h (IF_NEW_GC):
	* marker.c:
	* marker.c (Fmarker_buffer):
	* mule-coding.c:
	* number.c:
	* rangetab.c:
	* specifier.c:
	New macros IF_OLD_GC(), IF_NEW_GC() to simplify declaration of
	Lisp objects when a finalizer may exist in one but not the other.
	Use them appropriately.

	* extents.c (finalize_extent_info):
	Don't zero out data->soe and data->extents before trying to free,
	else we get memory leaks.
	
	* lrecord.h (enum lrecord_type):
	Make the first lrecord type have value 1 not 0 so that 0 remains
	without implementation and attempts to interpret zeroed memory
	as a Lisp object will be more obvious.

	* array.c (Dynarr_free):
	* device-msw.c (msprinter_delete_device):
	* device-tty.c (free_tty_device_struct):
	* device-tty.c (tty_delete_device):
	* dialog-msw.c (handle_directory_dialog_box):
	* dialog-x.c:
	* emacs.c (free_argc_argv):
	* emodules.c (attempt_module_delete):
	* file-coding.c (chain_finalize_coding_stream_1):
	* file-coding.c (chain_finalize_coding_stream):
	* glyphs-eimage.c:
	* glyphs-eimage.c (jpeg_instantiate_unwind):
	* glyphs-eimage.c (gif_instantiate_unwind):
	* glyphs-eimage.c (png_instantiate_unwind):
	* glyphs-eimage.c (tiff_instantiate_unwind):
	* imgproc.c:
	* imgproc.c (build_EImage_quantable):
	* insdel.c (uninit_buffer_text):
	* mule-coding.c (iso2022_finalize_detection_state):
	* objects-tty.c (tty_finalize_color_instance):
	* objects-tty.c (tty_finalize_font_instance):
	* objects-tty.c (tty_font_list):
	* process.c:
	* process.c (finalize_process):
	* redisplay.c (add_propagation_runes):
	* scrollbar-gtk.c:
	* scrollbar-gtk.c (gtk_free_scrollbar_instance):
	* scrollbar-gtk.c (gtk_release_scrollbar_instance):
	* scrollbar-msw.c:
	* scrollbar-msw.c (mswindows_free_scrollbar_instance):
	* scrollbar-msw.c (unshow_that_mofo):
	* scrollbar-x.c (x_free_scrollbar_instance):
	* scrollbar-x.c (x_release_scrollbar_instance):
	* select-x.c:
	* select-x.c (x_handle_selection_request):
	* syntax.c:
	* syntax.c (uninit_buffer_syntax_cache):
	* text.h (eifree):
	If possible, whenever we call xfree() on a field in a structure,
	set the field to 0 afterwards.  A lot of code is written so that
	it checks the value being freed to see if it is non-zero before
	freeing it -- doing this and setting the value to 0 afterwards
	ensures (a) we won't try to free twice if the cleanup code is
	called twice; (b) if the object itself stays around, KKCC won't
	crash when attempting to mark the freed field.

	* rangetab.c:
	Add a finalization method when not NEW_GC to avoid memory leaks.
	(#### We still get memory leaks when NEW_GC; need to convert gap
	array to Lisp object).

2010-03-22  Ben Wing  <ben@xemacs.org>

	* Makefile.in.in (objs):
	* array.c:
	* array.c (gap_array_adjust_markers):
	* array.c (gap_array_move_gap):
	* array.c (gap_array_make_gap):
	* array.c (gap_array_insert_els):
	* array.c (gap_array_delete_els):
	* array.c (gap_array_make_marker):
	* array.c (gap_array_delete_marker):
	* array.c (gap_array_delete_all_markers):
	* array.c (gap_array_clone):
	* array.h:
	* depend:
	* emacs.c (main_1):
	* extents.c:
	* extents.c (EXTENT_GAP_ARRAY_AT):
	* extents.c (extent_list_num_els):
	* extents.c (extent_list_locate):
	* extents.c (extent_list_at):
	* extents.c (extent_list_delete_all):
	* extents.c (allocate_extent_list):
	* extents.c (syms_of_extents):
	* extents.h:
	* extents.h (XEXTENT_LIST_MARKER):
	* lisp.h:
	* rangetab.c:
	* rangetab.c (mark_range_table):
	* rangetab.c (print_range_table):
	* rangetab.c (range_table_equal):
	* rangetab.c (range_table_hash):
	* rangetab.c (verify_range_table):
	* rangetab.c (get_range_table_pos):
	* rangetab.c (Fmake_range_table):
	* rangetab.c (Fcopy_range_table):
	* rangetab.c (Fget_range_table):
	* rangetab.c (put_range_table):
	* rangetab.c (Fclear_range_table):
	* rangetab.c (Fmap_range_table):
	* rangetab.c (unified_range_table_bytes_needed):
	* rangetab.c (unified_range_table_copy_data):
	* rangetab.c (unified_range_table_lookup):
	* rangetab.h:
	* rangetab.h (struct range_table_entry):
	* rangetab.h (struct Lisp_Range_Table):
	* rangetab.h (rangetab_gap_array_at):
	* symsinit.h:
	Rename dynarr.c to array.c.  Move gap array from extents.c to array.c.
	Extract dynarr, gap array and stack-like malloc into new file array.h.
	Rename GAP_ARRAY_NUM_ELS -> gap_array_length().  Add gap_array_at(),
	gap_array_atp().

	Rewrite range table code to use gap arrays.  Make put_range_table()
	smarter so that its operation is O(log n) for adding a localized
	range.

	* gc.c (lispdesc_block_size_1):
	Don't ABORT() when two elements are located at the same place.
	This will happen with a size-0 gap array -- both parts of the array
	(before and after gap) are in the same place.

2010-03-21  Ben Wing  <ben@xemacs.org>

	* alloc.c:
	* alloc.c (assert_proper_sizing):
	* alloc.c (c_readonly):
	* alloc.c (malloced_storage_size):
	* alloc.c (fixed_type_block_overhead):
	* alloc.c (lisp_object_storage_size):
	* alloc.c (inc_lrecord_stats):
	* alloc.c (dec_lrecord_stats):
	* alloc.c (pluralize_word):
	* alloc.c (object_memory_usage_stats):
	* alloc.c (Fobject_memory_usage):
	* alloc.c (compute_memusage_stats_length):
	* alloc.c (disksave_object_finalization_1):
	* alloc.c (Fgarbage_collect):
	* mc-alloc.c:
	* mc-alloc.c (mc_alloced_storage_size):
	* mc-alloc.h:
	No functionality change here.  Collect the allocations-statistics
	code that was scattered throughout alloc.c into one place.  Add
	remaining section headings so that all sections have headings
	clearly identifying the start of the section and its purpose.
	Expose mc_alloced_storage_size() even when not MEMORY_USAGE_STATS;
	this fixes build problems and is related to the export of
	lisp_object_storage_size() and malloced_storage_size() when
	non-MEMORY_USAGE_STATS in the previous change set.

2010-03-22  Vin Shelton  <acs@xemacs.org>

	* window.c (vars_of_window): Move HAVE_SCROLLBARS test so the code
	can compile under Visual Studio 6.

2010-03-21  Aidan Kehoe  <kehoea@parhasard.net>

	* alloc.c (tick_lrecord_stats):
	Fix the union build after Ben's last change, don't assume that a
	Lisp_Object will fit into a Bytecount.

2010-03-20  Ben Wing  <ben@xemacs.org>

	* alloc.c:
	* alloc.c (init_lrecord_stats):
	* alloc.c (free_normal_lisp_object):
	* alloc.c (struct):
	* alloc.c (clear_lrecord_stats):
	* alloc.c (tick_lrecord_stats):
	* alloc.c (COUNT_FROB_BLOCK_USAGE):
	* alloc.c (COPY_INTO_LRECORD_STATS):
	* alloc.c (sweep_strings):
	* alloc.c (UNMARK_string):
	* alloc.c (gc_sweep_1):
	* alloc.c (finish_object_memory_usage_stats):
	* alloc.c (object_memory_usage_stats):
	* alloc.c (object_dead_p):
	* alloc.c (fixed_type_block_overhead):
	* alloc.c (lisp_object_storage_size):
	* emacs.c (main_1):
	* lisp.h:
	* lrecord.h:
	Export lisp_object_storage_size() and malloced_storage_size() even
	when not MEMORY_USAGE_STATS, to get the non-MEMORY_USAGE_STATS
	build to compile.

	Don't export fixed_type_block_overhead() any more.

	Some code cleanup, rearrangement, add some section headers.

	Clean up various bugs especially involving computation of overhead
	and double-counting certain usage in total_gc_usage.  Add
	statistics computing the overhead used by all types.  Don't add a
	special entry for string headers in the object-memory-usage-stats
	because it's already present as just "string".  But do count the
	overhead used by long strings.  Don't try to call the
	memory_usage() methods when NEW_GC because there's nowhere obvious
	in the sweep stage to make the calls.
	
	* marker.c (compute_buffer_marker_usage):
	Just use lisp_object_storage_size() rather than trying to
	reimplement it.

2010-03-19  Ben Wing  <ben@xemacs.org>

	* alloc.c:
	* alloc.c (struct):
	* alloc.c (tick_lrecord_stats):
	* alloc.c (gc_sweep_1):
	* alloc.c (finish_object_memory_usage_stats):
	* alloc.c (object_memory_usage_stats):
	* alloc.c (compute_memusage_stats_length):
	Call new memory-usage mechanism at sweep time to compute extra
	memory utilization for all objects.  Add up the values element-by-
	element to get an aggregrate set of statistics, where each is the
	sum of the values of a single statistic across different objects
	of the same type.  At end of sweep time, call
	finish_object_memory_usage_stats() to add up all the aggreggrate
	stats that are related to non-Lisp memory storage to compute
	a single value, and add it to the list of values returned by
	`garbage-collect' and `object-memory-usage-stats'.
	
	* buffer.c (compute_buffer_text_usage):
	Don't crash on buffers without text (killed buffers?) and don't
	double-count indirect buffers.
	
	* elhash.c:
	* elhash.c (hash_table_objects_create):
	* elhash.c (vars_of_elhash):
	* symsinit.h:
	Add memory-usage method to count the size of `hentries'.
	
	* emacs.c (main_1):
	Call new functions in elhash.c, frame.c at init.
	
	* frame.c:
	* frame.c (compute_frame_usage):
	* frame.c (frame_memory_usage):
	* frame.c (frame_objects_create):
	* symsinit.h:
	Add memory-usage method to count gutter display structures,
	subwindow exposures.
	
	* gc.c (gc_finish):
	* lisp.h:
	Declare finish_object_memory_usage_stats(), call it in gc_finish().
	
	* lrecord.h (struct lrecord_implementation):
	* lrecord.h (INIT_MEMORY_USAGE_STATS):
	New value in implementation struct to track number of non-Lisp-memory
	statistics.  Computed in alloc.c.
	

2010-03-18  Ben Wing  <ben@xemacs.org>

	* alloc.c:
	* alloc.c (disksave_object_finalization_1):
	* alloc.c (lisp_object_storage_size):
	* alloc.c (listu):
	* alloc.c (listn):
	* alloc.c (Fobject_memory_usage_stats):
	* alloc.c (compute_memusage_stats_length):
	* alloc.c (Fobject_memory_usage):
	* alloc.c (Ftotal_object_memory_usage):
	* alloc.c (malloced_storage_size):
	* alloc.c (common_init_alloc_early):
	* alloc.c (reinit_alloc_objects_early):
	* alloc.c (reinit_alloc_early):
	* alloc.c (init_alloc_once_early):
	* alloc.c (syms_of_alloc):
	* alloc.c (reinit_vars_of_alloc):
	* buffer.c:
	* buffer.c (struct buffer_stats):
	* buffer.c (compute_buffer_text_usage):
	* buffer.c (compute_buffer_usage):
	* buffer.c (buffer_memory_usage):
	* buffer.c (buffer_objects_create):
	* buffer.c (syms_of_buffer):
	* buffer.c (vars_of_buffer):
	* console-impl.h (struct console_methods):
	* dynarr.c (Dynarr_memory_usage):
	* emacs.c (main_1):
	* events.c (clear_event_resource):
	* extents.c:
	* extents.c (compute_buffer_extent_usage):
	* extents.c (extent_objects_create):
	* extents.h:
	* faces.c:
	* faces.c (compute_face_cachel_usage):
	* faces.c (face_objects_create):
	* faces.h:
	* general-slots.h:
	* glyphs.c:
	* glyphs.c (compute_glyph_cachel_usage):
	* glyphs.c (glyph_objects_create):
	* glyphs.h:
	* lisp.h:
	* lisp.h (struct usage_stats):
	* lrecord.h:
	* lrecord.h (enum lrecord_type):
	* lrecord.h (struct lrecord_implementation):
	* lrecord.h (MC_ALLOC_CALL_FINALIZER_FOR_DISKSAVE):
	* lrecord.h (DEFINE_DUMPABLE_LISP_OBJECT):
	* lrecord.h (DEFINE_DUMPABLE_SIZABLE_LISP_OBJECT):
	* lrecord.h (DEFINE_DUMPABLE_FROB_BLOCK_LISP_OBJECT):
	* lrecord.h (DEFINE_DUMPABLE_FROB_BLOCK_SIZABLE_LISP_OBJECT):
	* lrecord.h (DEFINE_DUMPABLE_INTERNAL_LISP_OBJECT):
	* lrecord.h (DEFINE_DUMPABLE_SIZABLE_INTERNAL_LISP_OBJECT):
	* lrecord.h (DEFINE_NODUMP_LISP_OBJECT):
	* lrecord.h (DEFINE_NODUMP_SIZABLE_LISP_OBJECT):
	* lrecord.h (DEFINE_NODUMP_FROB_BLOCK_LISP_OBJECT):
	* lrecord.h (DEFINE_NODUMP_FROB_BLOCK_SIZABLE_LISP_OBJECT):
	* lrecord.h (DEFINE_NODUMP_INTERNAL_LISP_OBJECT):
	* lrecord.h (DEFINE_NODUMP_SIZABLE_INTERNAL_LISP_OBJECT):
	* lrecord.h (MAKE_LISP_OBJECT):
	* lrecord.h (DEFINE_DUMPABLE_MODULE_LISP_OBJECT):
	* lrecord.h (DEFINE_DUMPABLE_MODULE_SIZABLE_LISP_OBJECT):
	* lrecord.h (DEFINE_NODUMP_MODULE_LISP_OBJECT):
	* lrecord.h (DEFINE_NODUMP_MODULE_SIZABLE_LISP_OBJECT):
	* lrecord.h (MAKE_MODULE_LISP_OBJECT):
	* lrecord.h (INIT_LISP_OBJECT):
	* lrecord.h (INIT_MODULE_LISP_OBJECT):
	* lrecord.h (UNDEF_LISP_OBJECT):
	* lrecord.h (UNDEF_MODULE_LISP_OBJECT):
	* lrecord.h (DECLARE_LISP_OBJECT):
	* lrecord.h (DECLARE_MODULE_API_LISP_OBJECT):
	* lrecord.h (DECLARE_MODULE_LISP_OBJECT):
	* lstream.c:
	* lstream.c (syms_of_lstream):
	* lstream.c (vars_of_lstream):
	* marker.c:
	* marker.c (compute_buffer_marker_usage):
	* mc-alloc.c (mc_alloced_storage_size):
	* mc-alloc.h:
	* mule-charset.c:
	* mule-charset.c (struct charset_stats):
	* mule-charset.c (compute_charset_usage):
	* mule-charset.c (charset_memory_usage):
	* mule-charset.c (mule_charset_objects_create):
	* mule-charset.c (syms_of_mule_charset):
	* mule-charset.c (vars_of_mule_charset):
	* redisplay.c:
	* redisplay.c (compute_rune_dynarr_usage):
	* redisplay.c (compute_display_block_dynarr_usage):
	* redisplay.c (compute_glyph_block_dynarr_usage):
	* redisplay.c (compute_display_line_dynarr_usage):
	* redisplay.c (compute_line_start_cache_dynarr_usage):
	* redisplay.h:
	* scrollbar-gtk.c (gtk_compute_scrollbar_instance_usage):
	* scrollbar-msw.c (mswindows_compute_scrollbar_instance_usage):
	* scrollbar-x.c (x_compute_scrollbar_instance_usage):
	* scrollbar.c (compute_scrollbar_instance_usage):
	* scrollbar.h:
	* symbols.c:
	* symbols.c (reinit_symbol_objects_early):
	* symbols.c (init_symbols_once_early):
	* symbols.c (reinit_symbols_early):
	* symbols.c (defsymbol_massage_name_1):
	* symsinit.h:
	* ui-gtk.c:
	* ui-gtk.c (emacs_gtk_object_getprop):
	* ui-gtk.c (emacs_gtk_object_putprop):
	* ui-gtk.c (ui_gtk_objects_create):
	* unicode.c (compute_from_unicode_table_size_1):
	* unicode.c (compute_to_unicode_table_size_1):
	* unicode.c (compute_from_unicode_table_size):
	* unicode.c (compute_to_unicode_table_size):
	* window.c:
	* window.c (struct window_stats):
	* window.c (compute_window_mirror_usage):
	* window.c (compute_window_usage):
	* window.c (window_memory_usage):
	* window.c (window_objects_create):
	* window.c (syms_of_window):
	* window.c (vars_of_window):
	* window.h:
	Redo memory-usage mechanism, make it general; add way of dynamically
	initializing Lisp object types -- OBJECT_HAS_METHOD(), similar to
	CONSOLE_HAS_METHOD().

	(1) Create OBJECT_HAS_METHOD(), OBJECT_HAS_PROPERTY() etc. for
	specifying that a Lisp object type has a particular method or
	property.  Call such methods with OBJECT_METH, MAYBE_OBJECT_METH,
	OBJECT_METH_OR_GIVEN; retrieve properties with OBJECT_PROPERTY.
	Methods that formerly required a DEFINE_*GENERAL_LISP_OBJECT() to
	specify them (getprop, putprop, remprop, plist, disksave) now
	instead use the dynamic-method mechanism.  The main benefit of
	this is that new methods or properties can be added without
	requiring that the declaration statements of all existing methods
	be modified.  We have to make the `struct lrecord_implementation'
	non-const, but I don't think this should have any effect on speed --
	the only possible method that's really speed-critical is the
	mark method, and we already extract those out into a separate
	(non-const) array for increased cache locality.

	Object methods need to be reinitialized after pdump, so we put
	them in separate functions such as face_objects_create(),
	extent_objects_create() and call them appropriately from emacs.c
	The only current object property (`memusage_stats_list') that
	objects can specify is a Lisp object and gets staticpro()ed so it
	only needs to be set during dump time, but because it references
	symbols that might not exist in a syms_of_() function, we
	initialize it in vars_of_().  There is also an object property
	(`num_extra_memusage_stats') that is automatically initialized based
	on `memusage_stats_list'; we do that in reinit_vars_of_alloc(),
	which is called after all vars_of_() functions are called.

	`disksaver' method was renamed `disksave' to correspond with the
	name normally given to the function (e.g. disksave_lstream()).

	(2) Generalize the memory-usage mechanism in `buffer-memory-usage',
	`window-memory-usage', `charset-memory-usage' into an object-type-
	specific mechanism called by a single function
	`object-memory-usage'.  (Former function `object-memory-usage'
	renamed to `total-object-memory-usage').  Generalize the mechanism
	of different "slices" so that we can have different "classes" of
	memory described and different "slices" onto each class; `t'
	separates classes, `nil' separates slices.  Currently we have
	three classes defined: the memory of an object itself,
	non-Lisp-object memory associated with the object (e.g. arrays or
	dynarrs stored as fields in the object), and Lisp-object memory
	associated with the object (other internal Lisp objects stored in
	the object).  This isn't completely finished yet and we might need
	to further separate the "other internal Lisp objects" class into
	two classes.

	The memory-usage mechanism uses a `struct usage_stats' (renamed
	from `struct overhead_stats') to describe a malloc-view onto a set
	of allocated memory (listing how much was requested and various
	types of overhead) and a more general `struct generic_usage_stats'
	(with a `struct usage_stats' in it) to hold all statistics about
	object memory.  `struct generic_usage_stats' contains an array of
	32 Bytecounts, which are statistics of unspecified semantics.  The
	intention is that individual types declare a corresponding struct
	(e.g. `struct window_stats') with the same structure but with
	specific fields in place of the array, corresponding to specific
	statistics.  The number of such statistics is an object property
	computed from the list of tags (Lisp symbols describing the
	statistics) stored in `memusage_stats_list'.  The idea here is to
	allow particular object types to customize the number and
	semantics of the statistics where completely avoiding consing.
	This doesn't matter so much yet, but the intention is to have the
	memory usage of all objects computed at the end of GC, at the same
	time as other statistics are currently computed.  The values for
	all statistics for a single type would be added up to compute
	aggregate values for all objects of a specific type.  To make this
	efficient, we can't allow any memory allocation at all.

	(3) Create some additional functions for creating lists that
	specify the elements directly as args rather than indirectly through
	an array: listn() (number of args given), listu() (list terminated
	by Qunbound).

	(4) Delete a bit of remaining unused C window_config stuff, also
	unused lrecord_type_popup_data.
	
	
2010-03-18  Ben Wing  <ben@xemacs.org>

	* tests.c:
	* tests.c (Ftest_data_format_conversion):
	Need to GCPRO newly created objects or we'll eventually get
	a crash due to occurrence of call2().

2010-03-16  Ben Wing  <ben@xemacs.org>

	* alloc.c (make_lcrecord_list):
	* alloc.c (alloc_managed_lcrecord):
	Fix compilation problems identified by Robert Delius Royar.
	
2010-03-15  Ben Wing  <ben@xemacs.org>

	* extents.c (Fprevious_single_property_change):
	* extents.c (Fnext_single_char_property_change):
	* extents.c (Fprevious_single_char_property_change):
	Fix see-also portion of documentation string.

2010-03-15  Ben Wing  <ben@xemacs.org>

	* alloc.c:
	* alloc.c (c_readonly):
	* alloc.c (deadbeef_memory):
	* alloc.c (make_compiled_function):
	* alloc.c (make_button_data):
	* alloc.c (make_motion_data):
	* alloc.c (make_process_data):
	* alloc.c (make_timeout_data):
	* alloc.c (make_magic_data):
	* alloc.c (make_magic_eval_data):
	* alloc.c (make_eval_data):
	* alloc.c (make_misc_user_data):
	* alloc.c (noseeum_make_marker):
	* alloc.c (ADDITIONAL_FREE_string):
	* alloc.c (common_init_alloc_early):
	* alloc.c (init_alloc_once_early):
	* bytecode.c (print_compiled_function):
	* bytecode.c (mark_compiled_function):
	* casetab.c:
	* casetab.c (print_case_table):
	* console.c:
	* console.c (print_console):
	* database.c (print_database):
	* database.c (finalize_database):
	* device-msw.c (sync_printer_with_devmode):
	* device-msw.c (print_devmode):
	* device-msw.c (finalize_devmode):
	* device.c:
	* device.c (print_device):
	* elhash.c:
	* elhash.c (print_hash_table):
	* eval.c (print_multiple_value):
	* eval.c (mark_multiple_value):
	* events.c (deinitialize_event):
	* events.c (print_event):
	* events.c (event_equal):
	* extents.c:
	* extents.c (soe_dump):
	* extents.c (soe_insert):
	* extents.c (soe_delete):
	* extents.c (soe_move):
	* extents.c (extent_fragment_update):
	* extents.c (print_extent_1):
	* extents.c (print_extent):
	* extents.c (vars_of_extents):
	* frame.c:
	* frame.c (print_frame):
	* free-hook.c:
	* free-hook.c (check_free):
	* glyphs.c:
	* glyphs.c (print_image_instance):
	* glyphs.c (print_glyph):
	* gui.c:
	* gui.c (copy_gui_item):
	* hash.c:
	* hash.c (NULL_ENTRY):
	* hash.c (KEYS_DIFFER_P):
	* keymap.c (print_keymap):
	* keymap.c (MARKED_SLOT):
	* lisp.h:
	* lrecord.h:
	* lrecord.h (LISP_OBJECT_UID):
	* lrecord.h (set_lheader_implementation):
	* lrecord.h (struct old_lcrecord_header):
	* lstream.c (print_lstream):
	* lstream.c (finalize_lstream):
	* marker.c (print_marker):
	* marker.c (marker_equal):
	* mc-alloc.c (visit_all_used_page_headers):
	* mule-charset.c:
	* mule-charset.c (print_charset):
	* objects.c (print_color_instance):
	* objects.c (print_font_instance):
	* objects.c (finalize_font_instance):
	* opaque.c (print_opaque):
	* opaque.c (print_opaque_ptr):
	* opaque.c (equal_opaque_ptr):
	* print.c (internal_object_printer):
	* print.c (enum printing_badness):
	* rangetab.c (print_range_table):
	* rangetab.c (range_table_equal):
	* specifier.c (print_specifier):
	* specifier.c (finalize_specifier):
	* symbols.c:
	* symbols.c (print_symbol_value_magic):
	* tooltalk.c:
	* tooltalk.c (print_tooltalk_message):
	* tooltalk.c (print_tooltalk_pattern):
	* window.c (print_window):
	* window.c (debug_print_window):
	(1) Make lrecord UID's have a separate UID space for each object.
	Otherwise, with 20-bit UID's, we rapidly wrap around, especially
	when common objects like conses and strings increment the UID value
	for every object created. (Originally I tried making two UID spaces,
	one for objects that always print readably and hence don't display
	the UID, and one for other objects.  But certain objects like markers
	for which a UID is displayed are still generated rapidly enough that
	UID overflow is a serious issue.) This also has the advantage of
	making UID values smaller, hence easier to remember -- their main
	purpose is to make it easier to keep track of different objects of
	the same type when debugging code.  Make sure we dump lrecord UID's
	so that we don't have problems with pdumped and non-dumped objects
	having the same UID.

	(2) Display UID's consistently whenever an object (a) doesn't
	consistently print readably (objects like cons and string, which
	always print readably, can't display a UID), and (b) doesn't
	otherwise have a unique property that makes objects of a
	particular type distinguishable. (E.g. buffers didn't and still
	don't print an ID, but the buffer name uniquely identifies the
	buffer.) Some types, such as event, extent, compiled-function,
	didn't always (or didn't ever) display an ID; others (such as
	marker, extent, lstream, opaque, opaque-ptr, any object using
	internal_object_printer()) used to display the actual machine
	pointer instead.

	(3) Rename NORMAL_LISP_OBJECT_UID to LISP_OBJECT_UID; make it work
	over all Lisp objects and take a Lisp object, not a struct pointer.

	(4) Some misc cleanups in alloc.c, elhash.c.

	(5) Change code in events.c that "deinitializes" an event so that
	it doesn't increment the event UID counter in the process.  Also
	use deadbeef_memory() to overwrite memory instead of doing the same
	with custom code.  In the process, make deadbeef_memory() in
	alloc.c always available, and delete extraneous copy in mc-alloc.c.
	Also capitalize all uses of 0xDEADBEEF.  Similarly in elhash.c
	call deadbeef_memory().

	(6) Resurrect "debug SOE" code in extents.c.  Make it conditional
	on DEBUG_XEMACS and on a `debug-soe' variable, rather than on
	SOE_DEBUG.  Make it output to stderr, not stdout.

	(7) Delete some custom print methods that were identical to
	external_object_printer().

2010-03-12  Ben Wing  <ben@xemacs.org>

	* lisp.h:
	* lisp.h (redo-symbols): Removed.
	Put the Lisp variables and symbols where they belong, with other
	stuff related to the file they're in.
	
	* event-Xt.c (THIS_IS_X):
	* event-Xt.c (syms_of_event_Xt):
	* event-Xt.c (reinit_vars_of_event_Xt):
	* event-gtk.c:
	* event-gtk.c (syms_of_event_gtk):
	* event-gtk.c (reinit_vars_of_event_gtk):
	* event-stream.c:
	* event-stream.c (syms_of_event_stream):
	* event-stream.c (reinit_vars_of_event_stream):
	* events.c (reinit_vars_of_events):
	* events.c (vars_of_events):
	`sans-modifiers' was defsymbol'ed more than once.  Move it to
	events-stream.c. `self-insert-command' was defsymbol'ed more than once.
	Vevent_resource should be staticpro_nodump()ed as it's declared in
	a reinit_*() method.
	
	* lread.c (vars_of_lread):
	Vfile_domain wasn't staticpro'ed.
	
	* minibuf.c:
	* minibuf.c (reinit_complex_vars_of_minibuf):
	Vminibuffer_zero and Vecho_area_buffer weren't staticpro'ed.

2010-03-12  Ben Wing  <ben@xemacs.org>

	* redisplay-msw.c:
	* redisplay-msw.c (mswindows_output_dibitmap_region):
	* redisplay-msw.c (mswindows_output_pixmap):
	* redisplay-msw.c (mswindows_clear_region):
	Have a crack at implementing the `absolute' property for
	background pixmaps.  It seems to work; however, things don't
	work quite right in relation to window sizing/moving.  In particular,
	ideally when you move the window the background should stay in place
	but it doesn't; instead it moves, and when you hit C-l it gets
	redrawn in the "proper" place.  When resizing you get some serious
	jitter, apparently as first the image gets moved then redrawn in
	the correct offset position.  #### Not sure how to fix this.

2010-03-13  Ben Wing  <ben@xemacs.org>

	* alloc.c (alloc_sized_lrecord_1):
	* alloc.c (alloc_sized_lrecord_array):
	* alloc.c (old_alloc_sized_lcrecord):
	* alloc.c (disksave_object_finalization_1):
	* alloc.c (mark_lcrecord_list):
	* alloc.c (alloc_managed_lcrecord):
	* alloc.c (free_managed_lcrecord):
	* alloc.c (tick_lcrecord_stats):
	* alloc.c (sweep_lcrecords_1):
	* buffer.c (print_buffer):
	* buffer.c (DEFVAR_BUFFER_LOCAL_1):
	* casetab.c:
	* casetab.c (print_case_table):
	* console.c (print_console):
	* console.c (DEFVAR_CONSOLE_LOCAL_1):
	* data.c (print_weak_list):
	* data.c (print_weak_box):
	* data.c (print_ephemeron):
	* data.c (ephemeron_equal):
	* database.c (print_database):
	* database.c (finalize_database):
	* device-msw.c (sync_printer_with_devmode):
	* device-msw.c (print_devmode):
	* device-msw.c (finalize_devmode):
	* device.c:
	* device.c (print_device):
	* elhash.c:
	* elhash.c (print_hash_table):
	* eval.c (print_subr):
	* eval.c (print_multiple_value):
	* event-stream.c (event_stream_resignal_wakeup):
	* events.c (clear_event_resource):
	* events.c (zero_event):
	* events.c (print_event):
	* extents.c:
	* extents.c (print_extent):
	* file-coding.c (print_coding_system):
	* font-mgr.c:
	* font-mgr.c (Ffc_init):
	* frame.c:
	* frame.c (print_frame):
	* gc.c:
	* gc.c (GC_CHECK_NOT_FREE):
	* glyphs.c:
	* glyphs.c (print_image_instance):
	* glyphs.c (print_glyph):
	* gui.c (print_gui_item):
	* gui.c (copy_gui_item):
	* keymap.c (print_keymap):
	* keymap.c (MARKED_SLOT):
	* lisp.h:
	* lisp.h (struct Lisp_String):
	* lisp.h (DEFUN):
	* lisp.h (DEFUN_NORETURN):
	* lrecord.h:
	* lrecord.h (NORMAL_LISP_OBJECT_UID):
	* lrecord.h (struct lrecord_header):
	* lrecord.h (set_lheader_implementation):
	* lrecord.h (struct old_lcrecord_header):
	* lrecord.h (struct free_lcrecord_header):
	* marker.c (print_marker):
	* mule-charset.c:
	* mule-charset.c (print_charset):
	* objects.c (print_color_instance):
	* objects.c (print_font_instance):
	* objects.c (finalize_font_instance):
	* print.c (print_cons):
	* print.c (printing_unreadable_object_fmt):
	* print.c (printing_unreadable_lisp_object):
	* print.c (external_object_printer):
	* print.c (internal_object_printer):
	* print.c (debug_p4):
	* print.c (ext_print_begin):
	* process.c (print_process):
	* rangetab.c (print_range_table):
	* rangetab.c (range_table_equal):
	* scrollbar.c (free_scrollbar_instance):
	* specifier.c (print_specifier):
	* specifier.c (finalize_specifier):
	* symbols.c (guts_of_unbound_marker):
	* symeval.h:
	* symeval.h (DEFVAR_SYMVAL_FWD):
	* tooltalk.c:
	* tooltalk.c (print_tooltalk_message):
	* tooltalk.c (print_tooltalk_pattern):
	* ui-gtk.c (ffi_object_printer):
	* ui-gtk.c (emacs_gtk_object_printer):
	* ui-gtk.c (emacs_gtk_boxed_printer):
	* window.c (print_window):
	* window.c (free_window_mirror):
	* window.c (debug_print_window):
	* xemacs.def.in.in:
	(1) printing_unreadable_object -> printing_unreadable_object_fmt.
	(2) printing_unreadable_lcrecord -> printing_unreadable_lisp_object
	    and fix up so it no longer requires an lcrecord.

	These previous changes eliminate most of the remaining places where
	the terms `lcrecord' and `lrecord' occurred outside of specialized
	code.

	(3) Fairly major change: Reduce the number of words in an lcrecord
	from 3 to 2.  The third word consisted of a uid that duplicated the
	lrecord uid, and a single free bit, which was moved into the lrecord
	structure.  This reduces the size of the `uid' slot from 21 bits to
	20 bits.  Arguably this isn't enough -- we could easily have more than
	1,000,000 or so objects created in a session.  The answer is
	   (a) It doesn't really matter if we overflow the uid field because
	       it's only used for debugging, to identify an object uniquely
	       (or pretty much so).
	   (b) If we cared about it overflowing and wanted to reduce this,
	       we could make it so that cons, string, float and certain other
	       frob-block types that never print out the uid simply don't
	       store a uid in them and don't increment the lrecord_uid_counter.

	(4) In conjunction with (3), create new macro NORMAL_LISP_OBJECT_UID()
	    and use it to abstract out the differences between NEWGC and old-GC
	    in accessing the `uid' value from a "normal Lisp Object pointer".

	(5) In events.c, use zero_nonsized_lisp_object() in place of custom-
	    written equivalent.  In font-mgr.c use external_object_printer()
	    in place of custom-written equivalents.
2010-03-07  Ben Wing  <ben@xemacs.org>

	* number.c (bignum_finalize):
	* number.c (ratio_finalize):
	* number.c (bigfloat_finalize):
	Fix the finalizers to go with the new calling sequence.  Done
	previously but somehow got lost.

2010-03-06  Ben Wing  <ben@xemacs.org>

	* frame.c (change_frame_size_1):
	Add a comment about where FRAME_PIXWIDTH/FRAME_PIXHEIGHT is set.
	
2010-03-05  Ben Wing  <ben@xemacs.org>

	* frame.c:
	* frame.c (Fframe_pixel_height):
	* frame.c (Fframe_displayable_pixel_height):
	* frame.c (Fframe_pixel_width):
	* frame.c (Fframe_displayable_pixel_width):
	* frame.c (Fset_frame_pixel_height):
	* frame.c (Fset_frame_displayable_pixel_height):
	* frame.c (Fset_frame_pixel_width):
	* frame.c (Fset_frame_displayable_pixel_width):
	* frame.c (get_frame_char_size):
	* frame.c (change_frame_size_1):
	Make it so that `frame-pixel-height', `set-frame-pixel-height', etc.
	use updated values for the displayable or total pixel size that
	will reflect what will happen as of the next redisplay.  This
	basically means using the character-cell height and converting
	on-the-fly to pixel units.  In the process, make sure FRAME_CHARWIDTH/
	FRAME_CHARHEIGHT are always correct and change
	get_frame_char_size() to simply use them; the old logic in that
	function was inlined into change_frame_size_1(), which is the only
	place that needs the logic.

2010-03-05  Ben Wing  <ben@xemacs.org>

	* frame.c:
	* frame.c (frame_live_p):
	* frame.c (Fframep):
	* frame.c (Fdisable_frame):
	* frame.c (Fenable_frame):
	* frame.c (Fraise_frame):
	* frame.c (Fframe_name):
	* frame.c (Fset_frame_height):
	* frame.c (internal_set_frame_size):
	* frame.c (adjust_frame_size):
	Add documentation on the different types of units used to measure
	frame size.

	Add section headers to the various sections.
	
	Rearrange the location of some functions in the file to keep
	related functions together.  This especially goes for frame-sizing
	functions (internal_set_frame_size() and adjust_frame_size()),
	which have been moved so that they form a group with
	change_frame_size() and change_frame_size_1().

	No functionality should change.

2010-03-05  Ben Wing  <ben@xemacs.org>

	* alloc.c:
	* alloc.c (old_alloc_sized_lcrecord):
	* alloc.c (very_old_free_lcrecord):
	* alloc.c (copy_lisp_object):
	* alloc.c (zero_sized_lisp_object):
	* alloc.c (zero_nonsized_lisp_object):
	* alloc.c (lisp_object_storage_size):
	* alloc.c (free_normal_lisp_object):
	* alloc.c (FREE_FIXED_TYPE_WHEN_NOT_IN_GC):
	* alloc.c (ALLOC_FROB_BLOCK_LISP_OBJECT):
	* alloc.c (Fcons):
	* alloc.c (noseeum_cons):
	* alloc.c (make_float):
	* alloc.c (make_bignum):
	* alloc.c (make_bignum_bg):
	* alloc.c (make_ratio):
	* alloc.c (make_ratio_bg):
	* alloc.c (make_ratio_rt):
	* alloc.c (make_bigfloat):
	* alloc.c (make_bigfloat_bf):
	* alloc.c (size_vector):
	* alloc.c (make_compiled_function):
	* alloc.c (Fmake_symbol):
	* alloc.c (allocate_extent):
	* alloc.c (allocate_event):
	* alloc.c (make_key_data):
	* alloc.c (make_button_data):
	* alloc.c (make_motion_data):
	* alloc.c (make_process_data):
	* alloc.c (make_timeout_data):
	* alloc.c (make_magic_data):
	* alloc.c (make_magic_eval_data):
	* alloc.c (make_eval_data):
	* alloc.c (make_misc_user_data):
	* alloc.c (Fmake_marker):
	* alloc.c (noseeum_make_marker):
	* alloc.c (size_string_direct_data):
	* alloc.c (make_uninit_string):
	* alloc.c (make_string_nocopy):
	* alloc.c (mark_lcrecord_list):
	* alloc.c (alloc_managed_lcrecord):
	* alloc.c (free_managed_lcrecord):
	* alloc.c (sweep_lcrecords_1):
	* alloc.c (malloced_storage_size):
	* buffer.c (allocate_buffer):
	* buffer.c (compute_buffer_usage):
	* buffer.c (DEFVAR_BUFFER_LOCAL_1):
	* buffer.c (nuke_all_buffer_slots):
	* buffer.c (common_init_complex_vars_of_buffer):
	* buffer.h (struct buffer_text):
	* buffer.h (struct buffer):
	* bytecode.c:
	* bytecode.c (make_compiled_function_args):
	* bytecode.c (size_compiled_function_args):
	* bytecode.h (struct compiled_function_args):
	* casetab.c (allocate_case_table):
	* casetab.h (struct Lisp_Case_Table):
	* charset.h (struct Lisp_Charset):
	* chartab.c (fill_char_table):
	* chartab.c (Fmake_char_table):
	* chartab.c (make_char_table_entry):
	* chartab.c (copy_char_table_entry):
	* chartab.c (Fcopy_char_table):
	* chartab.c (put_char_table):
	* chartab.h (struct Lisp_Char_Table_Entry):
	* chartab.h (struct Lisp_Char_Table):
	* console-gtk-impl.h (struct gtk_device):
	* console-gtk-impl.h (struct gtk_frame):
	* console-impl.h (struct console):
	* console-msw-impl.h (struct Lisp_Devmode):
	* console-msw-impl.h (struct mswindows_device):
	* console-msw-impl.h (struct msprinter_device):
	* console-msw-impl.h (struct mswindows_frame):
	* console-msw-impl.h (struct mswindows_dialog_id):
	* console-stream-impl.h (struct stream_console):
	* console-stream.c (stream_init_console):
	* console-tty-impl.h (struct tty_console):
	* console-tty-impl.h (struct tty_device):
	* console-tty.c (allocate_tty_console_struct):
	* console-x-impl.h (struct x_device):
	* console-x-impl.h (struct x_frame):
	* console.c (allocate_console):
	* console.c (nuke_all_console_slots):
	* console.c (DEFVAR_CONSOLE_LOCAL_1):
	* console.c (common_init_complex_vars_of_console):
	* data.c (make_weak_list):
	* data.c (make_weak_box):
	* data.c (make_ephemeron):
	* database.c:
	* database.c (struct Lisp_Database):
	* database.c (allocate_database):
	* database.c (finalize_database):
	* device-gtk.c (allocate_gtk_device_struct):
	* device-impl.h (struct device):
	* device-msw.c:
	* device-msw.c (mswindows_init_device):
	* device-msw.c (msprinter_init_device):
	* device-msw.c (finalize_devmode):
	* device-msw.c (allocate_devmode):
	* device-tty.c (allocate_tty_device_struct):
	* device-x.c (allocate_x_device_struct):
	* device.c:
	* device.c (nuke_all_device_slots):
	* device.c (allocate_device):
	* dialog-msw.c (handle_question_dialog_box):
	* elhash.c:
	* elhash.c (struct Lisp_Hash_Table):
	* elhash.c (finalize_hash_table):
	* elhash.c (make_general_lisp_hash_table):
	* elhash.c (Fcopy_hash_table):
	* elhash.h (htentry):
	* emacs.c (main_1):
	* eval.c:
	* eval.c (size_multiple_value):
	* event-stream.c (finalize_command_builder):
	* event-stream.c (allocate_command_builder):
	* event-stream.c (free_command_builder):
	* event-stream.c (event_stream_generate_wakeup):
	* event-stream.c (event_stream_resignal_wakeup):
	* event-stream.c (event_stream_disable_wakeup):
	* event-stream.c (event_stream_wakeup_pending_p):
	* events.h (struct Lisp_Timeout):
	* events.h (struct command_builder):
	* extents-impl.h:
	* extents-impl.h (struct extent_auxiliary):
	* extents-impl.h (struct extent_info):
	* extents-impl.h (set_extent_no_chase_aux_field):
	* extents-impl.h (set_extent_no_chase_normal_field):
	* extents.c:
	* extents.c (gap_array_marker):
	* extents.c (gap_array):
	* extents.c (extent_list_marker):
	* extents.c (extent_list):
	* extents.c (stack_of_extents):
	* extents.c (gap_array_make_marker):
	* extents.c (extent_list_make_marker):
	* extents.c (allocate_extent_list):
	* extents.c (SLOT):
	* extents.c (mark_extent_auxiliary):
	* extents.c (allocate_extent_auxiliary):
	* extents.c (attach_extent_auxiliary):
	* extents.c (size_gap_array):
	* extents.c (finalize_extent_info):
	* extents.c (allocate_extent_info):
	* extents.c (uninit_buffer_extents):
	* extents.c (allocate_soe):
	* extents.c (copy_extent):
	* extents.c (vars_of_extents):
	* extents.h:
	* faces.c (allocate_face):
	* faces.h (struct Lisp_Face):
	* faces.h (struct face_cachel):
	* file-coding.c:
	* file-coding.c (finalize_coding_system):
	* file-coding.c (sizeof_coding_system):
	* file-coding.c (Fcopy_coding_system):
	* file-coding.h (struct Lisp_Coding_System):
	* file-coding.h (MARKED_SLOT):
	* fns.c (size_bit_vector):
	* font-mgr.c:
	* font-mgr.c (finalize_fc_pattern):
	* font-mgr.c (print_fc_pattern):
	* font-mgr.c (Ffc_pattern_p):
	* font-mgr.c (Ffc_pattern_create):
	* font-mgr.c (Ffc_name_parse):
	* font-mgr.c (Ffc_name_unparse):
	* font-mgr.c (Ffc_pattern_duplicate):
	* font-mgr.c (Ffc_pattern_add):
	* font-mgr.c (Ffc_pattern_del):
	* font-mgr.c (Ffc_pattern_get):
	* font-mgr.c (fc_config_create_using):
	* font-mgr.c (fc_strlist_to_lisp_using):
	* font-mgr.c (fontset_to_list):
	* font-mgr.c (Ffc_config_p):
	* font-mgr.c (Ffc_config_up_to_date):
	* font-mgr.c (Ffc_config_build_fonts):
	* font-mgr.c (Ffc_config_get_cache):
	* font-mgr.c (Ffc_config_get_fonts):
	* font-mgr.c (Ffc_config_set_current):
	* font-mgr.c (Ffc_config_get_blanks):
	* font-mgr.c (Ffc_config_get_rescan_interval):
	* font-mgr.c (Ffc_config_set_rescan_interval):
	* font-mgr.c (Ffc_config_app_font_add_file):
	* font-mgr.c (Ffc_config_app_font_add_dir):
	* font-mgr.c (Ffc_config_app_font_clear):
	* font-mgr.c (size):
	* font-mgr.c (Ffc_config_substitute):
	* font-mgr.c (Ffc_font_render_prepare):
	* font-mgr.c (Ffc_font_match):
	* font-mgr.c (Ffc_font_sort):
	* font-mgr.c (finalize_fc_config):
	* font-mgr.c (print_fc_config):
	* font-mgr.h:
	* font-mgr.h (struct fc_pattern):
	* font-mgr.h (XFC_PATTERN):
	* font-mgr.h (struct fc_config):
	* font-mgr.h (XFC_CONFIG):
	* frame-gtk.c (allocate_gtk_frame_struct):
	* frame-impl.h (struct frame):
	* frame-msw.c (mswindows_init_frame_1):
	* frame-x.c (allocate_x_frame_struct):
	* frame.c (nuke_all_frame_slots):
	* frame.c (allocate_frame_core):
	* gc.c:
	* gc.c (GC_CHECK_NOT_FREE):
	* glyphs.c (finalize_image_instance):
	* glyphs.c (allocate_image_instance):
	* glyphs.c (Fcolorize_image_instance):
	* glyphs.c (allocate_glyph):
	* glyphs.c (unmap_subwindow_instance_cache_mapper):
	* glyphs.c (register_ignored_expose):
	* glyphs.h (struct Lisp_Image_Instance):
	* glyphs.h (struct Lisp_Glyph):
	* glyphs.h (struct glyph_cachel):
	* glyphs.h (struct expose_ignore):
	* gui.c (allocate_gui_item):
	* gui.h (struct Lisp_Gui_Item):
	* keymap.c (struct Lisp_Keymap):
	* keymap.c (make_keymap):
	* lisp.h:
	* lisp.h (struct Lisp_String_Direct_Data):
	* lisp.h (struct Lisp_String_Indirect_Data):
	* lisp.h (struct Lisp_Vector):
	* lisp.h (struct Lisp_Bit_Vector):
	* lisp.h (DECLARE_INLINE_LISP_BIT_VECTOR):
	* lisp.h (struct weak_box):
	* lisp.h (struct ephemeron):
	* lisp.h (struct weak_list):
	* lrecord.h:
	* lrecord.h (struct lrecord_implementation):
	* lrecord.h (MC_ALLOC_CALL_FINALIZER):
	* lrecord.h (struct lcrecord_list):
	* lstream.c (finalize_lstream):
	* lstream.c (sizeof_lstream):
	* lstream.c (Lstream_new):
	* lstream.c (Lstream_delete):
	* lstream.h (struct lstream):
	* marker.c:
	* marker.c (finalize_marker):
	* marker.c (compute_buffer_marker_usage):
	* mule-charset.c:
	* mule-charset.c (make_charset):
	* mule-charset.c (compute_charset_usage):
	* objects-impl.h (struct Lisp_Color_Instance):
	* objects-impl.h (struct Lisp_Font_Instance):
	* objects-tty-impl.h (struct tty_color_instance_data):
	* objects-tty-impl.h (struct tty_font_instance_data):
	* objects-tty.c (tty_initialize_color_instance):
	* objects-tty.c (tty_initialize_font_instance):
	* objects.c (finalize_color_instance):
	* objects.c (Fmake_color_instance):
	* objects.c (finalize_font_instance):
	* objects.c (Fmake_font_instance):
	* objects.c (reinit_vars_of_objects):
	* opaque.c:
	* opaque.c (sizeof_opaque):
	* opaque.c (make_opaque_ptr):
	* opaque.c (free_opaque_ptr):
	* opaque.h:
	* opaque.h (Lisp_Opaque):
	* opaque.h (Lisp_Opaque_Ptr):
	* print.c (printing_unreadable_lcrecord):
	* print.c (external_object_printer):
	* print.c (debug_p4):
	* process.c (finalize_process):
	* process.c (make_process_internal):
	* procimpl.h (struct Lisp_Process):
	* rangetab.c (Fmake_range_table):
	* rangetab.c (Fcopy_range_table):
	* rangetab.h (struct Lisp_Range_Table):
	* scrollbar.c:
	* scrollbar.c (create_scrollbar_instance):
	* scrollbar.c (compute_scrollbar_instance_usage):
	* scrollbar.h (struct scrollbar_instance):
	* specifier.c (finalize_specifier):
	* specifier.c (sizeof_specifier):
	* specifier.c (set_specifier_caching):
	* specifier.h (struct Lisp_Specifier):
	* specifier.h (struct specifier_caching):
	* symeval.h:
	* symeval.h (SYMBOL_VALUE_MAGIC_P):
	* symeval.h (DEFVAR_SYMVAL_FWD):
	* symsinit.h:
	* syntax.c (init_buffer_syntax_cache):
	* syntax.h (struct syntax_cache):
	* toolbar.c:
	* toolbar.c (allocate_toolbar_button):
	* toolbar.c (update_toolbar_button):
	* toolbar.h (struct toolbar_button):
	* tooltalk.c (struct Lisp_Tooltalk_Message):
	* tooltalk.c (make_tooltalk_message):
	* tooltalk.c (struct Lisp_Tooltalk_Pattern):
	* tooltalk.c (make_tooltalk_pattern):
	* ui-gtk.c:
	* ui-gtk.c (allocate_ffi_data):
	* ui-gtk.c (emacs_gtk_object_finalizer):
	* ui-gtk.c (allocate_emacs_gtk_object_data):
	* ui-gtk.c (allocate_emacs_gtk_boxed_data):
	* ui-gtk.h:
	* window-impl.h (struct window):
	* window-impl.h (struct window_mirror):
	* window.c (finalize_window):
	* window.c (allocate_window):
	* window.c (new_window_mirror):
	* window.c (mark_window_as_deleted):
	* window.c (make_dummy_parent):
	* window.c (compute_window_mirror_usage):
	* window.c (compute_window_usage):

	Overall point of this change and previous ones in this repository:

	(1) Introduce new, clearer terminology: everything other than int
	or char is a "record" object, which comes in two types: "normal
	objects" and "frob-block objects".  Fix up all places that
	referred to frob-block objects as "simple", "basic", etc.

	(2) Provide an advertised interface for doing operations on Lisp
	objects, including creating new types, that is clean and
	consistent in its naming, uses the above-referenced terms and
	avoids referencing "lrecords", "old lcrecords", etc., which should
	hide under the surface.

	(3) Make the size_in_bytes and finalizer methods take a
	Lisp_Object rather than a void * for consistency with other methods.

	(4) Separate finalizer method into finalizer and disksaver, so
	that normal finalize methods don't have to worry about disksaving.

	Other specifics:
	
	(1) Renaming:

	LISP_OBJECT_HEADER -> NORMAL_LISP_OBJECT_HEADER
	ALLOC_LISP_OBJECT -> ALLOC_NORMAL_LISP_OBJECT
	implementation->basic_p -> implementation->frob_block_p
	ALLOCATE_FIXED_TYPE_AND_SET_IMPL -> ALLOC_FROB_BLOCK_LISP_OBJECT
	*FCCONFIG*, wrap_fcconfig -> *FC_CONFIG*, wrap_fc_config
	*FCPATTERN*, wrap_fcpattern -> *FC_PATTERN*, wrap_fc_pattern

	(the last two changes make the naming of these macros consistent
	with the naming of all other macros, since the objects are named
	fc-config and fc-pattern with a hyphen)
	
	(2) Lots of documentation fixes in lrecord.h.

	(3) Eliminate macros for copying, freeing, zeroing objects, getting
	their storage size.  Instead, new functions:

	zero_sized_lisp_object()
	zero_nonsized_lisp_object()
	lisp_object_storage_size()
	free_normal_lisp_object()
	(copy_lisp_object() already exists)
	LISP_OBJECT_FROB_BLOCK_P() (actually a macro)

	Eliminated:

	free_lrecord()
	zero_lrecord()
	copy_lrecord()
	copy_sized_lrecord()
	old_copy_lcrecord()
	old_copy_sized_lcrecord()
	old_zero_lcrecord()
	old_zero_sized_lcrecord()
	LISP_OBJECT_STORAGE_SIZE()
	COPY_SIZED_LISP_OBJECT()
	COPY_SIZED_LCRECORD()
	COPY_LISP_OBJECT()
	ZERO_LISP_OBJECT()
	FREE_LISP_OBJECT()

	(4) Catch the remaining places where lrecord stuff was used directly
	and use the advertised interface, e.g. alloc_sized_lrecord() ->
	ALLOC_SIZED_LISP_OBJECT().

	(5) Make certain statically-declared pseudo-objects
	(buffer_local_flags, console_local_flags) have their lheader
	initialized correctly, so things like copy_lisp_object() can work
	on them.  Make extent_auxiliary_defaults a proper heap object
	Vextent_auxiliary_defaults, and make extent auxiliaries dumpable
	so that this object can be dumped.  allocate_extent_auxiliary()
	now just creates the object, and attach_extent_auxiliary()
	creates an extent auxiliary and attaches to an extent, like the
	old allocate_extent_auxiliary().
	
	(6) Create EXTENT_AUXILIARY_SLOTS macro, similar to the foo-slots.h
	files but in a macro instead of a file.  The purpose is to avoid
	duplication when iterating over all the slots in an extent auxiliary.
	Use it.

	(7) In lstream.c, don't zero out object after allocation because
	allocation routines take care of this.

	(8) In marker.c, fix a mistake in computing marker overhead.

	(9) In print.c, clean up printing_unreadable_lcrecord(),
	external_object_printer() to avoid lots of ifdef NEW_GC's.

	(10) Separate toolbar-button allocation into a separate 
	allocate_toolbar_button() function for use in the example code
	in lrecord.h.
	
2010-01-20  Ben Wing  <ben@xemacs.org>

	* alloc.c:
	* alloc.c (very_old_free_lcrecord):
	* alloc.c (disksave_object_finalization_1):
	* alloc.c (make_lcrecord_list):
	* alloc.c (alloc_managed_lcrecord):
	* alloc.c (free_managed_lcrecord):
	* alloc.c (sweep_lcrecords_1):
	* buffer.c:
	* bytecode.c:
	* bytecode.c (Fcompiled_function_p):
	* chartab.c:
	* console-impl.h:
	* console-impl.h (CONSOLE_TYPE_P):
	* console.c:
	* console.c (set_quit_events):
	* data.c:
	* data.c (Fmake_ephemeron):
	* database.c:
	* database.c (finalize_database):
	* database.c (Fclose_database):
	* device-msw.c:
	* device-msw.c (finalize_devmode):
	* device-msw.c (allocate_devmode):
	* device.c:
	* elhash.c:
	* elhash.c (finalize_hash_table):
	* eval.c:
	* eval.c (bind_multiple_value_limits):
	* event-stream.c:
	* event-stream.c (finalize_command_builder):
	* events.c:
	* events.c (mark_event):
	* extents.c:
	* extents.c (finalize_extent_info):
	* extents.c (uninit_buffer_extents):
	* faces.c:
	* file-coding.c:
	* file-coding.c (finalize_coding_system):
	* file-coding.h:
	* file-coding.h (struct coding_system_methods):
	* file-coding.h (struct detector):
	* floatfns.c:
	* floatfns.c (extract_float):
	* fns.c:
	* fns.c (Fidentity):
	* font-mgr.c (finalize_fc_pattern):
	* font-mgr.c (finalize_fc_config):
	* frame.c:
	* glyphs.c:
	* glyphs.c (finalize_image_instance):
	* glyphs.c (unmap_subwindow_instance_cache_mapper):
	* gui.c:
	* gui.c (gui_error):
	* keymap.c:
	* lisp.h (struct Lisp_Symbol):
	* lrecord.h:
	* lrecord.h (struct lrecord_implementation):
	* lrecord.h (MC_ALLOC_CALL_FINALIZER):
	* lrecord.h (MC_ALLOC_CALL_FINALIZER_FOR_DISKSAVE):
	* lrecord.h (DEFINE_DUMPABLE_LISP_OBJECT):
	* lrecord.h (DEFINE_DUMPABLE_GENERAL_LISP_OBJECT):
	* lrecord.h (DEFINE_DUMPABLE_SIZABLE_LISP_OBJECT):
	* lrecord.h (DEFINE_DUMPABLE_SIZABLE_GENERAL_LISP_OBJECT):
	* lrecord.h (DEFINE_DUMPABLE_FROB_BLOCK_LISP_OBJECT):
	* lrecord.h (DEFINE_DUMPABLE_FROB_BLOCK_GENERAL_LISP_OBJECT):
	* lrecord.h (DEFINE_DUMPABLE_FROB_BLOCK_SIZABLE_LISP_OBJECT):
	* lrecord.h (DEFINE_DUMPABLE_INTERNAL_LISP_OBJECT):
	* lrecord.h (DEFINE_DUMPABLE_SIZABLE_INTERNAL_LISP_OBJECT):
	* lrecord.h (DEFINE_NODUMP_LISP_OBJECT):
	* lrecord.h (DEFINE_NODUMP_GENERAL_LISP_OBJECT):
	* lrecord.h (DEFINE_NODUMP_SIZABLE_LISP_OBJECT):
	* lrecord.h (DEFINE_NODUMP_SIZABLE_GENERAL_LISP_OBJECT):
	* lrecord.h (DEFINE_NODUMP_FROB_BLOCK_LISP_OBJECT):
	* lrecord.h (DEFINE_NODUMP_FROB_BLOCK_GENERAL_LISP_OBJECT):
	* lrecord.h (DEFINE_NODUMP_FROB_BLOCK_SIZABLE_LISP_OBJECT):
	* lrecord.h (DEFINE_NODUMP_INTERNAL_LISP_OBJECT):
	* lrecord.h (DEFINE_NODUMP_SIZABLE_INTERNAL_LISP_OBJECT):
	* lrecord.h (MAKE_LISP_OBJECT):
	* lrecord.h (DEFINE_DUMPABLE_MODULE_LISP_OBJECT):
	* lrecord.h (DEFINE_DUMPABLE_MODULE_GENERAL_LISP_OBJECT):
	* lrecord.h (DEFINE_DUMPABLE_MODULE_SIZABLE_LISP_OBJECT):
	* lrecord.h (DEFINE_DUMPABLE_MODULE_SIZABLE_GENERAL_LISP_OBJECT):
	* lrecord.h (DEFINE_NODUMP_MODULE_LISP_OBJECT):
	* lrecord.h (DEFINE_NODUMP_MODULE_GENERAL_LISP_OBJECT):
	* lrecord.h (DEFINE_NODUMP_MODULE_SIZABLE_LISP_OBJECT):
	* lrecord.h (DEFINE_NODUMP_MODULE_SIZABLE_GENERAL_LISP_OBJECT):
	* lrecord.h (MAKE_MODULE_LISP_OBJECT):
	* lstream.c:
	* lstream.c (finalize_lstream):
	* lstream.c (disksave_lstream):
	* marker.c:
	* marker.c (finalize_marker):
	* mule-charset.c (make_charset):
	* number.c:
	* objects.c:
	* objects.c (finalize_color_instance):
	* objects.c (finalize_font_instance):
	* opaque.c:
	* opaque.c (make_opaque_ptr):
	* process-nt.c:
	* process-nt.c (nt_finalize_process_data):
	* process-nt.c (nt_deactivate_process):
	* process.c:
	* process.c (finalize_process):
	* procimpl.h (struct process_methods):
	* scrollbar.c:
	* scrollbar.c (free_scrollbar_instance):
	* specifier.c (finalize_specifier):
	* symbols.c:
	* toolbar.c:
	* toolbar.c (Ftoolbar_button_p):
	* tooltalk.c:
	* ui-gtk.c:
	* ui-gtk.c (emacs_gtk_object_finalizer):
	* ui-gtk.c (allocate_emacs_gtk_boxed_data):
	* window.c:
	* window.c (finalize_window):
	* window.c (mark_window_as_deleted):

	Separate out regular and disksave finalization.  Instead of a
	FOR_DISKSAVE argument to the finalizer, create a separate object
	method `disksaver'.  Make `finalizer' have only one argument.

	Go through and separate out all finalize methods into finalize
	and disksave.  Delete lots of thereby redundant disksave checking.
	Delete places that signal an error if we attempt to disksave --
	all of these objects are non-dumpable and we will get an error
	from pdump anyway if we attempt to dump them.  After this is done,
	only one object remains that has a disksave method -- lstream.

	Change DEFINE_*_LISP_OBJECT_WITH_PROPS to DEFINE_*_GENERAL_LISP_OBJECT,
	which is used for specifying either property methods or disksave
	methods (or in the future, any other less-used methods).
	
	Remove the for_disksave argument to finalize_process_data.  Don't
	provide a disksaver for processes because no one currently needs
	it.

	Clean up various places where objects didn't provide a print method.
	It was made mandatory in previous changes, and all methods now
	either provide their own print method or use internal_object_printer
	or external_object_printer.

	Change the definition of CONSOLE_LIVE_P to use the contype enum
	rather than looking into the conmeths structure -- in some weird
	situations with dead objects, the conmeths structure is NULL,
	and printing such objects from debug_print() will crash if we try
	to look into the conmeths structure.
	

2005-11-22  Ben Wing  <ben@xemacs.org>

	* alloc.c:
	* alloc.c (assert_proper_sizing):
	* alloc.c (alloc_sized_lrecord_1):
	* alloc.c (alloc_sized_lrecord):
	* alloc.c (noseeum_alloc_sized_lrecord):
	* alloc.c (alloc_lrecord):
	* alloc.c (old_alloc_sized_lcrecord):
	* alloc.c (make_vector_internal):
	* alloc.c (make_bit_vector_internal):
	* alloc.c (alloc_automanaged_sized_lcrecord):
	* buffer.c (allocate_buffer):
	* buffer.c (DEFVAR_BUFFER_LOCAL_1):
	* buffer.c (common_init_complex_vars_of_buffer):
	* casetab.c (allocate_case_table):
	* chartab.c (Fmake_char_table):
	* chartab.c (make_char_table_entry):
	* chartab.c (copy_char_table_entry):
	* chartab.c (Fcopy_char_table):
	* console.c (allocate_console):
	* console.c (DEFVAR_CONSOLE_LOCAL_1):
	* console.c (common_init_complex_vars_of_console):
	* data.c (make_weak_list):
	* data.c (make_weak_box):
	* data.c (make_ephemeron):
	* database.c (allocate_database):
	* device-msw.c (allocate_devmode):
	* device.c (allocate_device):
	* dialog-msw.c (handle_question_dialog_box):
	* elhash.c (make_general_lisp_hash_table):
	* elhash.c (Fcopy_hash_table):
	* emacs.c (main_1):
	* event-stream.c:
	* event-stream.c (allocate_command_builder):
	* event-stream.c (free_command_builder):
	* event-stream.c (mark_timeout):
	* event-stream.c (event_stream_generate_wakeup):
	* event-stream.c (event_stream_resignal_wakeup):
	* event-stream.c (event_stream_disable_wakeup):
	* event-stream.c (reinit_vars_of_event_stream):
	* extents.c (allocate_extent_auxiliary):
	* extents.c (allocate_extent_info):
	* extents.c (copy_extent):
	* faces.c (allocate_face):
	* file-coding.c (allocate_coding_system):
	* frame.c (allocate_frame_core):
	* glyphs.c (allocate_image_instance):
	* glyphs.c (allocate_glyph):
	* gui.c (allocate_gui_item):
	* keymap.c (make_keymap):
	* lrecord.h:
	* lrecord.h (ALLOC_LCRECORD):
	* lrecord.h (ALLOC_SIZED_LCRECORD):
	* lrecord.h (struct old_lcrecord_header):
	* lrecord.h (old_alloc_lcrecord_type):
	* lrecord.h (alloc_lrecord_type):
	* lrecord.h (noseeum_alloc_lrecord_type):
	* lstream.c (Lstream_new):
	* mule-charset.c (make_charset):
	* objects.c (Fmake_color_instance):
	* objects.c (Fmake_font_instance):
	* objects.c (reinit_vars_of_objects):
	* opaque.c (make_opaque):
	* opaque.c (make_opaque_ptr):
	* process.c (make_process_internal):
	* rangetab.c (Fmake_range_table):
	* rangetab.c (Fcopy_range_table):
	* scrollbar.c (create_scrollbar_instance):
	* specifier.c (make_specifier_internal):
	* symbols.c (Fdefvaralias):
	* toolbar.c (update_toolbar_button):
	* tooltalk.c (make_tooltalk_message):
	* tooltalk.c (make_tooltalk_pattern):
	* ui-gtk.c (allocate_ffi_data):
	* ui-gtk.c (allocate_emacs_gtk_object_data):
	* ui-gtk.c (allocate_emacs_gtk_boxed_data):
	* window.c (allocate_window):
	* window.c (new_window_mirror):
	* window.c (make_dummy_parent):
	Create a simpler interface for allocating/declaring Lisp objects;
	documented in lrecord.h.

	ALLOC_LCRECORD_TYPE -> ALLOC_LISP_OBJECT (returns a Lisp object
	                                          rather than a pointer),
	BASIC_ALLOC_LCRECORD -> ALLOC_SIZED_LISP_OBJECT
	DEFINE_LRECORD_IMPLEMENTATION -> DEFINE_*_LISP_OBJECT
	DEFINE_LRECORD_SEQUENCE_IMPLEMENTATION -> DEFINE_*SIZABLE_*LISP_OBJECT
	DEFINE_LRECORD_*IMPLEMENTATION_WITH_PROPS -> DEFINE_*GENERAL_LISP_OBJECT
	DEFINE_BASIC_LRECORD_IMPLEMENTATION -> DEFINE_*FROB_BLOCK_LISP_OBJECT
	DEFINE_DUMPABLE_*/DEFINE_NODUMP_* instead of a 0 or 1 dumpable flag
	DEFINE_*INTERNAL_* for "internal" Lisp objects (shouldn't escape
							to Lisp)
	DEFINE_EXTERNAL_* -> DEFINE_MODULE_*
	MAKE_LRECORD_IMPLEMENTATION -> MAKE_LISP_OBJECT
	MAKE_EXTERNAL_LRECORD_IMPLEMENTATION -> MAKE_MODULE_LISP_OBJECT
	DECLARE_LRECORD -> DECLARE_LISP_OBJECT
	INIT_LRECORD_IMPLEMENTATION -> INIT_LISP_OBJECT
	alloc_lrecord -> alloc_sized_lrecord (since it takes a size)
	
	Dynarr_newf, Dynarr_lisp_newf: takes a Bytecount instead of an int

2010-03-05  Ben Wing  <ben@xemacs.org>

	* mule-coding.c:
	* mule-coding.c (iso2022_encode):
	Horrible bug: `escape-quoted' was failing to escape-quote special
	characters in the 0x80 - 0x9F range.  Who knows what breakage ensued?
	SAME BUG IN XEMACS 21.4; MUST BE FIXED THERE TOO.

2010-03-03  Ben Wing  <ben@xemacs.org>

	* lrecord.h: Fix outdated comment.

2010-03-03  Ben Wing  <ben@xemacs.org>

	* emacs.c:
	* emacs.c (assert_equal_failed):
	* lisp.h:
	* lisp.h (assert_equal):
	New fun assert_equal, asserting that two values == each other, and
	printing out both values upon failure.
	
	* frame-gtk.c (gtk_initialize_frame_size):
	* frame-impl.h:
	* frame-impl.h (FRAME_TOP_INTERNAL_BORDER_START):
	* frame-impl.h (FRAME_BOTTOM_INTERNAL_BORDER_START):
	* frame-impl.h (FRAME_LEFT_INTERNAL_BORDER_START):
	* frame-impl.h (FRAME_PANED_TOP_EDGE):
	* frame-impl.h (FRAME_NONPANED_SIZE):
	* frame-x.c (x_initialize_frame_size):
	* frame.c:
	* gutter.c (get_gutter_coords):
	* gutter.c (calculate_gutter_size):
	* gutter.h:
	* gutter.h (WINDOW_REAL_TOP_GUTTER_BOUNDS):
	* gutter.h (FRAME_TOP_GUTTER_BOUNDS):
	* input-method-xlib.c:
	* input-method-xlib.c (XIM_SetGeometry):
	* redisplay-output.c (clear_left_border):
	* redisplay-output.c (clear_right_border):
	* redisplay-output.c (redisplay_output_pixmap):
	* redisplay-output.c (redisplay_clear_region):
	* redisplay-output.c (redisplay_clear_top_of_window):
	* redisplay-output.c (redisplay_clear_to_window_end):
	* redisplay-xlike-inc.c (XLIKE_clear_frame):
	* redisplay.c:
	* redisplay.c (UPDATE_CACHE_RETURN):
	* redisplay.c (pixel_to_glyph_translation):
	* toolbar.c (update_frame_toolbars_geometry):
	* window.c (Fwindow_pixel_edges):
	Get rid of some redundant macros.  Consistently use the
	FRAME_TOP_*_START, FRAME_RIGHT_*_END, etc. format.  Rename
	FRAME_*_BORDER_* to FRAME_*_INTERNAL_BORDER_*. Comment out
	FRAME_BOTTOM_* for gutters and the paned area due to the
	uncertainty over where the paned area actually begins. (Eventually
	we should probably move the gutters outside the minibuffer so that
	the paned area is contiguous.) Use FRAME_PANED_* more often in the
	code to make things clearer.

	Update the diagram to show that the bottom gutter is inside the
	minibuffer (!) and that there are "junk boxes" when you have left
	and/or right gutters (dead boxes that are mistakenly left uncleared,
	unlike the corresponding scrollbar dead boxes).  Update the text
	appropriately to cover the bottom gutter position, etc.

	Rewrite gutter-geometry code to use the FRAME_*_GUTTER_* in place of
	equivalent expressions referencing other frame elements, to make the
	code more portable in case we move around the gutter location.

	Cleanup FRAME_*_GUTTER_BOUNDS() in gutter.h.

	Add some #### GEOM! comments where I think code is incorrect --
	typically, it wasn't fixed up properly when the gutter was added.

	Some cosmetic changes.
	
2010-03-02  Ben Wing  <ben@xemacs.org>

	* lisp.h:
	* text.h:
	Move inclusion point of text.h earlier in lisp.h -- just before
	the definition of characters, which needs some of the stuff in
	text.h.  With text.h later, some basic character properties had to
	be defined in lisp.h -- put them back into text.h where they belong.
	Move some text in lisp.h at the point of text.h inclusion into
	text.h -- it serves as a mini-introduction.

2010-03-02  Ben Wing  <ben@xemacs.org>

	* Makefile.in.in:
	* Makefile.in.in (objs):
	glyphs-shared.o, glyphs-eimage.o only needed when HAVE_WINDOW_SYSTEM.
	glyphs-widget.o should be too, but we need a bit of work ifdeffing
	out the subwindow stuff from redisplay.c et al.
	
	* bytecode.c (init_opcode_table_multi_op):
	Change var name to avoid shadowing with `basename'.
	
	* emacs.c (main_1):
	Don't call init/etc. routines for glyphs-shared, glyphs-eimage unless
	HAVE_WINDOW_SYSTEM is defined.
	
	* linuxplay.c:
	* linuxplay.c (sighandler):
	* vdb-posix.c (vdb_fault_handler):
	Use const for variables holding string constants to avoid C++
	warnings.

2010-03-02  Jerry James  <james@xemacs.org>

	* lread.c (read_atom): Signal a read error upon encountering a
	ratio constant with a zero denominator.

2010-03-03  Aidan Kehoe  <kehoea@parhasard.net>

	* fns.c (Fsubstring): Removed.
	* search.c (Freplace_match):
	* minibuf.c (Ftry_completion):
	* lisp.h:
	* keymap.c (ensure_meta_prefix_char_keymapp):
	* dired.c (user_name_completion, file_name_completion):
	* console-x.c (x_canonicalize_console_connection):
	* bytecode.c (Bsubseq):
	* bytecode-ops.h (subseq):
	Move #'substring to Lisp, as an alias for #'subseq; change all
	C Fsubstring() calls to Fsubseq(), change the Bsubstring bytecode
	to Bsubseq.

	Motivation; not accepting vectors in #'substring is incompatible
	with GNU, and Common Lisp prefers #'subseq, it has no #'substring.

2010-03-02  Aidan Kehoe  <kehoea@parhasard.net>

	* eval.c (print_multiple_value):
	Say #<INTERNAL OBJECT (XEmacs bug?) ...> when printing these, for
	consistency with the rest of the print code.

2010-03-01  Aidan Kehoe  <kehoea@parhasard.net>

	* lisp.h (PARSE_KEYWORDS): New macro, for parsing keyword
	arguments from C subrs.
	* elhash.c (Fmake_hash_table): Use it.
	* general-slots.h (Q_allow_other_keys): Add this symbol.
	* eval.c (non_nil_allow_other_keys_p):
	(invalid_keyword_argument):
	New functions, called from the keyword argument parsing code.
	* data.c (init_errors_once_early):
	Add the new invalid-keyword-argument error here.

2010-02-26  Aidan Kehoe  <kehoea@parhasard.net>

	* file-coding.c (Fmake_coding_system_internal):
	Be somewhat clearer in this docstring, especially for the sake of
	people running non-Mule builds who will see this docstring when
	they do F1 f make-coding-system RET.

2010-02-25  Didier Verna  <didier@xemacs.org>

	The background-placement face property.
	* console-x-impl.h (struct x_frame): Add new slots x and y.
	* console-x-impl.h (FRAME_X_X, FRAME_X_Y): New slot accessors.
	* console-gtk-impl.h: Fake something similar for potential port.
	* frame-x.c (x_get_frame_text_position): New function.
	* frame-x.c (x_init_frame_3): Use it.
	* event-Xt.c (emacs_Xt_handle_magic_event): Eat spurious
	ConfigureNotify events, get the frame position and mark frame
	faces changed.
	* objects-impl.h: The face_background_placement_specifier
	structure and its accessors.
	* objects.c: New symbols Qabsolute and Qrelative.
	* objects.c (face_background_placement_create):
	* objects.c (face_background_placement_mark):
	* objects.c (face_background_placement_instantiate):
	* objects.c (face_background_placement_validate):
	* objects.c (face_background_placement_after_change):
	* objects.c (set_face_background_placement_attached_to): New.
	* objects.h (set_face_background_palcement_attached_to): Declare
	the one above.
	* objects.c (syms_of_objects):
	* objects.c (specifier_type_create_objects):
	* objects.c (reinit_specifier_type_create_objects):
	* objects.c (reinit_vars_of_objects): Update for the modifications
	above.
	* console-xlike-inc.h (XLIKE_GC_TS_X_ORIGIN, XLIKE_GC_TS_X_ORIGIN): 
	New X11/Gtk compatibility macros.
	* redisplay-xlike-inc.c (XLIKE_get_gc): Add a background placement
	argument and handle it.
	* gtk-glue.c (face_to_gc):
	* redisplay-xlike-inc.c (XLIKE_output_string):
	* redisplay-xlike-inc.c (XLIKE_output_pixmap):
	* redisplay-xlike-inc.c (XLIKE_output_blank):
	* redisplay-xlike-inc.c (XLIKE_output_horizontal_line):
	* redisplay-xlike-inc.c (XLIKE_output_eol_cursor): Update
	accordingly.
	* console-impl.h (struct console_methods): Add a background
	placement (Lisp_Object) argument to the clear_region method.
	* console-stream.c (stream_clear_region):
	* redisplay-tty.c (tty_clear_region):
	* redisplay-msw.c (mswindows_clear_region):
	* redisplay-xlike-inc.c (XLIKE_clear_region): Update accordingly.
	* redisplay-output.c (redisplay_clear_region): Handle the
	background placement property and update the call to the
	clear_region method.
	* faces.h (struct Lisp_Face):
	* faces.h (struct face_cachel): Add a background placement slot.
	* faces.h (WINDOW_FACE_CACHEL_BACKGROUND_PLACEMENT): New accessor.
	* faces.c (mark_face):
	* faces.c (face_equal):
	* faces.c (face_getprop):
	* faces.c (face_putprop):
	* faces.c (face_remprop):
	* faces.c (face_plist):
	* faces.c (reset_face):
	* faces.c (mark_face_cachels):
	* faces.c (update_face_cachel_data):
	* faces.c (merge_face_cachel_data):
	* faces.c (reset_face_cachel):
	* faces.c (Fmake_face):
	* faces.c (Fcopy_face): Handle the background placement property.
	* faces.c (syms_of_faces):
	* faces.c (vars_of_faces):
	* faces.c (complex_vars_of_faces): Update accordingly.

2010-02-25  Ben Wing  <ben@xemacs.org>

	* frame-impl.h:
	Create some new macros for more clearly getting the size/edges
	of various rectangles surrounding the paned area.
	* frame.c (change_frame_size_1):
	Use the new macros.  Clean up change_frame_size_1 and make sure
	the internal border width gets taken into account -- that was what
	was causing the clipped bottom and right.

2010-02-25  Ben Wing  <ben@xemacs.org>

	* EmacsFrame.c (EmacsFrameSetValues):
	* frame-impl.h:
	* frame-impl.h (struct frame):
	* frame-impl.h (FRAME_THEORETICAL_TOP_TOOLBAR_HEIGHT):
	* frame-impl.h (FRAME_THEORETICAL_TOP_TOOLBAR_BORDER_WIDTH):
	* frame-impl.h (FRAME_REAL_TOP_TOOLBAR_HEIGHT):
	* frame-impl.h (FRAME_REAL_TOP_TOOLBAR_BORDER_WIDTH):
	* frame-impl.h (FRAME_REAL_TOP_TOOLBAR_VISIBLE):
	* frame-impl.h (FRAME_REAL_TOP_TOOLBAR_BOUNDS):
	* frame.h:
	* frame.h (enum edge_pos):
	* gutter.c:
	* gutter.c (get_gutter_coords):
	* gutter.c (display_boxes_in_gutter_p):
	* gutter.c (construct_window_gutter_spec):
	* gutter.c (calculate_gutter_size_from_display_lines):
	* gutter.c (calculate_gutter_size):
	* gutter.c (output_gutter):
	* gutter.c (clear_gutter):
	* gutter.c (mark_gutters):
	* gutter.c (gutter_extent_signal_changed_region_maybe):
	* gutter.c (update_gutter_geometry):
	* gutter.c (update_frame_gutter_geometry):
	* gutter.c (update_frame_gutters):
	* gutter.c (reset_gutter_display_lines):
	* gutter.c (redraw_exposed_gutter):
	* gutter.c (redraw_exposed_gutters):
	* gutter.c (free_frame_gutters):
	* gutter.c (decode_gutter_position):
	* gutter.c (Fset_default_gutter_position):
	* gutter.c (Fgutter_pixel_width):
	* gutter.c (Fgutter_pixel_height):
	* gutter.c (recompute_overlaying_specifier):
	* gutter.c (gutter_specs_changed_1):
	* gutter.c (gutter_specs_changed):
	* gutter.c (top_gutter_specs_changed):
	* gutter.c (bottom_gutter_specs_changed):
	* gutter.c (left_gutter_specs_changed):
	* gutter.c (right_gutter_specs_changed):
	* gutter.c (gutter_geometry_changed_in_window):
	* gutter.c (init_frame_gutters):
	* gutter.c (specifier_vars_of_gutter):
	* gutter.h:
	* gutter.h (WINDOW_REAL_TOP_GUTTER_BOUNDS):
	* gutter.h (FRAME_TOP_GUTTER_BOUNDS):
	* lisp.h (enum edge_style):
	* native-gtk-toolbar.c:
	* native-gtk-toolbar.c (gtk_output_toolbar):
	* native-gtk-toolbar.c (gtk_clear_toolbar):
	* native-gtk-toolbar.c (gtk_output_frame_toolbars):
	* native-gtk-toolbar.c (gtk_initialize_frame_toolbars):
	* toolbar-msw.c:
	* toolbar-msw.c (TOOLBAR_HANDLE):
	* toolbar-msw.c (allocate_toolbar_item_id):
	* toolbar-msw.c (mswindows_clear_toolbar):
	* toolbar-msw.c (mswindows_output_toolbar):
	* toolbar-msw.c (mswindows_move_toolbar):
	* toolbar-msw.c (mswindows_redraw_exposed_toolbars):
	* toolbar-msw.c (mswindows_initialize_frame_toolbars):
	* toolbar-msw.c (mswindows_output_frame_toolbars):
	* toolbar-msw.c (mswindows_clear_frame_toolbars):
	* toolbar-msw.c (DELETE_TOOLBAR):
	* toolbar-msw.c (mswindows_free_frame_toolbars):
	* toolbar-msw.c (mswindows_get_toolbar_button_text):
	* toolbar-xlike.c:
	* toolbar-xlike.c (__prepare_button_area):
	* toolbar-xlike.c (XLIKE_OUTPUT_BUTTONS_LOOP):
	* toolbar-xlike.c (xlike_output_toolbar):
	* toolbar-xlike.c (xlike_clear_toolbar):
	* toolbar-xlike.c (xlike_output_frame_toolbars):
	* toolbar-xlike.c (xlike_clear_frame_toolbars):
	* toolbar-xlike.c (xlike_redraw_exposed_toolbar):
	* toolbar-xlike.c (xlike_redraw_exposed_toolbars):
	* toolbar-xlike.c (xlike_redraw_frame_toolbars):
	* toolbar.c:
	* toolbar.c (decode_toolbar_position):
	* toolbar.c (Fset_default_toolbar_position):
	* toolbar.c (mark_frame_toolbar_buttons_dirty):
	* toolbar.c (compute_frame_toolbar_buttons):
	* toolbar.c (set_frame_toolbar):
	* toolbar.c (compute_frame_toolbars_data):
	* toolbar.c (update_frame_toolbars_geometry):
	* toolbar.c (init_frame_toolbars):
	* toolbar.c (get_toolbar_coords):
	* toolbar.c (CHECK_TOOLBAR):
	* toolbar.c (toolbar_buttons_at_pixpos):
	* toolbar.c (CTB_ERROR):
	* toolbar.c (recompute_overlaying_specifier):
	* toolbar.c (specifier_vars_of_toolbar):
	* toolbar.h:
	* toolbar.h (SET_TOOLBAR_WAS_VISIBLE_FLAG):
	Create new enum edge_pos with TOP_EDGE, BOTTOM_EDGE, LEFT_EDGE,
	RIGHT_EDGE; subsume TOP_BORDER, TOP_GUTTER, enum toolbar_pos,
	enum gutter_pos, etc.

	Create EDGE_POS_LOOP, subsuming GUTTER_POS_LOOP.

	Create NUM_EDGES, use in many places instead of hardcoded '4'.

	Instead of top_toolbar_was_visible, bottom_toolbar_was_visible,
	etc. make an array toolbar_was_visible[NUM_EDGES].  This increases
	the frame size by 15 bytes or so (could be 3 if we use Boolbytes)
	but hardly seems w to matter -- frames are heavy weight objects
	anyway.  Same with top_gutter_was_visible, etc.
	
	Remove duplicated SET_TOOLBAR_WAS_VISIBLE_FLAG and put defn in
	one place (toolbar.h).

2010-02-24  Didier Verna  <didier@xemacs.org>

	Modify XLIKE_get_gc's prototype.
	* redisplay-xlike-inc.c (XLIKE_get_gc): Take a frame instead of a
	device as first argument.
	* redisplay-xlike-inc.c (XLIKE_output_string): Update caller.
	* redisplay-xlike-inc.c (XLIKE_output_pixmap): Ditto.
	* redisplay-xlike-inc.c (XLIKE_output_blank): Ditto.
	* redisplay-xlike-inc.c (XLIKE_output_horizontal_line): Ditto.
	* redisplay-xlike-inc.c (XLIKE_clear_region): Ditto.
	* redisplay-xlike-inc.c (XLIKE_output_eol_cursor): Ditto.
	* console-gtk.h (gtk_get_gc):  Take a frame instead of a device as
	first argument.
	* gtk-glue.c (face_to_gc): Update caller.

2010-02-24  Didier Verna  <didier@xemacs.org>

	* glyphs.c: Clarify comment about potential_pixmap_file_instantiator.
	* glyphs.c (xbm_mask_file_munging): Clarify comment, remove
	unreachable condition and provide a cuple of assertions.
	* glyphs.c (xbm_normalize): Clarify comments, error on mask file
	not found.
	* glyphs.c (xface_normalize): Ditto, and handle inline data properly.

2010-02-22  Ben Wing  <ben@xemacs.org>

	* EmacsFrame.c:
	* Makefile.in.in (x_objs):
	* Makefile.in.in (mswindows_objs):
	* Makefile.in.in (tty_objs):
	* Makefile.in.in (gtk_objs):
	* Makefile.in.in (objs):
	* console-tty.h:
	* console-x-impl.h:
	* console-x-impl.h (struct x_device):
	* console-x.h:
	* console-xlike-inc.h:
	* depend:
	* device-gtk.c:
	* device-msw.c:
	* device-x.c:
	* device-x.c (x_init_device):
	* device-x.c (x_finish_init_device):
	* device.c:
	* devslots.h (MARKED_SLOT):
	* emacs.c (main_1):
	* event-Xt.c:
	* event-gtk.c:
	* event-msw.c:
	* faces.c:
	* font-mgr.c:
	* fontcolor-gtk-impl.h:
	* fontcolor-gtk.c:
	* fontcolor-gtk.c (syms_of_fontcolor_gtk):
	* fontcolor-gtk.c (console_type_create_fontcolor_gtk):
	* fontcolor-gtk.c (vars_of_fontcolor_gtk):
	* fontcolor-gtk.h:
	* fontcolor-impl.h:
	* fontcolor-msw-impl.h:
	* fontcolor-msw.c:
	* fontcolor-msw.c (syms_of_fontcolor_mswindows):
	* fontcolor-msw.c (console_type_create_fontcolor_mswindows):
	* fontcolor-msw.c (reinit_vars_of_fontcolor_mswindows):
	* fontcolor-msw.c (vars_of_fontcolor_mswindows):
	* fontcolor-msw.h:
	* fontcolor-msw.h (mswindows_color_to_string):
	* fontcolor-tty-impl.h:
	* fontcolor-tty.c:
	* fontcolor-tty.c (syms_of_fontcolor_tty):
	* fontcolor-tty.c (console_type_create_fontcolor_tty):
	* fontcolor-tty.c (vars_of_fontcolor_tty):
	* fontcolor-tty.h:
	* fontcolor-x-impl.h:
	* fontcolor-x.c:
	* fontcolor-x.c (syms_of_fontcolor_x):
	* fontcolor-x.c (console_type_create_fontcolor_x):
	* fontcolor-x.c (vars_of_fontcolor_x):
	* fontcolor-x.c (Xatoms_of_fontcolor_x):
	* fontcolor-x.h:
	* fontcolor.c:
	* fontcolor.c (syms_of_fontcolor):
	* fontcolor.c (specifier_type_create_fontcolor):
	* fontcolor.c (reinit_specifier_type_create_fontcolor):
	* fontcolor.c (reinit_vars_of_fontcolor):
	* fontcolor.c (vars_of_fontcolor):
	* fontcolor.h:
	* fontcolor.h (set_face_boolean_attached_to):
	* frame-gtk.c:
	* frame-x.c:
	* glyphs-eimage.c:
	* glyphs-gtk.c:
	* glyphs-msw.c:
	* glyphs-widget.c:
	* glyphs-x.c:
	* glyphs.c:
	* gtk-glue.c:
	* gtk-glue.c (xemacs_type_register):
	* gtk-xemacs.c:
	* inline.c:
	* intl-win32.c:
	* lisp.h:
	* lrecord.h:
	* mule-charset.c:
	* native-gtk-toolbar.c:
	* redisplay-msw.c:
	* redisplay-tty.c:
	* redisplay.c:
	* select-x.c:
	* select.c:
	* symsinit.h:
	* toolbar-msw.c:
	* toolbar-msw.c (TOOLBAR_ITEM_ID_BITS):
	* toolbar-x.c:
	* ui-gtk.c:
	* window.c:
	Rename objects*.[ch] -> fontcolor*.[ch].  Fix up all references to
	the old files (e.g. in #include statements, Makefiles,
	functions like syms_of_objects_x(), etc.).

2010-02-22  Ben Wing  <ben@xemacs.org>

	* .gdbinit.in.in:
	* Makefile.in.in (batch_test_emacs):
	test-harness.el is in lisp directory now so change how we call it.

2010-02-22  Ben Wing  <ben@xemacs.org>

	* alloc.c (object_memory_usage_stats):
	Remove unused var.

2010-02-21  Ben Wing  <ben@xemacs.org>

	* alloc.c:
	* alloc.c (FREE_FIXED_TYPE_WHEN_NOT_IN_GC):
	* alloc.c (struct):
	* alloc.c (tick_lrecord_stats):
	* alloc.c (tick_lcrecord_stats):
	* alloc.c (sweep_lcrecords_1):
	* alloc.c (COUNT_FROB_BLOCK_USAGE):
	* alloc.c (SWEEP_FIXED_TYPE_BLOCK_1):
	* alloc.c (free_cons):
	* alloc.c (free_key_data):
	* alloc.c (free_button_data):
	* alloc.c (free_motion_data):
	* alloc.c (free_process_data):
	* alloc.c (free_timeout_data):
	* alloc.c (free_magic_data):
	* alloc.c (free_magic_eval_data):
	* alloc.c (free_eval_data):
	* alloc.c (free_misc_user_data):
	* alloc.c (free_marker):
	* alloc.c (gc_sweep_1):
	* alloc.c (HACK_O_MATIC):
	* alloc.c (FROB):
	* alloc.c (object_memory_usage_stats):
	* alloc.c (Fgarbage_collect):
	* dumper.c:
	* dumper.c (pdump_objects_unmark):
	* lrecord.h:
	* lrecord.h (enum lrecord_alloc_status):
	Fixes to memory-usage-tracking code, etc.

	(1) Incorporate NEW_GC stuff into FREE_FIXED_TYPE_WHEN_NOT_IN_GC
	to avoid duplication.

	(2) Rewrite tick_lcrecord_stats() to include separate
	tick_lrecord_stats(); use in dumper.c to note pdumped objects.

	(3) Instead of handling frob-block objects specially in
	object_memory_usage_stats(), have SWEEP_FIXED_TYPE_BLOCK_1
	increment the stats in lrecord_stats[] so that they get handled
	like other objects.

	(4) Pluralize entry as entries, etc.

2010-02-21  Ben Wing  <ben@xemacs.org>

	* alloc.c:
	* alloc.c (pluralize_word):
	New function to pluralize a word.
	* alloc.c (pluralize_and_append): New function.
	* alloc.c (object_memory_usage_stats):
	Clean up duplication.

2010-02-21  Vin Shelton  <acs@xemacs.org>

	* events.c (event_pixel_translation): Simplify assertion for
	Visual C 6.

2010-02-21  Ben Wing  <ben@xemacs.org>

	* gc.c (kkcc_marking): Fix compile error.
	* mc-alloc.c:
	#if 0 out some unused functions.

2010-02-21  Ben Wing  <ben@xemacs.org>

	* extents.c (process_extents_for_insertion_mapper):
	Assertion wasn't quite set up correctly in previous patch.

2010-02-20  Ben Wing  <ben@xemacs.org>

	* EmacsFrame.c:
	* EmacsFrame.c (EmacsFrameRecomputeCellSize):
	* alloca.c (i00afunc):
	* buffer.c:
	* buffer.c (MARKED_SLOT):
	* buffer.c (complex_vars_of_buffer):
	* cm.c:
	* cm.c (cmcheckmagic):
	* console.c:
	* console.c (MARKED_SLOT):
	* device-x.c:
	* device-x.c (x_get_visual_depth):
	* emacs.c (sort_args):
	* eval.c (throw_or_bomb_out):
	* event-stream.c:
	* event-stream.c (Fadd_timeout):
	* event-stream.c (Fadd_async_timeout):
	* event-stream.c (Frecent_keys):
	* events.c:
	* events.c (Fdeallocate_event):
	* events.c (event_pixel_translation):
	* extents.c:
	* extents.c (process_extents_for_insertion_mapper):
	* fns.c (Fbase64_encode_region):
	* fns.c (Fbase64_encode_string):
	* fns.c (Fbase64_decode_region):
	* fns.c (Fbase64_decode_string):
	* font-lock.c:
	* font-lock.c (find_context):
	* frame-x.c:
	* frame-x.c (x_wm_mark_shell_size_user_specified):
	* frame-x.c (x_wm_mark_shell_position_user_specified):
	* frame-x.c (x_wm_set_shell_iconic_p):
	* frame-x.c (x_wm_set_cell_size):
	* frame-x.c (x_wm_set_variable_size):
	* frame-x.c (x_wm_store_class_hints):
	* frame-x.c (x_wm_maybe_store_wm_command):
	* frame-x.c (x_initialize_frame_size):
	* frame.c (delete_frame_internal):
	* frame.c (change_frame_size_1):
	* free-hook.c (check_free):
	* free-hook.c (note_block_input):
	* free-hook.c (log_gcpro):
	* gccache-gtk.c (gc_cache_lookup):
	* gccache-x.c:
	* gccache-x.c (gc_cache_lookup):
	* glyphs-gtk.c:
	* glyphs-gtk.c (init_image_instance_from_gdk_pixmap):
	* glyphs-x.c:
	* glyphs-x.c (extract_xpm_color_names):
	* insdel.c:
	* insdel.c (move_gap):
	* keymap.c:
	* keymap.c (keymap_lookup_directly):
	* keymap.c (keymap_delete_inverse_internal):
	* keymap.c (accessible_keymaps_mapper_1):
	* keymap.c (where_is_recursive_mapper):
	* lisp.h:
	* lstream.c (make_lisp_buffer_stream_1):
	* macros.c:
	* macros.c (pop_kbd_macro_event):
	* mc-alloc.c (remove_page_from_used_list):
	* menubar-x.c:
	* menubar-x.c (set_frame_menubar):
	* ralloc.c:
	* ralloc.c (obtain):
	* ralloc.c (relinquish):
	* ralloc.c (relocate_blocs):
	* ralloc.c (resize_bloc):
	* ralloc.c (r_alloc_free):
	* ralloc.c (r_re_alloc):
	* ralloc.c (r_alloc_thaw):
	* ralloc.c (init_ralloc):
	* ralloc.c (Free_Addr_Block):
	* scrollbar-x.c:
	* scrollbar-x.c (x_update_scrollbar_instance_status):
	* sunplay.c (init_device):
	* unexnt.c:
	* unexnt.c (read_in_bss):
	* unexnt.c (map_in_heap):
	* window.c:
	* window.c (real_window):
	* window.c (window_display_lines):
	* window.c (window_display_buffer):
	* window.c (set_window_display_buffer):
	* window.c (unshow_buffer):
	* window.c (Fget_lru_window):
	if (...) ABORT(); ---> assert();

	More specifically:

	if (x == y) ABORT (); --> assert (x != y);
	if (x != y) ABORT (); --> assert (x == y);
	if (x > y) ABORT (); --> assert (x <= y);
	etc.
	if (!x) ABORT (); --> assert (x);
	if (x) ABORT (); --> assert (!x);

	DeMorgan's Law's applied and manually simplified:
	if (x && !y) ABORT (); --> assert (!x || y);
	if (!x || y >= z) ABORT (); --> assert (x && y < z); 

	Checked to make sure that assert() of an expression with side
	effects ensures that the side effects get executed even when
	asserts are disabled, and add a comment about this being a
	requirement of any "disabled assert" expression.

	* depend:
	* make-src-depend:
	* make-src-depend (PrintDeps):
	Fix broken code in make-src-depend so it does what it was always
	supposed to do, which was separate out config.h and lisp.h and
	all the files they include into separate variables in the
	depend part of Makefile so that quick-build can turn off the
	lisp.h/config.h/text.h/etc. dependencies of the source files, to
	speed up recompilation.


2010-02-20  Ben Wing  <ben@xemacs.org>

	* EmacsFrame.c (EmacsFrameRecomputeCellSize):
	* faces.c (default_face_font_info):
	* faces.c (default_face_width_and_height):
	* faces.c (Fface_list):
	* faces.h:
	* frame-gtk.c (gtk_set_initial_frame_size):
	* frame-gtk.c (gtk_set_frame_size):
	* frame-gtk.c (gtk_recompute_cell_sizes):
	* frame.c:
	* frame.c (frame_conversion_internal_1):
	* frame.c (change_frame_size_1):
	* frame.c (change_frame_size):
	* glyphs-msw.c (mswindows_combo_box_instantiate):
	* glyphs-widget.c (widget_instantiate):
	* glyphs-widget.c (tree_view_query_geometry):
	* glyphs-widget.c (Fwidget_logical_to_character_width):
	* glyphs-widget.c (Fwidget_logical_to_character_height):
	* indent.c (vmotion_pixels):
	* redisplay-output.c (get_cursor_size_and_location):
	* redisplay-xlike-inc.c (XLIKE_output_eol_cursor):
	* redisplay-xlike-inc.c (XLIKE_flash):
	* redisplay.c (calculate_baseline):
	* redisplay.c (start_with_point_on_display_line):
	* redisplay.c (glyph_to_pixel_translation):
	* redisplay.c (pixel_to_glyph_translation):
	* window.c (margin_width_internal):
	* window.c (frame_size_valid_p):
	* window.c (frame_pixsize_valid_p):
	* window.c (check_frame_size):
	* window.c (set_window_pixsize):
	* window.c (window_pixel_height_to_char_height):
	* window.c (window_char_height_to_pixel_height):
	* window.c (window_displayed_height):
	* window.c (window_pixel_width_to_char_width):
	* window.c (window_char_width_to_pixel_width):
	* window.c (change_window_height):
	* window.c (window_scroll):
	* window.h:
	IMPORTANT: Aidan and Carbon Repo, please pay attention and fix
	appropriately!
	
	Rename: default_face_height_and_width -> default_face_width_and_height
	and reverse width/height arguments.

	Reverse width/height arguments to the following functions:
	-- default_face_font_info
	-- default_face_height_and_width (see above)
	-- check_frame_size
	-- frame_size_valid_p (made into a static function)

	Fix a redisplay bug where args to default_face_height_and_width
	were in the wrong order.
	

2010-02-20  Ben Wing  <ben@xemacs.org>

	* syswindows.h:
	Add table about GNU Emacs -> XEmacs Windows constants from
	the internals manual.

	* frame.c:
	Shrink size of diagram consistent with internals manual.
	
	* alloc.c:
	* compiler.h:
	* console.c:
	* events.c:
	* gc.c (gc_stat_start_new_gc):
	* gc.c (gc_stat_resume_gc):
	* gc.c (kkcc_marking):
	* gc.c (gc_1):
	* gc.c (gc):
	* objects-tty.c:
	* redisplay-msw.c:
	* redisplay-msw.c (mswindows_clear_region):
	* syntax.c:
	* syntax.c (ST_COMMENT_STYLE):
	* sysdep.c:
	Fix various compiler warnings.

2010-02-16  Ben Wing  <ben@xemacs.org>

	* frame-impl.h:
	* frame-impl.h (FRAME_INTERNAL_BORDER_WIDTH):
	* frame-impl.h (FRAME_REAL_TOOLBAR_BOUNDS):
	* frame-impl.h (FRAME_REAL_TOP_TOOLBAR_BOUNDS):
	* frame-impl.h (FRAME_BOTTOM_BORDER_START):
	* frame-impl.h (FRAME_LEFT_BORDER_START):
	* frame-impl.h (FRAME_RIGHT_BORDER_START):
	* frame.c (frame_conversion_internal_1):
	* frame.c (change_frame_size_1):
	* redisplay-output.c (clear_left_border):
	* redisplay-output.c (clear_right_border):
	* redisplay-output.c (redisplay_clear_top_of_window):
	* redisplay-output.c (redisplay_clear_to_window_end):
	* redisplay-output.c (redisplay_clear_bottom_of_window):
	Rename FRAME_BORDER_* to FRAME_INTERNAL_BORDER_*.  Add
	general FRAME_INTERNAL_BORDER_SIZE().  Add FRAME_REAL_TOOLBAR_BOUNDS()
	to encompass the entire size of the toolbar including its border.
	Add specific top/left/bottom/right versions of this macro.
	Rewrite FRAME_*_BORDER_START and FRAME_*_BORDER_END to take into use
	FRAME_REAL_*_TOOLBAR_BOUNDS().  Add some comments about existing
	problems in frame sizing and how they might be fixed.  Simplify
	change_frame_size_1() using the macros just created.

2010-02-15  Ben Wing  <ben@xemacs.org>

	* frame.c (change_frame_size_1):
	Simplify the logic in this function.

	(1) Don't allow 0 as the value of height or width.  The old code
	that tried to allow this was totally broken, anyway, so obviously
	this never happens any more.

	(2) Don't duplicate the code in frame_conversion_internal() that
	converts displayable pixel size to total pixel size -- just call
	that function.

2010-02-15  Ben Wing  <ben@xemacs.org>

	* EmacsFrame.c:
	* EmacsFrame.c (EmacsFrameResize):
	* console-msw-impl.h:
	* console-msw-impl.h (struct mswindows_frame):
	* console-msw-impl.h (FRAME_MSWINDOWS_TARGET_RECT):
	* device-tty.c:
	* device-tty.c (tty_asynch_device_change):
	* event-msw.c:
	* event-msw.c (mswindows_wnd_proc):
	* faces.c (Fface_list):
	* faces.h:
	* frame-gtk.c:
	* frame-gtk.c (gtk_set_initial_frame_size):
	* frame-gtk.c (gtk_set_frame_size):
	* frame-msw.c:
	* frame-msw.c (mswindows_init_frame_1):
	* frame-msw.c (mswindows_set_frame_size):
	* frame-msw.c (mswindows_size_frame_internal):
	* frame-msw.c (msprinter_init_frame_3):
	* frame.c:
	* frame.c (enum):
	* frame.c (Fmake_frame):
	* frame.c (adjust_frame_size):
	* frame.c (store_minibuf_frame_prop):
	* frame.c (Fframe_property):
	* frame.c (Fframe_properties):
	* frame.c (Fframe_displayable_pixel_height):
	* frame.c (Fframe_displayable_pixel_width):
	* frame.c (internal_set_frame_size):
	* frame.c (Fset_frame_height):
	* frame.c (Fset_frame_pixel_height):
	* frame.c (Fset_frame_displayable_pixel_height):
	* frame.c (Fset_frame_width):
	* frame.c (Fset_frame_pixel_width):
	* frame.c (Fset_frame_displayable_pixel_width):
	* frame.c (Fset_frame_size):
	* frame.c (Fset_frame_pixel_size):
	* frame.c (Fset_frame_displayable_pixel_size):
	* frame.c (frame_conversion_internal_1):
	* frame.c (get_frame_displayable_pixel_size):
	* frame.c (change_frame_size_1):
	* frame.c (change_frame_size):
	* frame.c (generate_title_string):
	* frame.h:
	* gtk-xemacs.c:
	* gtk-xemacs.c (gtk_xemacs_size_request):
	* gtk-xemacs.c (gtk_xemacs_size_allocate):
	* gtk-xemacs.c (gtk_xemacs_paint):
	* gutter.c:
	* gutter.c (update_gutter_geometry):
	* redisplay.c (end_hold_frame_size_changes):
	* redisplay.c (redisplay_frame):
	* toolbar.c:
	* toolbar.c (update_frame_toolbars_geometry):
	* window.c:
	* window.c (frame_pixsize_valid_p):
	* window.c (check_frame_size):
	Various fixes to frame geometry to make it a bit easier to understand
	and fix some bugs.

	1. IMPORTANT: Some renamings.  Will need to be applied carefully to
	the carbon repository, in the following order:

	-- pixel_to_char_size -> pixel_to_frame_unit_size
	-- char_to_pixel_size -> frame_unit_to_pixel_size
	-- pixel_to_real_char_size -> pixel_to_char_size
	-- char_to_real_pixel_size -> char_to_pixel_size
	-- Reverse second and third arguments of change_frame_size() and
	   change_frame_size_1() to try to make functions consistent in
	   putting width before height.
	-- Eliminate old round_size_to_char, because it didn't really
	   do anything differently from round_size_to_real_char()
	-- round_size_to_real_char -> round_size_to_char; any places that
	   called the old round_size_to_char should just call the new one.

	2. IMPORTANT FOR CARBON: The set_frame_size() method is now passed
	   sizes in "frame units", like all other frame-sizing functions,
	   rather than some hacked-up combination of char-cell units and
	   total pixel size.  This only affects window systems that use
	   "pixelated geometry", and I'm not sure if Carbon is one of them.
	   MS Windows is pixelated, X and GTK are not.  For pixelated-geometry
	   systems, the size in set_frame_size() is in displayable pixels
	   rather than total pixels and needs to be converted appropriately;
	   take a look at the changes made to mswindows_set_frame_size()
	   method if necessary.
	
	3. Add a big long comment in frame.c describing how frame geometry
	   works.

	4. Remove MS Windows-specific character height and width fields,
	   duplicative and unused.

	5. frame-displayable-pixel-* and set-frame-displayable-pixel-*
	   didn't use to work on MS Windows, but they do now.

	6. In general, clean up the handling of "pixelated geometry" so
	   that fewer functions have to worry about this.  This is really
	   an abomination that should be removed entirely but that will
	   have to happen later.  Fix some buggy code in
	   frame_conversion_internal() that happened to "work" because it
	   was countered by oppositely buggy code in change_frame_size().

	7. Clean up some frame-size code in toolbar.c and use functions
	   already provided in frame.c instead of rolling its own.

	8. Fix check_frame_size() in window.c, which formerly didn't take
	   pixelated geometry into account.


2010-02-15  Ben Wing  <ben@xemacs.org>

	* mc-alloc.c:
	* mc-alloc.c (mc_realloc_1):
	* mc-alloc.c (set_dirty_bit):
	* mc-alloc.c (set_dirty_bit_for_address):
	* mc-alloc.c (get_dirty_bit):
	* mc-alloc.c (get_dirty_bit_for_address):
	* mc-alloc.c (set_protection_bit):
	* mc-alloc.c (set_protection_bit_for_address):
	* mc-alloc.c (get_protection_bit):
	* mc-alloc.c (get_protection_bit_for_address):
	* mc-alloc.c (get_page_start):
	* vdb-win32.c (win32_fault_handler):
	* vdb.c:
	Fix some compile warnings, make vdb test code conditional on
	DEBUG_XEMACS.
	
2010-02-15  Ben Wing  <ben@xemacs.org>

	* regex.c:
	* regex.c (DEBUG_FAIL_PRINT1):
	* regex.c (PUSH_FAILURE_POINT):
	* regex.c (POP_FAILURE_POINT):
	* regex.c (regex_compile):
	* regex.c (re_match_2_internal):
	* regex.h:
	* search.c:
	* search.c (search_buffer):
	* search.c (debug_regexps_changed):
	* search.c (vars_of_search):
	Add an internal variable debug_regexps and a corresponding Lisp
	variable `debug-regexps' that takes a list of areas in which to
	display debugging info about regex compilation and matching
	(currently three areas exist).  Use existing debugging code
	already in regex.c and modify it so that it recognizes the
	debug_regexps variable and the flags in it.

	Rename variable `debug-xemacs-searches' to just `debug-searches',
	consistent with other debug vars.

2010-02-20  Ben Wing  <ben@xemacs.org>

	* device-x.c (Fx_get_resource):
	* dynarr.c:
	* dynarr.c (Dynarr_realloc):
	* dynarr.c (Dynarr_newf):
	* dynarr.c (Dynarr_lisp_realloc):
	* dynarr.c (Dynarr_lisp_newf):
	* dynarr.c (Dynarr_resize):
	* dynarr.c (Dynarr_insert_many):
	* dynarr.c (Dynarr_delete_many):
	* dynarr.c (Dynarr_memory_usage):
	* dynarr.c (stack_like_free):
	* file-coding.c (coding_reader):
	* file-coding.c (gzip_convert):
	* gutter.c (output_gutter):
	* lisp.h:
	* lisp.h (Dynarr_declare):
	* lisp.h (DYNARR_SET_LISP_IMP):
	* lisp.h (CHECK_NATNUM):
	* profile.c (create_timing_profile_table):
	* redisplay-output.c (sync_rune_structs):
	* redisplay-output.c (sync_display_line_structs):
	* redisplay-output.c (redisplay_output_window):
	* redisplay.c:
	* redisplay.c (get_display_block_from_line):
	* redisplay.c (add_ichar_rune_1):
	* redisplay.c (ensure_modeline_generated):
	* redisplay.c (generate_displayable_area):
	* redisplay.c (regenerate_window):
	* redisplay.c (update_line_start_cache):
	* signal.c:
	* signal.c (check_quit):

	Lots of rewriting of dynarr code.

	(1) Lots of documentation added.  Also fix places that
	referenced a now-bogus internals node concerning redisplay
	critical sections.
	
	(2) Rename:

	Dynarr_add_lisp_string -> Dynarr_add_ext_lisp_string
	Dynarr_set_length -> Dynarr_set_lengthr ("restricted")
	Dynarr_increment -> Dynarr_incrementr
	Dynarr_resize_if -> Dynarr_resize_to_add

	(3) New functions:

	Dynarr_elsize = dy->elsize_
	Dynarr_set_length(): Set length, resizing as necessary
	Dynarr_set_length_and_zero(): Set length, resizing as necessary,
	  zeroing out new elements
	Dynarr_increase_length(), Dynarr_increase_length_and_zero():
	  Optimization of Dynarr_set_length(), Dynarr_set_length_and_zero()
	  when size is known to increase
	Dynarr_resize_to_fit(): Resize as necessary to fit a given length.
	Dynarr_set(): Set element at a given position, increasing length
	  as necessary and setting any newly created positions to 0
	
	(4) Use Elemcount, Bytecount.

	(5) Rewrite many macros as inline functions.

2010-02-20  Ben Wing  <ben@xemacs.org>

	* tests.c:
	Fix operation of c-tests.

2010-02-19  Aidan Kehoe  <kehoea@parhasard.net>

	* fns.c (split_string_by_ichar_1):
	Use better types (e.g., not an Ichar for a buffer size) in this
	function when dealing with ESCAPECHAR.

2010-02-19  Aidan Kehoe  <kehoea@parhasard.net>

	* fns.c (mapcarX):
	Correct this function, discarding multiple values when one
	SEQUENCE is supplied, choosing a better label name.  Correct the
	comment describing the SOME_OR_EVERY argument.

2010-02-12  Aidan Kehoe  <kehoea@parhasard.net>

	* syswindows.h:
	Remove the PDWORD_PTR typedef; it's not used in
	intl-auto-encap-win32.h , and it breaks the build with Visual C++
	2005 Express Edition and a 2005 copy of the SDK.

2010-02-10  Ben Wing  <ben@xemacs.org>

	* text.h:
	* text.h (VALIDATE_IBYTEPTR_BACKWARD):
	* text.h (EI_ALLOC):
	* text.h (eicpyout_alloca_fmt):
	* text.h (eifree):
	* text.h (eito_alloca):
	* text.h (eito_external):
	* text.h (DFC_LISP_STRING_USE_CONVERTED_DATA):
	* text.h (EXTERNAL_TO_ITEXT):
	(1) Fix up long comment about the internal-external conversion
	macros to reflect the recent changes to the macros.

	(2) Reformat the macros in text.h so they line up properly.

2010-02-09  Jerry James  <james@xemacs.org>

	* s/hpux11-shr.h: Add license information from Marcus Thiessel.

2010-02-09  Ben Wing  <ben@xemacs.org>

	* dynarr.c (Dynarr_insert_many):
	* dynarr.c (Dynarr_delete_many):
	* emacs.c:
	* emacs.c (pause_so_user_can_read_messages):
	* emacs.c (Fkill_emacs):
	* emacs.c (guts_of_fatal_error_signal):
	* lisp.h:
	* lisp.h (INLINE_ERROR_CHECK_ARGS):
	* lisp.h (Dynarr_set_length_1):
	* lisp.h (Dynarr_set_length):
	* lisp.h (Dynarr_pop):
	Add ERROR_CHECK_DYNARR, dynarr_checking_assert().  Use it.
	Sort existing error-check categories in lisp.h, remove most of the
	(unused) assert variations from most categories.  Add a long
	comment about reorganizing the system by categories and
	subcategories.  Create ERROR_CHECK_ANY if any error-checking
	categories defined, and use it in emacs.c to define
	USER_IS_DEVELOPING_XEMACS.

	In emacs.c and cmdloop.c, don't display a message at early
	shutdown or fatal shutdown when on Cygwin, only Windows native --
	Cygwin has a working stderr that shows error output.

	Update comment in Dynarr_verify_pos_atp().
	

2010-02-09  Ben Wing  <ben@xemacs.org>

	* syswindows.h:
	Create a long comment about build flags such as WIN32_NATIVE,
	HAVE_MS_WINDOWS.

2010-02-09  Ben Wing  <ben@xemacs.org>

	* lisp.h:
	Disabled inline assert should just use disabled_assert()
	not disabled_assert_at_line() otherwise you get compile errors.
	(Hasn't bitten us only because no one is currently using inline
	asserts -- but this is different in the Unicode-internal repo.)

2010-02-08  Ben Wing  <ben@xemacs.org>

	* charset.h:
	* charset.h (Fget_charset): Declare some fake charset defs so
	we can compile when non-Mule.
	* depend: Rebuild.

2010-02-08  Ben Wing  <ben@xemacs.org>

	* event-Xt.c:
	Add comment about simultaneous window-system consoles/devices.

2010-02-08  Ben Wing  <ben@xemacs.org>

	* alloc.c:
	Add prototypes for debugging functions.
	
	* alloc.c (compact_string_chars): Make static.
	
	* console-x.c (x_initially_selected_for_input):
	* console-x.h:
	* console-x.h (X_ERROR_OCCURRED):
	Delete x_has_keysym() prototype from console-x.c, move to console-x.h.

	* eval.c (multiple_value_call):
	Real bug: Fix shadowing local vars.
	
	* event-unixoid.c (read_event_from_tty_or_stream_desc):
	* event-unixoid.c (signal_fake_event):
	* lread.c (check_if_suppressed):
	* strftime.c (strftime):
	Fix stupid global shadowing warnings.
	
	* event-unixoid.c (signal_fake_event):
	* event-unixoid.c (drain_signal_event_pipe):
	Use Rawbyte, not char.
	
	* frame.h: Remove old prototype.
	
	* gc.c:
	* gc.c (show_gc_cursor_and_message):
	* gc.c (remove_gc_cursor_and_message):
	* gc.c (gc_prepare):
	* gc.c (gc_finish_mark):
	* gc.c (gc_finalize):
	* gc.c (gc_sweep):
	* gc.c (gc_finish):
	* gc.c (gc_suspend_mark_phase):
	* gc.c (gc_resume_mark_phase):
	* gc.c (gc_mark):
	* gc.c (gc_resume_mark):
	Make fns static.
	
	* glyphs-eimage.c (gif_decode_error_string):
	Fix non-prototype.
	
	* lisp.h:
	Hack around global shadowing warnings involving `index'.
	
	* intl-win32.c (wcsncpy):
	* number-gmp.c (bigfloat_to_string):
	* objects-msw.c (mswindows_font_spec_matches_charset_stage_2):
	* specifier.c (call_charset_predicate):
	* specifier.c (DEFINE_SPECIFIER_TAG_FROB):
	Declarations cannot follow statements in standard C.

	* search.c (search_buffer): Fix local shadowing warnings.
	
2010-02-08  Ben Wing  <ben@xemacs.org>

	* faces.c:
	* faces.c (face_property_matching_instance):
	* faces.c (ensure_face_cachel_contains_charset):
	* faces.h (FACE_FONT):
	* lisp.h:
	* lisp.h (enum font_specifier_matchspec_stages):
	* objects-msw.c:
	* objects-msw.c (mswindows_font_spec_matches_charset):
	* objects-msw.c (mswindows_find_charset_font):
	* objects-tty.c:
	* objects-tty.c (tty_font_spec_matches_charset):
	* objects-tty.c (tty_find_charset_font):
	* objects-xlike-inc.c:
	* objects-xlike-inc.c (XFUN):
	* objects-xlike-inc.c (xft_find_charset_font):
	* objects.c:
	* objects.c (font_instantiate):
	* objects.c (FROB):
	* specifier.c:
	* specifier.c (charset_matches_specifier_tag_set_p):
	* specifier.c (call_charset_predicate):
	* specifier.c (define_specifier_tag):
	* specifier.c (Fdefine_specifier_tag):
	* specifier.c (setup_charset_initial_specifier_tags):
	* specifier.c (specifier_instance_from_inst_list):
	* specifier.c (FROB):
	* specifier.c (vars_of_specifier):
	* specifier.h:
	Rename the specifier-font-matching stages in preparation for
	eliminating shadowed warnings, some other related fixes from
	ben-unicode-internal.

	1. Rename raw enums:
	   initial	 -> STAGE_INITIAL
	   final	 -> STAGE_FINAL
	   impossible	 -> NUM_MATCHSPEC_STAGES
	2. Move `enum font_specifier_matchspec_stages' from
	   specifier.h to lisp.h.
	3. Whitespace changes to match coding standards.
	4. Eliminate unused second argument STAGE in charset predicates
	   that don't use it -- the code that calls the charset predicates
	   is now smart enough to supply the right number of arguments
	   automatically.
	5. Add some long(ish) comments and authorial notices, esp. in
	   objects.c.
	6. In specifier.c, change Vcharset_tag_lists from a vector over
	   leading bytes to a hash table over charsets.  This change is
	   unnecessary currently but doesn't hurt and will be required
	   when we merge in Unicode-internal.
	7. In specifier.c, extract out the code that calls charset predicates
	   into a function call_charset_predicate().

2010-02-08  Ben Wing  <ben@xemacs.org>

	* emacs.c:
	* emacs.c (assert_failed):
	Fix comments about when inhibit_non_essential_printing_operations
	is set and how used.  Increment/decrement in assert_failed rather
	than just setting/resetting to avoid hosing things in case we're
	called when the value is already non-zero.  Similarly increment/
	decrement in_assert_failed.
	
	* gc.c (gc_prepare):
	* gc.c (gc_finish):
	Increment/decrement inhibit_non_essential_printing_operations
	rather than setting/resetting.
	
	* print.c:
	* print.c (debug_out):
	* print.c (write_string_to_alternate_debugging_output):
	* print.c (restore_inhibit_non_essential_conversion_operations):
	* print.c (debug_print_exit):
	* print.c (debug_print_enter):
	* print.c (debug_prin1):
	* print.c (debug_p4):
	* print.c (ext_print_begin):
	* print.c (ext_print_end):
	* print.c (external_debug_print):
	* print.c (debug_p3):
	* print.c (debug_backtrace):
	* print.c (debug_short_backtrace):
	* print.c (vars_of_print):
	Lots of cleanup.  Fix debug_out() so it binds
	inhibit_non_essential_printing_operations around it to ensure no
	conversion.  Remove many other places that set the same var since
	the lower-level functions now all do it.  A few other places, add
	inhibit_non_essential_printing_operations bindings.Extract the
	code out that sets up and resets lots of bindings in debug_prin1()
	so that debug_backtrace() can use it, and rewrite it to use the
	new STORE_VOID_IN_LISP() rather than having to have a single
	static opaque structure holding all the bindings (and not handling
	reentrancy).  Fix raw `char' to be `CIbyte' in the declaration of
	`alternate_do_string'.
	
	* signal.c (check_what_happened):
	Fix bug: Don't try to check for QUIT when
	inhibit_non_essential_printing_operations or we may screw things
	up if QUIT happens during debug printing.

2010-02-08  Ben Wing  <ben@xemacs.org>

	* casetab.c (compute_canon_mapper):
	* casetab.c (initialize_identity_mapper):
	* casetab.c (compute_up_or_eqv_mapper):
	* casetab.c (recompute_case_table):
	* casetab.c (set_case_table):
	* chartab.c (copy_mapper):
	* chartab.c (copy_char_table_range):
	* chartab.c (get_range_char_table_1):
	* console.c (find_nonminibuffer_frame_not_on_console_predicate):
	* console.c (find_nonminibuffer_frame_not_on_console):
	* console.c (nuke_all_console_slots):
	* device.c:
	* device.c (find_nonminibuffer_frame_not_on_device_predicate):
	* device.c (find_nonminibuffer_frame_not_on_device):
	* dialog-msw.c (dialog_proc):
	* dialog-msw.c (handle_question_dialog_box):
	* dialog-x.c (maybe_run_dbox_text_callback):
	* eval.c:
	* eval.c (safe_run_hook_trapping_problems_1):
	* eval.c (safe_run_hook_trapping_problems):
	* event-msw.c:
	* event-msw.c (mswindows_wnd_proc):
	* event-msw.c (mswindows_find_frame):
	* faces.c (update_face_inheritance_mapper):
	* frame-msw.c (mswindows_init_frame_1):
	* frame-msw.c (mswindows_get_mouse_position):
	* frame-msw.c (mswindows_get_frame_parent):
	* glade.c (connector):
	* glade.c (Fglade_xml_signal_connect):
	* glade.c (Fglade_xml_signal_autoconnect):
	* glade.c (Fglade_xml_textdomain):
	* glyphs-msw.c (mswindows_subwindow_instantiate):
	* glyphs-msw.c (mswindows_widget_instantiate):
	* glyphs.c (check_instance_cache_mapper):
	* glyphs.c (check_window_subwindow_cache):
	* glyphs.c (check_image_instance_structure):
	* gui-x.c (snarf_widget_value_mapper):
	* gui-x.c (popup_selection_callback):
	* gui-x.c (button_item_to_widget_value):
	* keymap.c (map_keymap_mapper):
	* keymap.c (Fmap_keymap):
	* menubar-gtk.c (__torn_off_sir):
	* menubar-gtk.c (__activate_menu):
	* menubar-gtk.c (menu_convert):
	* menubar-gtk.c (__generic_button_callback):
	* menubar-gtk.c (menu_descriptor_to_widget_1):
	* menubar-msw.c:
	* menubar-msw.c (EMPTY_ITEM_ID):
	* menubar-x.c (menu_item_descriptor_to_widget_value_1):
	* menubar-x.c (pre_activate_callback):
	* menubar-x.c (command_builder_operate_menu_accelerator):
	* menubar-x.c (command_builder_find_menu_accelerator):
	* print.c (print_internal):
	* process-unix.c (close_process_descs_mapfun):
	* process.c (get_process_from_usid):
	* process.c (init_process_io_handles):
	* profile.c (sigprof_handler):
	* profile.c (get_profiling_info_timing_maphash):
	* profile.c (Fget_profiling_info):
	* profile.c (set_profiling_info_timing_maphash):
	* profile.c (mark_profiling_info_maphash):
	* scrollbar-msw.c (mswindows_create_scrollbar_instance):
	* scrollbar-msw.c (mswindows_free_scrollbar_instance):
	* scrollbar-msw.c (mswindows_handle_scrollbar_event):
	* specifier.c (recompute_cached_specifier_everywhere_mapfun):
	* specifier.c (recompute_cached_specifier_everywhere):
	* syntax.c (copy_to_mirrortab):
	* syntax.c (copy_if_not_already_present):
	* syntax.c (update_just_this_syntax_table):
	* text.c (new_dfc_convert_now_damn_it):
	* text.h (LISP_STRING_TO_EXTERNAL):
	* tooltalk.c:
	* tooltalk.c (tooltalk_message_callback):
	* tooltalk.c (tooltalk_pattern_callback):
	* tooltalk.c (Fcreate_tooltalk_message):
	* tooltalk.c (Fcreate_tooltalk_pattern):
	* ui-byhand.c (__generic_toolbar_callback):
	* ui-byhand.c (generic_toolbar_insert_item):
	* ui-byhand.c (__emacs_gtk_ctree_recurse_internal):
	* ui-byhand.c (Fgtk_ctree_recurse):
	* ui-gtk.c (__internal_callback_destroy):
	* ui-gtk.c (__internal_callback_marshal):
	* ui-gtk.c (Fgtk_signal_connect):
	* ui-gtk.c (gtk_type_to_lisp):
	* ui-gtk.c (lisp_to_gtk_type):
	* ui-gtk.c (lisp_to_gtk_ret_type):
	* lisp-disunion.h:
	* lisp-disunion.h (NON_LVALUE):
	* lisp-union.h:
	* lisp.h (LISP_HASH):
	Rename:

	LISP_TO_VOID -> STORE_LISP_IN_VOID
	VOID_TO_LISP -> GET_LISP_FROM_VOID

	These new names are meant to clearly identify that the Lisp object
	is the source and void the sink, and that they can't be used the
	other way around -- they aren't exact opposites despite the old
	names.  The names are also important given the new functions
	created just below.  Also, clarify comments in lisp-union.h and
	lisp-disunion.h about the use of the functions.

	* lisp.h:
	New functions STORE_VOID_IN_LISP and GET_VOID_FROM_LISP.  These
	are different from the above in that the source is a void *
	(previously, you had to use make_opaque_ptr()).

	* eval.c (restore_lisp_object):
	* eval.c (record_unwind_protect_restoring_lisp_object):
	* eval.c (struct restore_int):
	* eval.c (restore_int):
	* eval.c (record_unwind_protect_restoring_int):
	* eval.c (free_pointer):
	* eval.c (record_unwind_protect_freeing):
	* eval.c (free_dynarr):
	* eval.c (record_unwind_protect_freeing_dynarr):
	* eval.c (unbind_to_1):
	Use STORE_VOID_IN_LISP and GET_VOID_FROM_LISP to eliminate the
	use of make_opaque_ptr() and mostly eliminate Lisp consing
	entirely in the use of these various record_unwind_protect_*
	functions as well as internal_bind_* (e.g. internal_bind_int).

	* tests.c:
	* tests.c (Ftest_store_void_in_lisp):
	* tests.c (syms_of_tests):
	* tests.c (vars_of_tests):
	Add an C-assert-style test to test STORE_VOID_IN_LISP and
	GET_VOID_FROM_LISP to make sure the same value comes back that
	was put in.

2010-02-09  Vin Shelton  <acs@xemacs.org>

	* objects-msw.c (mswindows_font_spec_matches_charset_stage_2):
	Declare hfont at start of a code block.

	* glyphs-eimage.c: Undefine and then redefine FAR around the jpeg
	header.

2010-02-08  Vin Shelton  <acs@xemacs.org>

	* nt.c (open_unc_volume): lpRemoteName is an XELPTSTR.

2010-02-07  Aidan Kehoe  <kehoea@parhasard.net>

	* lisp.h (Dynarr_verify, Dynarr_verify_mod):
	If ERROR_CHECK_STRUCTURES is not defined, cast the argument in
	these two macros; fixes the g++ build.

2010-02-07  Aidan Kehoe  <kehoea@parhasard.net>

	* fileio.c (Finsert_file_contents_internal):
	Only call format-decode if it has a function binding.
	(build_annotations): Only call format-annotate-function if it has
	a function binding; incidentally only calling #'car-less-than-car
	if *it* has a function binding.
	(syms_of_fileio): #'car-less-than-car and #'cdr-less-than-cdr are
	now in Lisp.

2010-02-07  Ben Wing  <ben@xemacs.org>

	* fns.c: Qlist, Qstring mistakenly declared twice.
	* fns.c (mapcarX):
	(void) cast needed to avoid compile problem.

2010-02-07  Ben Wing  <ben@xemacs.org>

	* emacs.c (make_argc_argv):
	Cast to Wexttext * to fix compile error.
	
	* nt.c (init_user_info):
	Cast to CIbyte * to fix compile error.
	
	* nt.c (open_unc_volume):
	To fix compile error, store pathname into an Extbyte * variable
	then write into the dest, casting to LPTSTR.

	* emacs.c (debug_can_access_memory):
	* fileio.c (Fmake_temp_name):
	* fileio.c (a_write):
	* fns.c:
	* fns.c (check_losing_bytecode):
	* fns.c (plists_differ):
	* fns.c (internal_equal_trapping_problems):
	* fns.c (base64_value_to_char):
	* fns.c (base64_conversion_error):
	* fns.c (STORE_BYTE):
	* fns.c (vars_of_fns):
	* lisp.h:
	* nt.c (init_user_info):
	* nt.c (mswindows_readdir):
	* nt.c (mswindows_executable_type):
	Replace raw `char *' or `unsigned char *' with characterized type --
	Rawbyte, Binbyte, Boolbyte, Ibyte or Ascbyte.  This should fix at
	least one real bug -- in a_write(), the "speedy insert" code that
	checks for an unchanged region declared the file data read in as
	char[] but then compared the value to an Ichar.  Hence, any chars
	in the range 128-255 would always appear changed -- in particular,
	this algorithm would fail completely with binary data.
	

2010-02-07  Ben Wing  <ben@xemacs.org>

	* fns.c (mapcarX):
	C++ requires explicit cast to enum lrecord_type.

2010-02-06  Ben Wing  <ben@xemacs.org>

	* mule-wnnfns.c:
	Convert file to utf-8.
	
2010-02-03  Aidan Kehoe  <kehoea@parhasard.net>

	* fns.c (mapcarX):
	Accept a new argument, indicating whether the function is being
	called from #'some or #'every. Implement it.
	Discard any multiple values where that is appropriate.
	(Fmapconcat, FmapcarX, Fmapvector, Fmapcan, Fmapc, Fmap)
	(Fmap_into):
	Pass the new flag to mapcarX.
	(Fsome, Fevery): Move these functions here from cl-extra.el;
	implement them in terms of mapcarX.
	(maplist): Discard multiple values where appropriate.

2010-02-06  Ben Wing  <ben@xemacs.org>

	* config.h.in: Add undef for TRUST_NDBM_H_PROTOTYPES.
	* database.c:
	* database.c (struct):
	Use TRUST_NDBM_H_PROTOTYPES to determine whether to include ndbm.h
	or to specify our own prototypes, in place of CYGWIN_HEADERS (or
	more generally, any random list of systems).
	* depend: Regenerate.

2010-02-05  Ben Wing  <ben@xemacs.org>

	* syswindows.h (LOCAL_FILE_FORMAT_TO_TSTR):
	Cast pointer when storing value to avoid problems because some
	store vars are Extbyte * and some are LPTSTR.

2010-02-05  Jerry James  <james@xemacs.org>

	* s/sco7.h: Add copyright and license header with the permission of
	Ron Record, the author.

2010-02-05  Ben Wing  <ben@xemacs.org>

	* depend:
	Regenerate.
	* make-src-depend (PrintPatternDeps):
	Remove refs to xgccache, no longer existent.
	
	* select-gtk.c (THIS_IS_GTK):
	* select-gtk.c (gtk_decline_selection_request):
	* select-x.c (THIS_IS_X):
	* select-xlike-inc.c:
	* select-xlike-inc.c (selection_data_to_lisp_data):
	Rename PROCESSING_X_CODE to THIS_IS_X and PROCESSING_GTK_CODE to
	THIS_SI_GTK for consistency with other xlike code.
	
	Rename select-xlike-inc.c from select-common.h, in keeping with
	xlike terminology.

2010-02-05  Ben Wing  <ben@xemacs.org>

	* console-msw.c (write_string_to_mswindows_debugging_output):
	* console-msw.c (Fmswindows_message_box):
	* console-x.c (x_perhaps_init_unseen_key_defaults):
	* console.c:
	* database.c (dbm_get):
	* database.c (dbm_put):
	* database.c (dbm_remove):
	* database.c (berkdb_get):
	* database.c (berkdb_put):
	* database.c (berkdb_remove):
	* database.c (Fopen_database):
	* device-gtk.c (gtk_init_device):
	* device-msw.c (msprinter_init_device_internal):
	* device-msw.c (msprinter_default_printer):
	* device-msw.c (msprinter_init_device):
	* device-msw.c (sync_printer_with_devmode):
	* device-msw.c (Fmsprinter_select_settings):
	* device-x.c (sanity_check_geometry_resource):
	* device-x.c (Dynarr_add_validified_lisp_string):
	* device-x.c (x_init_device):
	* device-x.c (Fx_put_resource):
	* device-x.c (Fx_valid_keysym_name_p):
	* device-x.c (Fx_set_font_path):
	* dialog-msw.c (push_lisp_string_as_unicode):
	* dialog-msw.c (handle_directory_dialog_box):
	* dialog-msw.c (handle_file_dialog_box):
	* dialog-x.c (dbox_descriptor_to_widget_value):
	* editfns.c (Fformat_time_string):
	* editfns.c (Fencode_time):
	* editfns.c (Fset_time_zone_rule):
	* emacs.c (make_argc_argv):
	* emacs.c (Fdump_emacs):
	* emodules.c (emodules_load):
	* eval.c:
	* eval.c (maybe_signal_error_1):
	* event-msw.c (Fdde_alloc_advise_item):
	* event-msw.c (mswindows_dde_callback):
	* event-msw.c (mswindows_wnd_proc):
	* fileio.c (report_error_with_errno):
	* fileio.c (Fsysnetunam):
	* fileio.c (Fdo_auto_save):
	* font-mgr.c (extract_fcapi_string):
	* font-mgr.c (Ffc_config_app_font_add_file):
	* font-mgr.c (Ffc_config_app_font_add_dir):
	* font-mgr.c (Ffc_config_filename):
	* frame-gtk.c (gtk_set_frame_text_value):
	* frame-gtk.c (gtk_create_widgets):
	* frame-msw.c (mswindows_init_frame_1):
	* frame-msw.c (mswindows_set_title_from_ibyte):
	* frame-msw.c (msprinter_init_frame_3):
	* frame-x.c (x_set_frame_text_value):
	* frame-x.c (x_set_frame_properties):
	* frame-x.c (start_drag_internal_1):
	* frame-x.c (x_cde_transfer_callback):
	* frame-x.c (x_create_widgets):
	* glyphs-eimage.c (my_jpeg_output_message):
	* glyphs-eimage.c (jpeg_instantiate):
	* glyphs-eimage.c (gif_instantiate):
	* glyphs-eimage.c (png_instantiate):
	* glyphs-eimage.c (tiff_instantiate):
	* glyphs-gtk.c (xbm_instantiate_1):
	* glyphs-gtk.c (gtk_xbm_instantiate):
	* glyphs-gtk.c (gtk_xpm_instantiate):
	* glyphs-gtk.c (gtk_xface_instantiate):
	* glyphs-gtk.c (cursor_font_instantiate):
	* glyphs-gtk.c (gtk_redisplay_widget):
	* glyphs-gtk.c (gtk_widget_instantiate_1):
	* glyphs-gtk.c (gtk_add_tab_item):
	* glyphs-msw.c (mswindows_xpm_instantiate):
	* glyphs-msw.c (bmp_instantiate):
	* glyphs-msw.c (mswindows_resource_instantiate):
	* glyphs-msw.c (xbm_instantiate_1):
	* glyphs-msw.c (mswindows_xbm_instantiate):
	* glyphs-msw.c (mswindows_xface_instantiate):
	* glyphs-msw.c (mswindows_redisplay_widget):
	* glyphs-msw.c (mswindows_widget_instantiate):
	* glyphs-msw.c (add_tree_item):
	* glyphs-msw.c (add_tab_item):
	* glyphs-msw.c (mswindows_combo_box_instantiate):
	* glyphs-msw.c (mswindows_widget_query_string_geometry):
	* glyphs-x.c (x_locate_pixmap_file):
	* glyphs-x.c (xbm_instantiate_1):
	* glyphs-x.c (x_xbm_instantiate):
	* glyphs-x.c (extract_xpm_color_names):
	* glyphs-x.c (x_xpm_instantiate):
	* glyphs-x.c (x_xface_instantiate):
	* glyphs-x.c (autodetect_instantiate):
	* glyphs-x.c (safe_XLoadFont):
	* glyphs-x.c (cursor_font_instantiate):
	* glyphs-x.c (x_redisplay_widget):
	* glyphs-x.c (Fchange_subwindow_property):
	* glyphs-x.c (x_widget_instantiate):
	* glyphs-x.c (x_tab_control_redisplay):
	* glyphs.c (pixmap_to_lisp_data):
	* gui-x.c (menu_separator_style_and_to_external):
	* gui-x.c (add_accel_and_to_external):
	* gui-x.c (button_item_to_widget_value):
	* hpplay.c (player_error_internal):
	* hpplay.c (play_sound_file):
	* hpplay.c (play_sound_data):
	* intl.c (Fset_current_locale):
	* lisp.h:
	* menubar-gtk.c (gtk_xemacs_set_accel_keys):
	* menubar-msw.c (populate_menu_add_item):
	* menubar-msw.c (populate_or_checksum_helper):
	* menubar-x.c (menu_item_descriptor_to_widget_value_1):
	* nt.c (init_user_info):
	* nt.c (get_long_basename):
	* nt.c (nt_get_resource):
	* nt.c (init_mswindows_environment):
	* nt.c (get_cached_volume_information):
	* nt.c (mswindows_readdir):
	* nt.c (read_unc_volume):
	* nt.c (mswindows_stat):
	* nt.c (mswindows_getdcwd):
	* nt.c (mswindows_executable_type):
	* nt.c (Fmswindows_short_file_name):
	* ntplay.c (nt_play_sound_file):
	* objects-gtk.c:
	* objects-gtk.c (gtk_valid_color_name_p):
	* objects-gtk.c (gtk_initialize_font_instance):
	* objects-gtk.c (gtk_font_list):
	* objects-msw.c (font_enum_callback_2):
	* objects-msw.c (parse_font_spec):
	* objects-x.c (x_parse_nearest_color):
	* objects-x.c (x_valid_color_name_p):
	* objects-x.c (x_initialize_font_instance):
	* objects-x.c (x_font_instance_truename):
	* objects-x.c (x_font_list):
	* objects-xlike-inc.c (XFUN):
	* objects-xlike-inc.c (xft_find_charset_font):
	* process-nt.c (mswindows_report_winsock_error):
	* process-nt.c (nt_create_process):
	* process-nt.c (get_internet_address):
	* process-nt.c (nt_open_network_stream):
	* process-unix.c:
	* process-unix.c (allocate_pty):
	* process-unix.c (get_internet_address):
	* process-unix.c (unix_canonicalize_host_name):
	* process-unix.c (unix_open_network_stream):
	* realpath.c:
	* select-common.h (lisp_data_to_selection_data):
	* select-gtk.c (symbol_to_gtk_atom):
	* select-gtk.c (atom_to_symbol):
	* select-msw.c (symbol_to_ms_cf):
	* select-msw.c (mswindows_register_selection_data_type):
	* select-x.c (symbol_to_x_atom):
	* select-x.c (x_atom_to_symbol):
	* select-x.c (hack_motif_clipboard_selection):
	* select-x.c (Fx_store_cutbuffer_internal):
	* sound.c (Fplay_sound_file):
	* sound.c (Fplay_sound):
	* sound.h (sound_perror):
	* sysdep.c:
	* sysdep.c (qxe_allocating_getcwd):
	* sysdep.c (qxe_execve):
	* sysdep.c (copy_in_passwd):
	* sysdep.c (qxe_getpwnam):
	* sysdep.c (qxe_ctime):
	* sysdll.c (dll_open):
	* sysdll.c (dll_function):
	* sysdll.c (dll_variable):
	* sysdll.c (search_linked_libs):
	* sysdll.c (dll_error):
	* sysfile.h:
	* sysfile.h (PATHNAME_CONVERT_OUT_TSTR):
	* sysfile.h (PATHNAME_CONVERT_OUT_UTF_8):
	* sysfile.h (PATHNAME_CONVERT_OUT):
	* sysfile.h (LISP_PATHNAME_CONVERT_OUT):
	* syswindows.h (ITEXT_TO_TSTR):
	* syswindows.h (LOCAL_FILE_FORMAT_TO_TSTR):
	* syswindows.h (TSTR_TO_LOCAL_FILE_FORMAT):
	* syswindows.h (LOCAL_FILE_FORMAT_TO_INTERNAL_MSWIN):
	* syswindows.h (LISP_LOCAL_FILE_FORMAT_MAYBE_URL_TO_TSTR):
	* text.h:
	* text.h (eicpy_ext_len):
	* text.h (enum new_dfc_src_type):
	* text.h (EXTERNAL_TO_ITEXT):
	* text.h (GET_STRERROR):
	* tooltalk.c (check_status):
	* tooltalk.c (Fadd_tooltalk_message_arg):
	* tooltalk.c (Fadd_tooltalk_pattern_attribute):
	* tooltalk.c (Fadd_tooltalk_pattern_arg):
	* win32.c (tstr_to_local_file_format):
	* win32.c (mswindows_lisp_error_1):
	* win32.c (mswindows_report_process_error):
	* win32.c (Fmswindows_shell_execute):
	* win32.c (mswindows_read_link_1):

	Changes involving external/internal format conversion,
	mostly code cleanup and renaming.

	1. Eliminate the previous macros like LISP_STRING_TO_EXTERNAL
	   that stored its result in a parameter.  The new version of
	   LISP_STRING_TO_EXTERNAL returns its result through the
	   return value, same as the previous NEW_LISP_STRING_TO_EXTERNAL.
	   Use the new-style macros throughout the code.
        2. Rename C_STRING_TO_EXTERNAL and friends to ITEXT_TO_EXTERNAL,
	   in keeping with overall naming rationalization involving
	   Itext and related types.

	Macros involved in previous two:

	EXTERNAL_TO_C_STRING -> EXTERNAL_TO_ITEXT
	EXTERNAL_TO_C_STRING_MALLOC -> EXTERNAL_TO_ITEXT_MALLOC
	SIZED_EXTERNAL_TO_C_STRING -> SIZED_EXTERNAL_TO_ITEXT
	SIZED_EXTERNAL_TO_C_STRING_MALLOC -> SIZED_EXTERNAL_TO_ITEXT_MALLOC
	C_STRING_TO_EXTERNAL -> ITEXT_TO_EXTERNAL
	C_STRING_TO_EXTERNAL_MALLOC -> ITEXT_TO_EXTERNAL_MALLOC
	LISP_STRING_TO_EXTERNAL
	LISP_STRING_TO_EXTERNAL_MALLOC
	LISP_STRING_TO_TSTR
	C_STRING_TO_TSTR -> ITEXT_TO_TSTR
	TSTR_TO_C_STRING -> TSTR_TO_ITEXT

	The following four still return their values through parameters,
	since they have more than one value to return:
	
	C_STRING_TO_SIZED_EXTERNAL -> ITEXT_TO_SIZED_EXTERNAL
	LISP_STRING_TO_SIZED_EXTERNAL
	C_STRING_TO_SIZED_EXTERNAL_MALLOC -> ITEXT_TO_SIZED_EXTERNAL_MALLOC
	LISP_STRING_TO_SIZED_EXTERNAL_MALLOC

	Sometimes additional casts had to be inserted, since the old
	macros played strange games and completely defeated the type system
	of the store params.
	3. Rewrite many places where direct calls to TO_EXTERNAL_FORMAT
	   occurred with calls to one of the convenience macros listed above,
	   or to make_extstring().
	4. Eliminate SIZED_C_STRING macros (they were hardly used, anyway)
	   and use a direct call to TO_EXTERNAL_FORMAT or TO_INTERNAL_FORMAT.
	4. Use LISP_PATHNAME_CONVERT_OUT in many places instead of something
	   like LISP_STRING_TO_EXTERNAL(..., Qfile_name).
	5. Eliminate some temporary variables that are no longer necessary
	   now that we return a value rather than storing it into a variable.
	6. Some Mule-izing in database.c.
	7. Error functions:
	   -- A bit of code cleanup in maybe_signal_error_1.
	   -- Eliminate report_file_type_error; it's just an alias for
	      signal_error_2 with params in a different order.
	   -- Fix some places in the hostname-handling code that directly
	      inserted externally-retrieved error strings into the
	      supposed ASCII "reason" param instead of doing the right thing
	      and sticking text descriptive of what was going on in "reason"
	      and putting the external message in a frob.
	8. Use Ascbyte instead of CIbyte in process-unix.c and maybe one
	   or two other places.
	9. Some code cleanup in copy_in_passwd() in sysdep.c.
	10. Fix a real bug due to accidental variable shadowing in
	    tstr_to_local_file_format() in win32.c.

2010-02-05  Ben Wing  <ben@xemacs.org>

	* lisp.h:
	* lisp.h (staticpro_nodump_1):
	Define staticpro_1 and staticpro_nodump_1 when not XEMACS_DEBUG.
	
	* symbols.c (defsymbol_massage_name_1):
	* symbols.c (defsymbol_massage_multiword_predicate):
	Cosmetic fixes.

2010-02-05  Ben Wing  <ben@xemacs.org>

	* bytecode.c (bytecode_assert):
	Use 0 instead of x in disabled_assert calls to avoid errors due
	to using undefined vars/params (they are defined only when
	ERROR_CHECK_BYTE_CODE, which also turns on/off the asserts).

2010-02-04  Ben Wing  <ben@xemacs.org>

	* alloc.c (release_breathing_space):
	* alloc.c (resize_string):
	* alloc.c (sweep_lcrecords_1):
	* alloc.c (SWEEP_FIXED_TYPE_BLOCK_1):
	* alloc.c (ADDITIONAL_FREE_compiled_function):
	* alloc.c (compact_string_chars):
	* alloc.c (ADDITIONAL_FREE_string):
	* alloc.c (sweep_strings):
	* alloca.c (xemacs_c_alloca):
	* alsaplay.c (alsa_play_sound_file):
	* buffer.c (init_initial_directory):
	* buffer.h:
	* buffer.h (BUFFER_FREE):
	* console-stream.c (stream_delete_console):
	* console-tty.c (free_tty_console_struct):
	* data.c (Fnumber_to_string):
	* device-gtk.c (gtk_init_device):
	* device-gtk.c (free_gtk_device_struct):
	* device-gtk.c (gtk_delete_device):
	* device-msw.c (mswindows_delete_device):
	* device-msw.c (msprinter_delete_device):
	* device-tty.c (free_tty_device_struct):
	* device-tty.c (tty_delete_device):
	* device-x.c (x_init_device):
	* device-x.c (free_x_device_struct):
	* device-x.c (x_delete_device):
	* dialog-msw.c (handle_directory_dialog_box):
	* dialog-x.c (dbox_descriptor_to_widget_value):
	* dired-msw.c (Fmswindows_insert_directory):
	* dired.c (free_user_cache):
	* dired.c (user_name_completion_unwind):
	* doc.c (unparesseuxify_doc_string):
	* doc.c (Fsubstitute_command_keys):
	* doprnt.c (emacs_doprnt_1):
	* dumper.c (pdump_load_finish):
	* dumper.c (pdump_file_free):
	* dumper.c (pdump_file_unmap):
	* dynarr.c:
	* dynarr.c (Dynarr_free):
	* editfns.c (uncache_home_directory):
	* editfns.c (Fset_time_zone_rule):
	* elhash.c:
	* elhash.c (pdump_reorganize_hash_table):
	* elhash.c (maphash_unwind):
	* emacs.c (make_arg_list_1):
	* emacs.c (free_argc_argv):
	* emacs.c (sort_args):
	* emacs.c (Frunning_temacs_p):
	* emodules.c (attempt_module_delete):
	* eval.c (free_pointer):
	* event-Xt.c (unselect_filedesc):
	* event-Xt.c (emacs_Xt_select_process):
	* event-gtk.c (unselect_filedesc):
	* event-gtk.c (dragndrop_data_received):
	* event-msw.c (winsock_closer):
	* event-msw.c (mswindows_dde_callback):
	* event-msw.c (mswindows_wnd_proc):
	* event-stream.c (finalize_command_builder):
	* event-stream.c (free_command_builder):
	* extents.c (free_gap_array):
	* extents.c (free_extent_list):
	* extents.c (free_soe):
	* extents.c (extent_fragment_delete):
	* extents.c (extent_priority_sort_function):
	* file-coding.c (make_coding_system_1):
	* file-coding.c (coding_finalizer):
	* file-coding.c (set_coding_stream_coding_system):
	* file-coding.c (chain_finalize_coding_stream_1):
	* file-coding.c (chain_finalize):
	* file-coding.c (free_detection_state):
	* file-coding.c (coding_category_symbol_to_id):
	* fileio.c:
	* fileio.c (Ffile_name_directory):
	* fileio.c (if):
	* fileio.c (Ffile_symlink_p):
	* filelock.c (FREE_LOCK_INFO):
	* filelock.c (current_lock_owner):
	* font-mgr.c (Ffc_name_unparse):
	* font-mgr.c (Ffc_pattern_duplicate):
	* frame-gtk.c (gtk_delete_frame):
	* frame-msw.c (mswindows_delete_frame):
	* frame-msw.c (msprinter_delete_frame):
	* frame-x.c (x_cde_destroy_callback):
	* frame-x.c (Fcde_start_drag_internal):
	* frame-x.c (x_cde_transfer_callback):
	* frame-x.c (x_delete_frame):
	* frame.c (update_frame_title):
	* frame.c (Fset_frame_pointer):
	* gc.c (register_for_finalization):
	* gccache-gtk.c (free_gc_cache):
	* gccache-gtk.c (gc_cache_lookup):
	* gccache-x.c (free_gc_cache):
	* gccache-x.c (gc_cache_lookup):
	* glyphs-eimage.c:
	* glyphs-eimage.c (jpeg_instantiate_unwind):
	* glyphs-eimage.c (gif_instantiate_unwind):
	* glyphs-eimage.c (png_instantiate_unwind):
	* glyphs-eimage.c (png_instantiate):
	* glyphs-eimage.c (tiff_instantiate_unwind):
	* glyphs-gtk.c (convert_EImage_to_GDKImage):
	* glyphs-gtk.c (gtk_finalize_image_instance):
	* glyphs-gtk.c (gtk_init_image_instance_from_eimage):
	* glyphs-gtk.c (gtk_xpm_instantiate):
	* glyphs-msw.c (convert_EImage_to_DIBitmap):
	* glyphs-msw.c (mswindows_init_image_instance_from_eimage):
	* glyphs-msw.c (mswindows_initialize_image_instance_mask):
	* glyphs-msw.c (xpm_to_eimage):
	* glyphs-msw.c (mswindows_xpm_instantiate):
	* glyphs-msw.c (xbm_create_bitmap_from_data):
	* glyphs-msw.c (mswindows_finalize_image_instance):
	* glyphs-x.c (convert_EImage_to_XImage):
	* glyphs-x.c (x_finalize_image_instance):
	* glyphs-x.c (x_init_image_instance_from_eimage):
	* glyphs-x.c (x_xpm_instantiate):
	* gui-x.c (free_popup_widget_value_tree):
	* hash.c (free_hash_table):
	* hash.c (grow_hash_table):
	* hash.c (pregrow_hash_table_if_necessary):
	* imgproc.c (build_EImage_quantable):
	* insdel.c (uninit_buffer_text):
	* intl-win32.c (convert_multibyte_to_internal_malloc):
	* intl.c:
	* intl.c (Fset_current_locale):
	* keymap.c:
	* keymap.c (where_is_recursive_mapper):
	* keymap.c (where_is_internal):
	* lisp.h:
	* lisp.h (xfree):
	* lstream.c (Lstream_close):
	* lstream.c (resizing_buffer_closer):
	* mule-coding.c:
	* mule-coding.c (iso2022_finalize_detection_state):
	* nt.c:
	* nt.c (mswindows_get_long_filename):
	* nt.c (nt_get_resource):
	* nt.c (init_mswindows_environment):
	* nt.c (get_cached_volume_information):
	* nt.c (mswindows_opendir):
	* nt.c (mswindows_closedir):
	* nt.c (mswindows_readdir):
	* nt.c (mswindows_stat):
	* nt.c (mswindows_getdcwd):
	* nt.c (Fmswindows_long_file_name):
	* ntplay.c (nt_play_sound_file):
	* ntplay.c (play_sound_data_1):
	* number-gmp.c (gmp_free):
	* number-gmp.c (init_number_gmp):
	* number-mp.c (bignum_to_string):
	* number-mp.c (BIGNUM_TO_TYPE):
	* number.c (bignum_print):
	* number.c (bignum_convfree):
	* number.c (ratio_print):
	* number.c (bigfloat_print):
	* number.c (bigfloat_finalize):
	* objects-gtk.c (gtk_finalize_color_instance):
	* objects-gtk.c (gtk_finalize_font_instance):
	* objects-msw.c (mswindows_finalize_color_instance):
	* objects-msw.c (mswindows_finalize_font_instance):
	* objects-tty.c (tty_finalize_color_instance):
	* objects-tty.c (tty_finalize_font_instance):
	* objects-tty.c (tty_font_list):
	* objects-x.c (x_finalize_color_instance):
	* objects-x.c (x_finalize_font_instance):
	* process.c:
	* process.c (finalize_process):
	* realpath.c:
	* redisplay.c (add_propagation_runes):
	* regex.c:
	* regex.c (xfree):
	* regex.c (REGEX_FREE_STACK):
	* regex.c (FREE_STACK_RETURN):
	* regex.c (regex_compile):
	* regex.c (regexec):
	* regex.c (regfree):
	* scrollbar-gtk.c (gtk_free_scrollbar_instance):
	* scrollbar-gtk.c (gtk_release_scrollbar_instance):
	* scrollbar-msw.c (mswindows_free_scrollbar_instance):
	* scrollbar-msw.c (unshow_that_mofo):
	* scrollbar-x.c (x_free_scrollbar_instance):
	* scrollbar-x.c (x_release_scrollbar_instance):
	* select-gtk.c (emacs_gtk_selection_handle):
	* select-msw.c (mswindows_own_selection):
	* select-x.c:
	* select-x.c (x_handle_selection_request):
	* select-x.c (unexpect_property_change):
	* select-x.c (x_handle_property_notify):
	* select-x.c (receive_incremental_selection):
	* select-x.c (x_get_window_property_as_lisp_data):
	* select-x.c (Fx_get_cutbuffer_internal):
	* specifier.c (finalize_specifier):
	* syntax.c (uninit_buffer_syntax_cache):
	* sysdep.c (qxe_allocating_getcwd):
	* sysdep.c (qxe_lstat):
	* sysdep.c (copy_in_passwd):
	* sysdep.c (qxe_ctime):
	* sysdep.c (closedir):
	* sysdep.c (DIRSIZ):
	* termcap.c (tgetent):
	* termcap.c (tprint):
	* tests.c (Ftest_data_format_conversion):
	* text.c (new_dfc_convert_copy_data):
	* text.h (eifree):
	* text.h (eito_alloca):
	* text.h (eito_external):
	* toolbar-msw.c (mswindows_output_toolbar):
	* ui-gtk.c (CONVERT_RETVAL):
	* ui-gtk.c (__allocate_object_storage):
	* unicode.c (free_from_unicode_table):
	* unicode.c (free_to_unicode_table):
	* unicode.c (free_charset_unicode_tables):
	* win32.c (mswindows_read_link_1):
	Rename: xfree(VAL, TYPE)->xfree(VAL)

	Command used:

	gr 'xfree *\((.*),.*\);' 'xfree (\1);' *.[ch]

	Followed by grepping for 'xfree.*,' and fixing anything left.

	Rationale: Having to specify the TYPE argument is annoying and
	error-prone.  It was originally put in to work around warnings
	due to strict aliasing but years and years ago I rewrote it
	in a way that doesn't use the TYPE argument at all and no one
	has complained since then. (And anyway, XEmacs is far from
	ever being in compliance with strict aliasing and would require
	far-reaching changes to get that way.)

2010-02-04  Ben Wing  <ben@xemacs.org>

	* emacs.c (SHEBANG_EXE_PROGNAME_LENGTH):
	* emacs.c (main_1):
	Restore old definition of SHEBANG_EXE_PROGNAME_LENGTH; not possible
	to ANSI-concatenate wide and narrow strings.
	* print.c (write_msg_istring):
	* print.c (write_msg_cistring):
	* print.c (write_msg_ascstring):
	Can't return a value in a void-declared function.

2010-02-04  Ben Wing  <ben@xemacs.org>

	* filelock.c:
	* filelock.c (fill_in_lock_file_name):
	Name the lock symlink file .#FN# instead of .#FN for file FN, so
	that the link file doesn't have a .c or .el or whatever extension,
	which confuses programs/functions that search by extension (e.g.
	etags, byte-recompile-directory, etc.).

2010-02-04  Ben Wing  <ben@xemacs.org>

	* symbols.c (defsymbol_massage_name_1):
	* symbols.c (defsymbol_nodump):
	* symbols.c (defsymbol):
	* symbols.c (defkeyword):
	* symeval.h (DEFVAR_SYMVAL_FWD_OBJECT):
	Put this back again:
	
	Make the various calls to staticpro() instead call staticpro_1(),
	passing in the name of the C var being staticpro'ed, so that it
	shows up in staticpro_names.  Otherwise staticpro_names just has
	1000+ copies of the word `location'.

2010-02-04  Ben Wing  <ben@xemacs.org>

	* bytecode.c (assert_failed_with_remembered_ops):
	* bytecode.c (init_opcode_table_multi_op):
	Declare some things const to shut up G++ v4 warnings.
	
	* redisplay.c (add_ibyte_string_runes):
	* redisplay.c (add_string_to_fstring_db_runes):
	* redisplay.c (generate_fstring_runes):
	* redisplay.c (window_line_number):
	* redisplay.c (decode_mode_spec):
	Use Ascbyte instead of char in various places.

2010-02-03  Ben Wing  <ben@xemacs.org>

	* frame.c (Fmake_frame):
	* glyphs.c:
	* glyphs.c (NUM_PRECACHED_GLYPHS):
	* glyphs.c (get_glyph_cachel_index):
	* glyphs.c (FROB):
	* glyphs.c (mark_glyph_cachels_as_not_updated):
	* redisplay.c (regenerate_window):
	* redisplay.c (redisplay_window):
	When creating a frame, call reset_glyph_cachels on the minibuffer
	window as well as the root window.  Fixes a crash due to other
	glyphs (e.g. the gutter glyph) getting in the glyph cachel before
	the pre-cached glyphs that are supposed to have fixed indices
	(continuation-glyph, truncation-glyph, etc.).

	Add a bunch of asserts to make sure that the glyph cachels always
	properly contain the pre-cached glyphs.

2010-02-03  Ben Wing  <ben@xemacs.org>

	* device-x.c (x_get_resource_prefix):
	* device-x.c (Fx_get_resource):
	* device-x.c (Fx_get_resource_prefix):
	* device-x.c (Fx_put_resource):
	* dialog-msw.c:
	* dialog-msw.c (handle_question_dialog_box):
	* dired-msw.c (mswindows_sort_files):
	* dired-msw.c (mswindows_get_files):
	* extents.c (extent_fragment_sort_by_priority):
	* extents.c (Fset_extent_parent):
	* file-coding.c (coding_reader):
	* file-coding.c (coding_writer):
	* file-coding.c (gzip_convert):
	* frame.c (generate_title_string):
	* gutter.c (calculate_gutter_size_from_display_lines):
	* indent.c (vmotion_1):
	* lread.c (read_bit_vector):
	* mule-coding.c (iso2022_decode):
	* rangetab.c:
	* rangetab.c (Fcopy_range_table):
	* rangetab.c (Fget_range_table):
	* rangetab.c (unified_range_table_copy_data):
	* redisplay-msw.c (mswindows_output_string):
	* redisplay-output.c (output_display_line):
	* redisplay-output.c (redisplay_move_cursor):
	* redisplay-output.c (redisplay_clear_bottom_of_window):
	* redisplay-tty.c (tty_output_ichar_dynarr):
	* redisplay-tty.c (set_foreground_to):
	* redisplay-tty.c (set_background_to):
	* redisplay-xlike-inc.c (XLIKE_output_string):
	* redisplay.c (redisplay_window_text_width_string):
	* redisplay.c (redisplay_text_width_string):
	* redisplay.c (create_text_block):
	* redisplay.c (SET_CURRENT_MODE_CHARS_PIXSIZE):
	* redisplay.c (generate_fstring_runes):
	* redisplay.c (regenerate_modeline):
	* redisplay.c (ensure_modeline_generated):
	* redisplay.c (real_current_modeline_height):
	* redisplay.c (create_string_text_block):
	* redisplay.c (regenerate_window):
	* redisplay.c (REGEN_INC_FIND_START_END):
	* redisplay.c (point_visible):
	* redisplay.c (redisplay_window):
	* redisplay.c (mark_glyph_block_dynarr):
	* redisplay.c (line_start_cache_start):
	* redisplay.c (start_with_line_at_pixpos):
	* redisplay.c (update_line_start_cache):
	* redisplay.c (glyph_to_pixel_translation):
	* redisplay.c (pixel_to_glyph_translation):
	* sysdep.c (qxe_readdir):
	* text.c (dfc_convert_to_external_format):
	* text.c (dfc_convert_to_internal_format):
	* toolbar-common.c (common_output_toolbar_button):
	* window.c (window_modeline_height):
	* window.c (Fwindow_last_line_visible_height):
	* window.c (window_displayed_height):
	* window.c (window_scroll):
	* window.c (get_current_pixel_pos):
	Use Dynarr_begin() in place of Dynarr_atp (foo, 0).

	* dynarr.c (Dynarr_realloc):
	* dynarr.c (Dynarr_lisp_realloc):
	* dynarr.c (Dynarr_resize):
	* dynarr.c (Dynarr_insert_many):
	* dynarr.c (Dynarr_delete_many):
	* dynarr.c (Dynarr_memory_usage):
	* dynarr.c (stack_like_malloc):
	* dynarr.c (stack_like_free):
	* lisp.h:
	* lisp.h (DECLARE_DYNARR_LISP_IMP):
	* lisp.h (XD_DYNARR_DESC):
	* lisp.h (Dynarr_pop):
	* gutter.c (output_gutter):
	* redisplay-output.c (sync_rune_structs):
	* redisplay-output.c (redisplay_output_window):
	Redo the dynarr code, add greater checks.

	Rename the `len', `largest' and `max' members to `len_',
	`largest_' and `max_' to try and catch existing places that might
	directly modify these values.  Make new accessors Dynarr_largest()
	and Dynarr_max() and make them and existing Dynarr_length() be
	non-lvalues by adding '+ 0' to them; fix a couple of places in the
	redisplay code that tried to modify the length directly by setting
	Dynarr_length().  Use the accessors whenever possible even in the
	dynarr code itself.  The accessors also verify that 0 <= len <=
	largest <= max.  Rename settor function Dynarr_set_size() to
	Dynarr_set_length() and use it more consistently; also create
	lower-level Dynarr_set_length_1().  This latter function should be
	the only function that directly modifies the `len_' member of a
	Dynarr, and in the process makes sure that the `largest' value is
	kept correct.

	Consistently use ERROR_CHECK_STRUCTURES instead of
	ERROR_CHECK_TYPES for error-checking code.  Reintroduce the
	temporarily disabled verification code on the positions of
	Dynarr_at(), Dynarr_atp() and Dynarr_atp_past_end().
	Also create Dynarr_resize_if() in place of a repeated
	code fragment.  Clean up all the functions that modify Dynarrs to
	use the new macros and functions and verify the correctness of the
	Dynarr both before and after the change.

	Note that there are two kinds of verification -- one for accessing
	and one for modifying.  The difference is that the modify
	verification additionally checks to make sure that the Dynarr
	isn't locked. (This is used in redisplay to check for problems
	with reentrancy.)
	
	* lrecord.h: Move XD_DYNARR_DESC to lisp.h, grouping with the dynarr code.

2010-02-03  Jerry James  <james@xemacs.org>

	* s/mach-bsd4-3.h: Add historical copyright and license information,
	unearthed by Ben Wing.

2010-02-03  Ben Wing  <ben@xemacs.org>

	* bytecode.c:
	Fix minor compile problem.

2010-02-03  Ben Wing  <ben@xemacs.org>

	* symbols.c (defsymbol_massage_name_1):
	* symbols.c (defsymbol_nodump):
	* symbols.c (defsymbol):
	* symbols.c (defkeyword):
	* symeval.h (DEFVAR_SYMVAL_FWD_OBJECT):
	Temporarily back out staticpro-related changes in symbols.c and
	symeval.h to fix compile problems, will put back when `latest-fix'
	workspace gets merged in.

2010-02-03  Ben Wing  <ben@xemacs.org>

	* alloc.c (Fmake_byte_code):
	* lread.c:
	* lread.c (readevalloop):
	* lread.c (Fread):
	* lread.c (Fread_from_string):
	* lread.c (read_list_conser):
	* lread.c (read_list):
	* lread.c (vars_of_lread):
	Remove the old kludgy stuff bracketed by `#ifdef
	COMPILED_FUNCTION_ANNOTATION_HACK_OLD_WAY'.

2010-02-03  Ben Wing  <ben@xemacs.org>

	* alloc.c (Fmake_byte_code):
	* bytecode.h:
	* lisp.h:
	* lread.c:
	* lread.c (readevalloop):
	* lread.c (Fread):
	* lread.c (Fread_from_string):
	* lread.c (read_list_conser):
	* lread.c (read_list):
	* lread.c (vars_of_lread):
	* symbols.c:
	* symbols.c (Fdefine_function):
	Turn on the "compiled-function annotation hack".  Implement it
	properly by hooking into Fdefalias().  Note in the docstring to
	`defalias' that we do this.  Remove some old broken code and
	change code that implemented the old kludgy way of hooking into
	the Lisp reader into bracketed by `#ifdef
	COMPILED_FUNCTION_ANNOTATION_HACK_OLD_WAY', which is not enabled.

	Also enable byte-code metering when DEBUG_XEMACS -- this is a form
	of profiling for computing histograms of which sequences of two
	bytecodes are used most often.
	
	* bytecode-ops.h:
	* bytecode-ops.h (OPCODE):
	New file.  Extract out all the opcodes and declare them using
	OPCODE(), a bit like frame slots and such.  This way the file can
	be included multiple times if necessary to iterate multiple times
	over the byte opcodes.
	
	* bytecode.c:
	* bytecode.c (NUM_REMEMBERED_BYTE_OPS):
	* bytecode.c (OPCODE):
	* bytecode.c (assert_failed_with_remembered_ops):
	* bytecode.c (READ_UINT_2):
	* bytecode.c (READ_INT_1):
	* bytecode.c (READ_INT_2):
	* bytecode.c (PEEK_INT_1):
	* bytecode.c (PEEK_INT_2):
	* bytecode.c (JUMP_RELATIVE):
	* bytecode.c (JUMP_NEXT):
	* bytecode.c (PUSH):
	* bytecode.c (POP_WITH_MULTIPLE_VALUES):
	* bytecode.c (DISCARD):
	* bytecode.c (UNUSED):
	* bytecode.c (optimize_byte_code):
	* bytecode.c (optimize_compiled_function):
	* bytecode.c (Fbyte_code):
	* bytecode.c (vars_of_bytecode):
	* bytecode.c (init_opcode_table_multi_op):
	* bytecode.c (reinit_vars_of_bytecode):
	* emacs.c (main_1):
	* eval.c (funcall_compiled_function):
	* symsinit.h:
	Any time we change either the instruction pointer or the stack
	pointer, assert that we're going to move it to a valid location.
	This should catch failures right when they occur rather than
	sometime later.  This requires that we pass in another couple of
	parameters into some functions (only with error-checking enabled,
	see below).

	Also keep track, using a circular queue, of the last 100 byte
	opcodes seen, and when we hit an assert failure during byte-code
	execution, output the contents of the queue in a nice readable
	fashion.  This requires that bytecode-ops.h be included a second
	time so that a table mapping opcodes to the name of their operation
	can be constructed.  This table is constructed in new function
	reinit_vars_of_bytecode().

	Everything in the last two paras happens only when
	ERROR_CHECK_BYTE_CODE.

	Add some longish comments describing how the arrays that hold the
	stack and instructions, and the pointers used to access them, work.
	
	* gc.c:
	Import some code from my `latest-fix' workspace to mark the
	staticpro's in order from lowest to highest, rather than highest to
	lowest, so it's easier to debug when something goes wrong.
	
	* lisp.h (abort_with_message): Renamed from abort_with_msg().
	
	* symbols.c (defsymbol_massage_name_1):
	* symbols.c (defsymbol_nodump):
	* symbols.c (defsymbol):
	* symbols.c (defkeyword):
	* symeval.h (DEFVAR_SYMVAL_FWD_OBJECT):
	Make the various calls to staticpro() instead call staticpro_1(),
	passing in the name of the C var being staticpro'ed, so that it
	shows up in staticpro_names.  Otherwise staticpro_names just has
	1000+ copies of the word `location'.

2010-02-02  Ben Wing  <ben@xemacs.org>

	* bytecode.c (execute_rare_opcode):
	* lisp.h (abort_with_msg): New.
	When aborting due to unknown opcode, output more descriptive msg.

2010-02-01  Vin Shelton  <acs@xemacs.org>

	* intl-encap-win32.c: Added description of override keyword.
	Fix 2nd arg to CreateMDIWindowW.

	* intl-auto-encap-win32.c:
	* intl-auto-encap-win32.h: Fix 2nd arg to qxeCreateMDIWindow.

2010-02-01  Aidan Kehoe  <kehoea@parhasard.net>

	* fns.c (internal_equalp):
	Use bytecode_arithcompare, which takes two args, instead of
	passing a stack pointer to Feqlsign.
	Use CANONCASE(), not DOWNCASE(), for case-insensitive character
	comparison.
	Correct a comment here.
	* casefiddle.c (casify_object): New operation in this function,
	CASE_CANONICALIZE.
	(Fcanoncase): New function, used for case-insensitive comparison.
	* lisp.h:
	Make Fcanoncase, bytecode_arithcompare visible here.
	* bytecode.c (bytecode_arithcompare):
	Make this visible to other files.

2010-02-03  Ben Wing  <ben@xemacs.org>

	* Makefile.in.in:
	* Makefile.in.in (x_objs):
	* Makefile.in.in (gtk_gui_objs):
	* console-xlike-inc.h:
	* depend:
	* device-x.c:
	* emacs.c:
	* gccache-gtk.h:
	* gccache-gtk.h (gc_cache_lookup):
	* gccache-x.c:
	* gccache-x.c (GCCACHE_HASH):
	* gccache-x.h:
	* toolbar-gtk.c:
	* toolbar-gtk.c (gtk_initialize_frame_toolbars):
	* toolbar-x.c:
	* toolbar-x.c (x_initialize_frame_toolbars):
	* toolbar-xlike.c:
	* toolbar-xlike.c (xlike_draw_blank_toolbar_button):
	* toolbar-xlike.c (xlike_output_toolbar_button):
	* toolbar-xlike.c (xlike_get_button_size):
	* toolbar-xlike.c (XLIKE_OUTPUT_BUTTONS_LOOP):
	* toolbar-xlike.c (xlike_output_toolbar):
	* toolbar-xlike.c (xlike_clear_toolbar):
	* toolbar-xlike.c (xlike_output_frame_toolbars):
	* toolbar-xlike.c (xlike_clear_frame_toolbars):
	* toolbar-xlike.c (xlike_redraw_exposed_toolbar):
	* toolbar-xlike.c (xlike_redraw_exposed_toolbars):
	* toolbar-xlike.c (xlike_redraw_frame_toolbars):
	* toolbar-xlike.h:
	* toolbar-xlike.h (xlike_clear_frame_toolbars):
	Rename some files to make them consistent with general naming rules:
	
	xgccache.c -> gccache-x.c
	xgccache.h -> gccache-x.h
	toolbar-common.c -> toolbar-xlike.c
	toolbar-common.h -> toolbar-xlike.h

	Fix include-file references.  Also change the names of functions
	in now-named toolbar-xlike.c to be xlike_foo() instead of common_foo().

	Add a longish comment in console-xlike-inc.h describing the "xlike"
	system, how it works and what the various files are used for.
	

2010-02-01  Ben Wing  <ben@xemacs.org>

	* Makefile.in.in:
	* compiler.h:
	* config.h.in:
	* console-x-impl.h:
	* console-x-impl.h (struct x_frame):
	* console-x-impl.h (FRAME_X_TOTALLY_VISIBLE_P):
	* console-x.h:
	* console-xlike-inc.h:
	* emacs.c (main_1):
	* faces.c (complex_vars_of_faces):
	* font-mgr.h:
	* frame-x.c (x_delete_frame):
	* frame-x.c (x_update_frame_external_traits):
	* glyphs-x.c (update_widget_face):
	* inline.c:
	* objects-x-impl.h:
	* objects-x-impl.h (struct x_color_instance_data):
	* objects-x-impl.h (struct x_font_instance_data):
	* objects-x.c:
	* objects-x.c (x_initialize_color_instance):
	* objects-x.c (x_initialize_font_instance):
	* objects-x.c (x_print_font_instance):
	* objects-x.c (x_finalize_font_instance):
	* objects-x.c (x_font_instance_truename):
	* objects-x.c (vars_of_objects_x):
	* objects-x.h:
	USE_XFT* -> HAVE_XFT*.  But in objects-xlike-inc.c and
	redisplay-xlike-inc.c, continue to use USE_XFT, and define
	it appropriately in console-xlike-inc.h when both HAVE_XFT
	and THIS_IS_X -- even if HAVE_XFT, we don't want to enable
	XFT code when included in a *-gtk.c file.


2010-02-01  Ben Wing  <ben@xemacs.org>

	* alloc.c (common_init_alloc_early):
	Fix compiler breakage.

2010-02-01  Ben Wing  <ben@xemacs.org>

	* objects-gtk-impl.h:
	* objects-gtk-impl.h (XCOLOR_INSTANCE_GTK_COLOR):
	* objects-gtk-impl.h (XFONT_INSTANCE_GTK_FONT):
	* objects-x-impl.h (XCOLOR_INSTANCE_X_COLOR):
	* objects-x-impl.h (XFONT_INSTANCE_X_FONT):
	Define XCOLOR_INSTANCE_X_COLOR, XCOLOR_INSTANCE_GTK_COLOR,
	XFONT_INSTANCE_X_FONT, XFONT_INSTANCE_GTK_FONT for convenience
	purposes.  Fixes compile bug in redisplay-xlike-inc.c.

2010-01-29  Ben Wing  <ben@xemacs.org>

	* lisp.h:
	* objects.h (set_face_boolean_attached_to):
	Use lisp.h for EXFUN of Fregexp_quote, that's what it's for.

2010-02-01  Ben Wing  <ben@xemacs.org>

	* compiler.h:
	Create a USED() macro to force unused-var warnings to go away,
	in certain cases where it's inconvenient to do otherwise (e.g.
	when THIS_IS_GTK in redisplay-xlike-inc.c).
	
	* console-x.h:
	Remove unneeded decls, make some static.

	* redisplay-xlike-inc.c:
	* console-xlike-inc.h: New file.  Include defns from
	redisplay-xlike-inc.c that may be useful in other XLIKE files.
	Correct the handling of colors and font-style setting functions
	in the xlike defns.  Lots of fixes in the GTK-specific defns.
	
	* depend: Regenerate.
	
	* event-xlike-inc.c:
	* event-xlike-inc.c (USE_UNICODE_MAP):
	* event-xlike-inc.c (endif):
	* gccache-gtk.c:
	* gtk-glue.c (xemacs_list_to_gtklist):
	* gtk-glue.c (xemacs_gtklist_to_list):
	* gtk-glue.c (FROB):
	* gtk-glue.c (face_to_gc):
	* gtk-glue.c (face_to_style):
	* gtk-glue.c (gdk_event_to_emacs_event):
	* gtk-xemacs.h (struct _GtkXEmacs):
	* gtk-xemacs.h (struct _GtkXEmacsClass):
	* objects-xlike-inc.c:
	Cosmetic, comment fixes.
	
	* glyphs.c (pixmap_to_lisp_data):
	Unused var fixes.
	

	* gtk-glue.c:
	* gccache-gtk.c:
	* gtk-xemacs.c:
	* gtk-xemacs.h:
	* objects-xlike-inc.c:
	* ui-gtk.c:
	* ui-gtk.h:
	* xgccache.c:
	* xgccache.c (GC_CACHE_SIZE):
	* xgccache.h:
	Misc include-file fixes.
	
	* objects-xlike-inc.c (XFUN):
	* objects-xlike-inc.c (xlistfonts_checking_charset):
	Combine some ifdeffed stuff using defs in console-xlike-inc.h.
	
	* redisplay-gtk.c:
	* redisplay-gtk.c (THIS_IS_GTK):
	* redisplay-gtk.c (XLIKE_bevel_area):
	* redisplay-gtk.c (XLIKE_ring_bell):
	* redisplay-gtk.c (gdk_draw_text_image):
	Fix numerous compile problems.  Delete gtk_output_shadows(),
	which mostly duplicates generic bevel_modeline().  Fix up
	gtk_bevel_modeline() into XLIKE_bevel_area() and make use of
	the style var properly to set the appropriate GTK constant.
	
	* redisplay-x.c:
	* redisplay-x.c (XLIKE_window_output_begin):
	* redisplay-x.c (XLIKE_window_output_end):
	* redisplay-x.c (XLIKE_bevel_area):
	* redisplay-x.c (x_output_shadows):
	* redisplay-x.c (XLIKE_ring_bell):
	Make x_output_shadows be static.  Change the defn of various
	functions to look like XLIKE_foo() so it matches the calling
	convention elsewhere.
	
	* redisplay-xlike-inc.c:
	* redisplay-xlike-inc.c (NEED_GCCACHE_H):
	* redisplay-xlike-inc.c (XLIKE_text_width):
	* redisplay-xlike-inc.c (XLIKE_get_gc):
	* redisplay-xlike-inc.c (XLIKE_text_width_single_run):
	* redisplay-xlike-inc.c (XFT_FROB_LISP_COLOR):
	* redisplay-xlike-inc.c (XLIKE_output_xlike_pixmap):
	* redisplay-xlike-inc.c (XLIKE_output_pixmap):
	* redisplay-xlike-inc.c (XLIKE_output_vertical_divider):
	* redisplay-xlike-inc.c (XLIKE_flash):
	Lots of header fixes.  Lots of stuff moved to console-xlike-inc.h.
	Use XFUN() to generate function names instead of directly
	calling XLIKE_PASTE().  Remove unnecessary prototypes.
	Unify calls to text_width funs.  Make XLIKE_get_gc non-static
	since it's called from gtk.  Change the color-function calls
	and fill-style-setting calls to match the changes in
	console-xlike-inc.h.  Use USED() to avoid some warnings.
	
	* symsinit.h:
	Sort the prototypes, and add a fun `sort-symsinit' in a comment
	that does the sorting (using sort-regexp-fields).
	
	* symsinit.h (init_number):
	
	
	* sysgtk.h: New file, wraps the various GTK headers.
	* sysgdkx.h: New file, wraps <gtk/gdkx.h>.  Keep this separate to
	* event-gtk.h: Delete.  Combine stuff into console-gtk.h.
	help isolate X-specific code from GTK.

	* device-gtk.c:
	* event-gtk.c:
	* console-gtk.h:
	* frame-gtk.c:
	* gccache-gtk.c:
	* gccache-gtk.h:
	* glyphs-gtk.c (gtk_colorize_image_instance):
	* glyphs-gtk.h:
	* gtk-xemacs.h:
	* objects-gtk.c:
	* objects-gtk.c (MAX_FONT_COUNT):
	* ui-gtk.h:
	Use sysgtk.h or sysgdkx.h instead of directly including GTK
	headers.  Don't include event-gtk.h.

2010-02-01  Ben Wing  <ben@xemacs.org>

	* abbrev.c (abbrev_match_mapper):
	* buffer.h (CANON_TABLE_OF):
	* buffer.h:
	* editfns.c (Fchar_equal):
	* minibuf.c (scmp_1):
	* text.c (qxestrcasecmp_i18n):
	* text.c (qxestrncasecmp_i18n):
	* text.c (qxetextcasecmp):
	* text.c (qxetextcasecmp_matching):
	Create new macro CANONCASE that converts to a canonical mapping
	and use it to do caseless comparisons instead of DOWNCASE.
	
	* alloc.c:
	* alloc.c (cons_equal):
	* alloc.c (vector_equal):
	* alloc.c (string_equal):
	* bytecode.c (compiled_function_equal):
	* chartab.c (char_table_entry_equal):
	* chartab.c (char_table_equal):
	* data.c (weak_list_equal):
	* data.c (weak_box_equal):
	* data.c (ephemeron_equal):
	* device-msw.c (equal_devmode):
	* elhash.c (hash_table_equal):
	* events.c (event_equal):
	* extents.c (properties_equal):
	* extents.c (extent_equal):
	* faces.c:
	* faces.c (face_equal):
	* faces.c (face_hash):
	* floatfns.c (float_equal):
	* fns.c:
	* fns.c (bit_vector_equal):
	* fns.c (plists_differ):
	* fns.c (Fplists_eq):
	* fns.c (Fplists_equal):
	* fns.c (Flax_plists_eq):
	* fns.c (Flax_plists_equal):
	* fns.c (internal_equal):
	* fns.c (internal_equalp):
	* fns.c (internal_equal_0):
	* fns.c (syms_of_fns):
	* glyphs.c (image_instance_equal):
	* glyphs.c (glyph_equal):
	* glyphs.c (glyph_hash):
	* gui.c (gui_item_equal):
	* lisp.h:
	* lrecord.h (struct lrecord_implementation):
	* marker.c (marker_equal):
	* number.c (bignum_equal):
	* number.c (ratio_equal):
	* number.c (bigfloat_equal):
	* objects.c (color_instance_equal):
	* objects.c (font_instance_equal):
	* opaque.c (equal_opaque):
	* opaque.c (equal_opaque_ptr):
	* rangetab.c (range_table_equal):
	* specifier.c (specifier_equal):
	Add a `foldcase' param to the equal() method and use it to implement
	`equalp' comparisons.  Also add to plists_differ(), although we
	don't currently use it here.

	Rewrite internal_equalp().  Implement cross-type vector comparisons.
	Don't implement our own handling of numeric promotion -- just use
	the `=' primitive.

	Add internal_equal_0(), which takes a `foldcase' param and calls
	either internal_equal() or internal_equalp().
	
	* buffer.h:
	When given a 0 for buffer (which is the norm when functions don't
	have a specific buffer available), use the current buffer's table,
	not `standard-case-table'; otherwise the current settings are
	ignored.
	
	* casetab.c:
	* casetab.c (set_case_table):
	When handling old-style vectors of 256 in `set-case-table' don't
	overwrite the existing table!  Instead create a new table and
	populate.
	
	* device-msw.c (sync_printer_with_devmode):
	* lisp.h:
	* text.c (lisp_strcasecmp_ascii):
	Rename lisp_strcasecmp to lisp_strcasecmp_ascii and use
	lisp_strcasecmp_i18n for caseless comparisons in some places.
	
	* elhash.c:
	Delete unused lisp_string_hash and lisp_string_equal().
	
	* events.h:
	* keymap-buttons.h:
	* keymap.h:
	* keymap.c (keymap_lookup_directly):
	* keymap.c (keymap_store):
	* keymap.c (FROB):
	* keymap.c (key_desc_list_to_event):
	* keymap.c (describe_map_mapper):
	* keymap.c (INCLUDE_BUTTON_ZERO):
	New file keymap-buttons.h; use to handle buttons 1-26 in place of
	duplicating code 26 times.
	
	* frame-gtk.c (allocate_gtk_frame_struct):
	* frame-msw.c (mswindows_init_frame_1):
	Fix some comments about internal_equal() in redisplay that don't
	apply any more.
	
	* keymap-slots.h:
	* keymap.c:
	New file keymap-slots.h.  Use it to notate the slots in a keymap
	structure, similar to frameslots.h or coding-system-slots.h.
	
	* keymap.c (MARKED_SLOT):
	* keymap.c (keymap_equal):
	* keymap.c (keymap_hash):
	Implement.
	
2010-02-01  Ben Wing  <ben@xemacs.org>

	* syntax.c:
	* syntax.c (scan_lists):
	* syntax.c (syms_of_syntax):
	Declare `scan-error' as a type of `syntax-error'.  In `scan-lists'
	et al., don't signal a syntax error but instead a `scan-error', and
	pass a couple of integer arguments, for GNU compatibility.  Fixes
	problems with typing double-quote in texinfo.el.

2010-01-31  Aidan Kehoe  <kehoea@parhasard.net>

	* symbols.c (Fspecial_operator_p, syms_of_symbols):
	* eval.c (print_subr, Finteractive_p, Ffuncall)
	(Ffunction_min_args, Ffunction_max_args, vars_of_eval):
	* editfns.c:
	* data.c (Fsubr_max_args):
	* doc.c (Fbuilt_in_symbol_file):
	Change "special form" to "special operator" in our sources.

2010-01-31  Aidan Kehoe  <kehoea@parhasard.net>

	* search.c (search_buffer): 
	When checking the octets of c for identity, don't compare the
	same octet with itself. Thank you Ben Wing!

2010-01-30  Ben Wing  <ben@xemacs.org>

	* intl-auto-encap-win32.c:
	* intl-auto-encap-win32.c (qxeExtractAssociatedIcon):
	* intl-auto-encap-win32.c (qxeExtractIconEx):
	* intl-auto-encap-win32.c (qxeCreateMDIWindow):
	* intl-auto-encap-win32.c (qxeCreateWindowStation):
	* intl-auto-encap-win32.c (qxeDdeCreateStringHandle):
	* intl-auto-encap-win32.c (qxeAbortSystemShutdown):
	* intl-auto-encap-win32.c (qxeRegConnectRegistry):
	* intl-auto-encap-win32.c (qxeGetICMProfile):
	* intl-auto-encap-win32.h:
	Rebuild.
	
	* intl-encap-win32.c:
	* intl-encap-win32.c (qxeUpdateICMRegKey):
	Delete manual definitions of functions with former errors in
	Cygwin headers but no longer.  Use "override" with some functions
	where Cygwin or VS6 accidentally omits a const declaration or
	includes an extra one.  Use "no" on SendMessageTimeout, which
	has an error in the VS6 prototype (you could manually fix this
	with an ifdef to split the Cygwin vs. VS6 calls, if we ever
	actually used this function).

2010-01-30  Aidan Kehoe  <kehoea@parhasard.net>

	* search.c (search_buffer):
	Don't use Boyer-Moore for case-insensitive search if the search
	pattern contains repeated Ibytes and the corresponding character
	has case information (or, equivalently, if one of its case
	equivalents would contain repeated Ibytes).

2010-01-31  Aidan Kehoe  <kehoea@parhasard.net>

	Move #'mapcar*, #'mapcan, #'mapc, #'map, #'mapl, #'mapcon to C;
	extend #'mapvector, #'mapconcat, #'mapcar to support more
	SEQUENCES; have them all error with circular lists.

	* fns.c (Fsubseq): Call CHECK_SEQUENCE here; Flength can return
	from the debugger if it errors with a non-sequence, leading to a
	crash in Fsubseq if sequence really is *not* a sequence.
	(mapcarX): Rename mapcar1 to mapcarX; rework it comprehensively to
	take an optional lisp output argument, and a varying number of
	sequences.
	Special-case a single list argument, as we used to, saving its
	elements in the stack space for the results before calling
	FUNCTION, so FUNCTION can corrupt the list all it
	wants. dead_wrong_type_argument() in the other cases if we
	encounter a non-cons where we expected a cons.
	(Fmapconcat):
	Accept further SEQUENCES after separator here. Special-case
	the idiom (mapconcat 'identity SEQUENCE), don't even funcall.
	(FmapcarX): Rename this from Fmapcar. Accept optional SEQUENCES.
	(Fmapvector): Accept optional SEQUENCES.
	(Fmapcan, Fmapc, Fmap): Move these here from cl-extra.el.
	(Fmap_into): New function, as specified by Common Lisp.
	(maplist): New function, the guts of the implementation of
	Fmaplist and Fmapl. 
	(Fmaplist, Fmapl, Fmapcon): Move these from cl-extra.el.
	(syms_of_fns):
	Add a few needed symbols here, for the type tests
	used by #'map. Add the new subrs, with aliases for #'mapc-internal
	and #'mapcar.

	* general-slots.h: Declare Qcoerce here, now it's used in both
	indent.c and fns.c
	* indent.c (syms_of_indent): Qcoerce is gone from here.

	* lisp.h: Add ARRAYP(), SEQUENCEP(), and the corresponding CHECK_*
	macros. Declare Fbit_vector, Fstring, FmapcarX, now other files
	need to use them.
	* data.c (Farrayp, Fsequencep): Use ARRAYP and SEQUENCEP, just
	added to lisp.h

	* buffer.c (Fbuffer_list): Now Fmapcar has been renamed FmapcarX
	and takes MANY arguments, update this function to reflect that.

2010-01-28  Jerry James  <james@xemacs.org>

	* Makefile.in.in: Remove internationalization rules, since the
	lib-src programs they invoke are now gone.

2010-01-29  Ben Wing  <ben@xemacs.org>

	* search.c (boyer_moore): Fix longstanding bug involving
	searching for Control-1 chars; code was trying to directly
	extract the last byte in the textual representation of a char
	from an Ichar (and doing it in a buggy fashion) rather than 
	just converting the Ichar to text and looking at the last byte.

2010-01-28  Ben Wing  <ben@xemacs.org>

	* syswindows.h:
	Add typedefs for PCVOID and PDWORD_PTR for non-Cygwin-headers folks
	(i.e. Visual Studio et al.).

2010-01-27  Aidan Kehoe  <kehoea@parhasard.net>

	* number.c (Fdenominator): 
	Oops, change #else to #endif here; thank you Vin Shelton, thank
	you Robert Delius Royar.

2010-01-28  Ben Wing  <ben@xemacs.org>

	* device-x.c (x_init_device):
	* emodules.c (emodules_load):
	* emodules.c (emodules_doc_subr):
	* emodules.c (emodules_doc_sym):
	* emodules.h:
	Make the externally-called functions emodules_doc_sym() and
	emodules_doc_subr() take Ascbyte * pointers since they're usually
	passed string constants and we can't guarantee the encoding if
	it's not ASCII.  Fix pointer type in calls to dll_variable(), etc.

2010-01-27  Ben Wing  <ben@xemacs.org>

	* lread.c (vars_of_lread):
	Turn on load-ignore-out-of-date-elc-files by default.

2010-01-27  Ben Wing  <ben@xemacs.org>

	* event-unixoid.c (read_event_from_tty_or_stream_desc):
	Don't try to write one byte into a four-byte variable, leaving
	the rest undefined.  This is a recipe for crashing.

2010-01-27  Ben Wing  <ben@xemacs.org>

	* .gdbinit.in.in:
	* README:
	* abbrev.c (write_abbrev):
	* abbrev.c (describe_abbrev):
	* alloc.c (make_extstring):
	* alloc.c (build_istring):
	* alloc.c (build_cistring):
	* alloc.c (build_ascstring):
	* alloc.c (build_extstring):
	* alloc.c (build_msg_istring):
	* alloc.c (build_defer_istring):
	* buffer.c (Fgenerate_new_buffer_name):
	* buffer.c (init_buffer_2):
	* console-tty.c (tty_init_console):
	* console-x.c (get_display_arg_connection):
	* console-x.c (x_perhaps_init_unseen_key_defaults):
	* database.c (dbm_map):
	* database.c (dbm_get):
	* database.c (berkdb_get):
	* database.c (berkdb_map):
	* device-gtk.c (FROB_PIXMAP):
	* device-gtk.c (Fgtk_style_info):
	* device-msw.c (msprinter_default_printer):
	* device-msw.c (sync_printer_with_devmode):
	* device-x.c (coding_system_of_xrm_database):
	* device-x.c (x_init_device):
	* device-x.c (signal_if_x_error):
	* device-x.c (Fx_get_resource):
	* device-x.c (Fx_server_vendor):
	* device-x.c (Fx_get_font_path):
	* dialog-x.c (maybe_run_dbox_text_callback):
	* doc.c (extract_object_file_name):
	* doc.c (unparesseuxify_doc_string):
	* doc.c (get_doc_string):
	* doc.c (get_object_file_name):
	* doc.c (Fdocumentation):
	* doc.c (Fsnarf_documentation):
	* doc.c (Fsubstitute_command_keys):
	* editfns.c (init_editfns):
	* editfns.c (Ftemp_directory):
	* editfns.c (Fuser_login_name):
	* editfns.c (Fuser_real_login_name):
	* editfns.c (Fuser_home_directory):
	* editfns.c (Fformat_time_string):
	* editfns.c (Fcurrent_time_string):
	* editfns.c (Fcurrent_time_zone):
	* emacs.c:
	* emacs.c (main_1):
	* emodules.c (Flist_modules):
	* emodules.c (emodules_load):
	* emodules.c (emodules_doc_sym):
	* emodules.c (vars_of_module):
	* event-Xt.c (x_has_keysym):
	* event-gtk.c (emacs_gtk_format_magic_event):
	* event-gtk.c (dragndrop_data_received):
	* event-gtk.c (gtk_reset_key_mapping):
	* event-msw.c (mswindows_dde_callback):
	* event-msw.c (mswindows_wnd_proc):
	* faces.c (complex_vars_of_faces):
	* file-coding.c (find_coding_system):
	* file-coding.c (setup_eol_coding_systems):
	* file-coding.c (make_coding_system_1):
	* file-coding.c (snarf_coding_system):
	* fileio.c:
	* fileio.c (lisp_strerror):
	* fileio.c (Ffile_name_directory):
	* fileio.c (Ffile_name_as_directory):
	* fileio.c (Fdirectory_file_name):
	* fileio.c (if):
	* fileio.c (Ffile_symlink_p):
	* fileio.c (Fencrypt_string):
	* fileio.c (Fdecrypt_string):
	* filelock.c (lock_file):
	* filelock.c (Ffile_locked_p):
	* floatfns.c (matherr):
	* font-mgr.c (build_fcapi_string):
	* font-mgr.c (make_xlfd_font_regexp):
	* frame-msw.c (mswindows_window_id):
	* frame-msw.c (mswindows_frame_property):
	* frame-x.c:
	* frame-x.c (color_to_string):
	* frame-x.c (maybe_set_frame_title_format):
	* frame-x.c (x_cde_transfer_callback):
	* frame-x.c (Fx_window_id):
	* glade.c (connector):
	* glade.c (Fglade_xml_textdomain):
	* glade.c (syms_of_glade):
	* glyphs-eimage.c (jpeg_instantiate):
	* glyphs-eimage.c (png_instantiate):
	* glyphs-eimage.c (tiff_instantiate):
	* glyphs-gtk.c (font_instantiate):
	* glyphs-gtk.c (BUILD_GLYPH_INST):
	* glyphs-x.c (x_locate_pixmap_file):
	* glyphs-x.c (font_instantiate):
	* glyphs-x.c (x_widget_property):
	* glyphs-x.c (BUILD_GLYPH_INST):
	* glyphs.c (print_image_instance):
	* glyphs.c (bitmap_to_lisp_data):
	* glyphs.c (pixmap_to_lisp_data):
	* gpmevent.c (turn_off_gpm):
	* gpmevent.c (Fgpm_enabled_p):
	* gpmevent.c (Fgpm_enable):
	* gtk-glue.c (__make_string_mapper):
	* gtk-glue.c (xemacs_gtklist_to_list):
	* gtk-xemacs.c (FROB_FACE):
	* gtk-xemacs.c (xemacs_gtk_convert_color):
	* hpplay.c (player_error_internal):
	* hpplay.c (myHandler):
	* insdel.c (buffer_insert_ascstring_1):
	* insdel.h:
	* insdel.h (buffer_insert_ascstring):
	* intl.c (Fcurrent_locale):
	* intl.c (Fset_current_locale):
	* keymap.c (make_key_description):
	* keymap.c (Ftext_char_description):
	* keymap.c (describe_command):
	* keymap.c (describe_map):
	* lisp.h:
	* lread.c:
	* lread.c (locate_file_in_directory_mapper):
	* lread.c (locate_file_construct_suffixed_files_mapper):
	* mule-charset.c (Fmake_charset):
	* nt.c (Fmswindows_short_file_name):
	* nt.c (Fmswindows_long_file_name):
	* objects-gtk.c (__get_gtk_font_truename):
	* objects-gtk.c (__gtk_font_list_internal):
	* objects-msw.c (font_enum_callback_2):
	* objects-msw.c (create_hfont_from_font_spec):
	* objects-msw.c (mswindows_font_list):
	* objects-msw.c (mswindows_font_spec_matches_charset_stage_2):
	* objects-tty.c (tty_initialize_font_instance):
	* objects-x.c (x_font_truename):
	* objects-x.c (x_font_instance_truename):
	* objects-x.c (x_font_instance_properties):
	* objects-x.c (x_font_list):
	* print.c (write_cistring):
	* print.c (print_vector_internal):
	* print.c (print_cons):
	* process-nt.c (nt_canonicalize_host_name):
	* process-unix.c (unix_create_process):
	* process-unix.c (unix_canonicalize_host_name):
	* process.c (status_message):
	* process.c (status_notify):
	* process.c (init_xemacs_process):
	* process.c (syms_of_process):
	* redisplay-tty.c (term_get_fkeys_1):
	* redisplay-tty.c (CONDITIONAL_REASSIGN):
	* search.c (compile_pattern_1):
	* select-common.h (selection_data_to_lisp_data):
	* select-gtk.c (atom_to_symbol):
	* select-gtk.c (PROCESSING_GTK_CODE):
	* select-msw.c (mswindows_get_foreign_selection):
	* select-x.c (x_atom_to_symbol):
	* select-x.c (Fx_get_cutbuffer_internal):
	* symbols.c (intern_istring):
	* symbols.c (intern):
	* symbols.c (intern_converting_underscores_to_dashes):
	* symbols.c (Fintern):
	* sysdep.c (init_system_name):
	* sysdll.c (dll_error):
	* sysdll.c (dll_open):
	* syswindows.h:
	* syswindows.h (build_tstr_string):
	* tests.c (DFC_CHECK_LENGTH):
	* tests.c (DFC_CHECK_CONTENT):
	* tests.c (DFC_RESULT_PASS):
	* tests.c (Ftest_data_format_conversion):
	* text.c:
	* text.c (new_dfc_convert_now_damn_it):
	* text.h:
	* text.h (build_wext_string):
	* tooltalk.c (tt_build_c_string):
	* tooltalk.c (Ftooltalk_default_procid):
	* tooltalk.c (Ftooltalk_default_session):
	* tooltalk.c (init_tooltalk):
	* ui-byhand.c (Fgtk_clist_get_text):
	* ui-byhand.c (Fgtk_clist_get_pixtext):
	* ui-byhand.c (Fgtk_label_get):
	* ui-byhand.c (Fgtk_notebook_query_tab_label_packing):
	* ui-gtk.c (emacs_gtk_object_printer):
	* ui-gtk.c (emacs_gtk_boxed_printer):
	* ui-gtk.c (gtk_type_to_lisp):
	* ui-gtk.c (symbol_to_enum):
	* ui-gtk.c (enum_to_symbol):
	* unexaix.c (report_error):
	* unexaix.c (ERROR0):
	* unexec.c (report_error):
	* unexec.c (ERROR0):
	* unicode.c (unicode_to_ichar):
	* win32.c (tstr_to_local_file_format):
	* win32.c (Fmswindows_cygwin_to_win32_path):
	* win32.c (struct read_link_hash):
	* xemacs.def.in.in:

	Rename:

	write_c_string -> write_cistring
	build_intstring -> build_istring
	build_string -> build_cistring
	build_ext_string -> build_extstring
	make_ext_string -> make_extstring
	buffer_insert_c_string -> buffer_insert_ascstring
	intern_int -> intern_istring

	These functions have been renamed so that the naming harmonizes
	with the typedefs for strings: `cistring' along with CIbyte *,
	`istring' along with Ibyte *, `extstring' along with Extbyte *,
	`ascstring' along with Ascbyte *.

	Also make buffer_insert_ascstring take Ascbyte * and assert
	that its argument is ASCII.

2010-01-26  Ben Wing  <ben@xemacs.org>

	* alloc.c:
	* alloc.c (build_ascstring):
	* alloc.c (build_msg_cistring):
	* alloc.c (staticpro_1):
	* alloc.c (staticpro_name):
	* alloc.c (staticpro_nodump_1):
	* alloc.c (staticpro_nodump_name):
	* alloc.c (unstaticpro_nodump_1):
	* alloc.c (mcpro_1):
	* alloc.c (mcpro_name):
	* alloc.c (object_memory_usage_stats):
	* alloc.c (common_init_alloc_early):
	* alloc.c (init_alloc_once_early):
	* buffer.c (print_buffer):
	* buffer.c (vars_of_buffer):
	* buffer.c (common_init_complex_vars_of_buffer):
	* buffer.c (init_initial_directory):
	* bytecode.c (invalid_byte_code):
	* bytecode.c (print_compiled_function):
	* bytecode.c (mark_compiled_function):
	* chartab.c (print_table_entry):
	* chartab.c (print_char_table):
	* config.h.in:
	* console-gtk.c:
	* console-gtk.c (gtk_device_to_console_connection):
	* console-gtk.c (gtk_semi_canonicalize_console_connection):
	* console-gtk.c (gtk_canonicalize_console_connection):
	* console-gtk.c (gtk_semi_canonicalize_device_connection):
	* console-gtk.c (gtk_canonicalize_device_connection):
	* console-stream.c (stream_init_frame_1):
	* console-stream.c (vars_of_console_stream):
	* console-stream.c (init_console_stream):
	* console-x.c (x_semi_canonicalize_console_connection):
	* console-x.c (x_semi_canonicalize_device_connection):
	* console-x.c (x_canonicalize_device_connection):
	* console-x.h:
	* data.c (eq_with_ebola_notice):
	* data.c (Fsubr_interactive):
	* data.c (Fnumber_to_string):
	* data.c (digit_to_number):
	* device-gtk.c (gtk_init_device):
	* device-msw.c (print_devmode):
	* device-x.c (x_event_name):
	* dialog-msw.c (handle_directory_dialog_box):
	* dialog-msw.c (handle_file_dialog_box):
	* dialog-msw.c (vars_of_dialog_mswindows):
	* doc.c (weird_doc):
	* doc.c (Fsnarf_documentation):
	* doc.c (vars_of_doc):
	* dumper.c (pdump):
	* dynarr.c:
	* dynarr.c (Dynarr_realloc):
	* editfns.c (Fuser_real_login_name):
	* editfns.c (get_home_directory):
	* elhash.c (print_hash_table_data):
	* elhash.c (print_hash_table):
	* emacs.c (main_1):
	* emacs.c (vars_of_emacs):
	* emodules.c:
	* emodules.c (_emodules_list):
	* emodules.c (Fload_module):
	* emodules.c (Funload_module):
	* emodules.c (Flist_modules):
	* emodules.c (find_make_module):
	* emodules.c (attempt_module_delete):
	* emodules.c (emodules_load):
	* emodules.c (emodules_doc_subr):
	* emodules.c (emodules_doc_sym):
	* emodules.c (syms_of_module):
	* emodules.c (vars_of_module):
	* emodules.h:
	* eval.c (print_subr):
	* eval.c (signal_call_debugger):
	* eval.c (build_error_data):
	* eval.c (signal_error):
	* eval.c (maybe_signal_error):
	* eval.c (signal_continuable_error):
	* eval.c (maybe_signal_continuable_error):
	* eval.c (signal_error_2):
	* eval.c (maybe_signal_error_2):
	* eval.c (signal_continuable_error_2):
	* eval.c (maybe_signal_continuable_error_2):
	* eval.c (signal_ferror):
	* eval.c (maybe_signal_ferror):
	* eval.c (signal_continuable_ferror):
	* eval.c (maybe_signal_continuable_ferror):
	* eval.c (signal_ferror_with_frob):
	* eval.c (maybe_signal_ferror_with_frob):
	* eval.c (signal_continuable_ferror_with_frob):
	* eval.c (maybe_signal_continuable_ferror_with_frob):
	* eval.c (syntax_error):
	* eval.c (syntax_error_2):
	* eval.c (maybe_syntax_error):
	* eval.c (sferror):
	* eval.c (sferror_2):
	* eval.c (maybe_sferror):
	* eval.c (invalid_argument):
	* eval.c (invalid_argument_2):
	* eval.c (maybe_invalid_argument):
	* eval.c (invalid_constant):
	* eval.c (invalid_constant_2):
	* eval.c (maybe_invalid_constant):
	* eval.c (invalid_operation):
	* eval.c (invalid_operation_2):
	* eval.c (maybe_invalid_operation):
	* eval.c (invalid_change):
	* eval.c (invalid_change_2):
	* eval.c (maybe_invalid_change):
	* eval.c (invalid_state):
	* eval.c (invalid_state_2):
	* eval.c (maybe_invalid_state):
	* eval.c (wtaerror):
	* eval.c (stack_overflow):
	* eval.c (out_of_memory):
	* eval.c (print_multiple_value):
	* eval.c (issue_call_trapping_problems_warning):
	* eval.c (backtrace_specials):
	* eval.c (backtrace_unevalled_args):
	* eval.c (Fbacktrace):
	* eval.c (warn_when_safe):
	* event-Xt.c (modwarn):
	* event-Xt.c (modbarf):
	* event-Xt.c (check_modifier):
	* event-Xt.c (store_modifier):
	* event-Xt.c (emacs_Xt_format_magic_event):
	* event-Xt.c (describe_event):
	* event-gtk.c (dragndrop_data_received):
	* event-gtk.c (store_modifier):
	* event-gtk.c (gtk_reset_modifier_mapping):
	* event-msw.c (dde_eval_string):
	* event-msw.c (Fdde_alloc_advise_item):
	* event-msw.c (mswindows_dde_callback):
	* event-msw.c (FROB):
	* event-msw.c (emacs_mswindows_format_magic_event):
	* event-stream.c (external_debugging_print_event):
	* event-stream.c (execute_help_form):
	* event-stream.c (vars_of_event_stream):
	* events.c (print_event_1):
	* events.c (print_event):
	* events.c (event_equal):
	* extents.c (print_extent_1):
	* extents.c (print_extent):
	* extents.c (vars_of_extents):
	* faces.c (print_face):
	* faces.c (complex_vars_of_faces):
	* file-coding.c:
	* file-coding.c (print_coding_system):
	* file-coding.c (print_coding_system_in_print_method):
	* file-coding.c (default_query_method):
	* file-coding.c (find_coding_system):
	* file-coding.c (make_coding_system_1):
	* file-coding.c (chain_print):
	* file-coding.c (undecided_print):
	* file-coding.c (gzip_print):
	* file-coding.c (vars_of_file_coding):
	* file-coding.c (complex_vars_of_file_coding):
	* fileio.c:
	* fileio.c (report_file_type_error):
	* fileio.c (report_error_with_errno):
	* fileio.c (report_file_error):
	* fileio.c (barf_or_query_if_file_exists):
	* fileio.c (vars_of_fileio):
	* floatfns.c (matherr):
	* fns.c (print_bit_vector):
	* fns.c (Fmapconcat):
	* fns.c (add_suffix_to_symbol):
	* fns.c (add_prefix_to_symbol):
	* frame-gtk.c:
	* frame-gtk.c (Fgtk_window_id):
	* frame-x.c (def):
	* frame-x.c (x_cde_transfer_callback):
	* frame.c:
	* frame.c (Fmake_frame):
	* gc.c (show_gc_cursor_and_message):
	* gc.c (vars_of_gc):
	* glyphs-eimage.c (png_instantiate):
	* glyphs-eimage.c (tiff_instantiate):
	* glyphs-gtk.c (gtk_print_image_instance):
	* glyphs-msw.c (mswindows_print_image_instance):
	* glyphs-x.c (x_print_image_instance):
	* glyphs-x.c (update_widget_face):
	* glyphs.c (make_string_from_file):
	* glyphs.c (print_image_instance):
	* glyphs.c (signal_image_error):
	* glyphs.c (signal_image_error_2):
	* glyphs.c (signal_double_image_error):
	* glyphs.c (signal_double_image_error_2):
	* glyphs.c (xbm_mask_file_munging):
	* glyphs.c (pixmap_to_lisp_data):
	* glyphs.h:
	* gui.c (gui_item_display_flush_left):
	* hpplay.c (player_error_internal):
	* hpplay.c (myHandler):
	* intl-win32.c:
	* intl-win32.c (langcode_to_lang):
	* intl-win32.c (sublangcode_to_lang):
	* intl-win32.c (Fmswindows_get_locale_info):
	* intl-win32.c (lcid_to_locale_mule_or_no):
	* intl-win32.c (mswindows_multibyte_to_unicode_print):
	* intl-win32.c (complex_vars_of_intl_win32):
	* keymap.c:
	* keymap.c (print_keymap):
	* keymap.c (ensure_meta_prefix_char_keymapp):
	* keymap.c (Fkey_description):
	* keymap.c (Ftext_char_description):
	* lisp.h:
	* lisp.h (struct):
	* lisp.h (DECLARE_INLINE_HEADER):
	* lread.c (Fload_internal):
	* lread.c (locate_file):
	* lread.c (read_escape):
	* lread.c (read_raw_string):
	* lread.c (read1):
	* lread.c (read_list):
	* lread.c (read_compiled_function):
	* lread.c (init_lread):
	* lrecord.h:
	* marker.c (print_marker):
	* marker.c (marker_equal):
	* menubar-msw.c (displayable_menu_item):
	* menubar-x.c (command_builder_operate_menu_accelerator):
	* menubar.c (vars_of_menubar):
	* minibuf.c (reinit_complex_vars_of_minibuf):
	* minibuf.c (complex_vars_of_minibuf):
	* mule-charset.c (Fmake_charset):
	* mule-charset.c (complex_vars_of_mule_charset):
	* mule-coding.c (iso2022_print):
	* mule-coding.c (fixed_width_query):
	* number.c (bignum_print):
	* number.c (ratio_print):
	* number.c (bigfloat_print):
	* number.c (bigfloat_finalize):
	* objects-msw.c:
	* objects-msw.c (mswindows_color_to_string):
	* objects-msw.c (mswindows_color_list):
	* objects-tty.c:
	* objects-tty.c (tty_font_list):
	* objects-tty.c (tty_find_charset_font):
	* objects-xlike-inc.c (xft_find_charset_font):
	* objects-xlike-inc.c (endif):
	* print.c:
	* print.c (write_istring):
	* print.c (write_ascstring):
	* print.c (Fterpri):
	* print.c (Fprint):
	* print.c (print_error_message):
	* print.c (print_vector_internal):
	* print.c (print_cons):
	* print.c (print_string):
	* print.c (printing_unreadable_object):
	* print.c (print_internal):
	* print.c (print_float):
	* print.c (print_symbol):
	* process-nt.c (mswindows_report_winsock_error):
	* process-nt.c (nt_canonicalize_host_name):
	* process-unix.c (unix_canonicalize_host_name):
	* process.c (print_process):
	* process.c (report_process_error):
	* process.c (report_network_error):
	* process.c (make_process_internal):
	* process.c (Fstart_process_internal):
	* process.c (status_message):
	* process.c (putenv_internal):
	* process.c (vars_of_process):
	* process.h:
	* profile.c (vars_of_profile):
	* rangetab.c (print_range_table):
	* realpath.c (vars_of_realpath):
	* redisplay.c (vars_of_redisplay):
	* search.c (wordify):
	* search.c (Freplace_match):
	* sheap.c (sheap_adjust_h):
	* sound.c (report_sound_error):
	* sound.c (Fplay_sound_file):
	* specifier.c (print_specifier):
	* symbols.c (Fsubr_name):
	* symbols.c (do_symval_forwarding):
	* symbols.c (set_default_buffer_slot_variable):
	* symbols.c (set_default_console_slot_variable):
	* symbols.c (store_symval_forwarding):
	* symbols.c (default_value):
	* symbols.c (defsymbol_massage_name_1):
	* symbols.c (defsymbol_massage_name_nodump):
	* symbols.c (defsymbol_massage_name):
	* symbols.c (defsymbol_massage_multiword_predicate_nodump):
	* symbols.c (defsymbol_massage_multiword_predicate):
	* symbols.c (defsymbol_nodump):
	* symbols.c (defsymbol):
	* symbols.c (defkeyword):
	* symbols.c (defkeyword_massage_name):
	* symbols.c (check_module_subr):
	* symbols.c (deferror_1):
	* symbols.c (deferror):
	* symbols.c (deferror_massage_name):
	* symbols.c (deferror_massage_name_and_message):
	* symbols.c (defvar_magic):
	* symeval.h:
	* symeval.h (DEFVAR_SYMVAL_FWD):
	* sysdep.c:
	* sysdep.c (init_system_name):
	* sysdll.c:
	* sysdll.c (MAYBE_PREPEND_UNDERSCORE):
	* sysdll.c (dll_function):
	* sysdll.c (dll_variable):
	* sysdll.c (dll_error):
	* sysdll.c (dll_open):
	* sysdll.c (dll_close):
	* sysdll.c (image_for_address):
	* sysdll.c (my_find_image):
	* sysdll.c (search_linked_libs):
	* sysdll.h:
	* sysfile.h:
	* sysfile.h (DEFAULT_DIRECTORY_FALLBACK):
	* syswindows.h:
	* tests.c (DFC_CHECK_LENGTH):
	* tests.c (DFC_CHECK_CONTENT):
	* tests.c (Ftest_hash_tables):
	* text.c (vars_of_text):
	* text.h:
	* tooltalk.c (tt_opnum_string):
	* tooltalk.c (tt_message_arg_ival_string):
	* tooltalk.c (Ftooltalk_default_procid):
	* tooltalk.c (Ftooltalk_default_session):
	* tooltalk.c (init_tooltalk):
	* tooltalk.c (vars_of_tooltalk):
	* ui-gtk.c (Fdll_load):
	* ui-gtk.c (type_to_marshaller_type):
	* ui-gtk.c (Fgtk_import_function_internal):
	* ui-gtk.c (emacs_gtk_object_printer):
	* ui-gtk.c (emacs_gtk_boxed_printer):
	* unicode.c (unicode_to_ichar):
	* unicode.c (unicode_print):
	* unicode.c (unicode_query):
	* unicode.c (vars_of_unicode):
	* unicode.c (complex_vars_of_unicode):
	* win32.c:
	* win32.c (mswindows_report_process_error):
	* window.c (print_window):
	* xemacs.def.in.in:

	BASIC IDEA: Further fixing up uses of char * and CIbyte *
	to reflect their actual semantics; Mule-izing some code;
	redoing of the not-yet-working code to handle message translation.
	
	Clean up code to handle message-translation (not yet working).
	Create separate versions of build_msg_string() for working with
	Ibyte *, CIbyte *, and Ascbyte * arguments.  Assert that Ascbyte *
	arguments are pure-ASCII.  Make build_msg_string() be the same
	as build_msg_ascstring().  Create same three versions of GETTEXT()
	and DEFER_GETTEXT().  Also create build_defer_string() and
	variants for the equivalent of DEFER_GETTEXT() when building a
	string.  Remove old CGETTEXT().  Clean up code where GETTEXT(),
	DEFER_GETTEXT(), build_msg_string(), etc. was being called and
	introduce some new calls to build_msg_string(), etc.  Remove
	GETTEXT() from calls to weird_doc() -- we assume that the
	message snarfer knows about weird_doc().  Remove uses of
	DEFER_GETTEXT() from error messages in sysdep.c and instead use
	special comments /* @@@begin-snarf@@@ */ and /* @@@end-snarf@@@ */
	that the message snarfer presumably knows about.
	
	Create build_ascstring() and use it in many instances in place
	of build_string().  The purpose of having Ascbyte * variants is
	to make the code more self-documenting in terms of what sort of
	semantics is expected for char * strings.  In fact in the process
	of looking for uses of build_string(), much improperly Mule-ized
	was discovered.

	Mule-ize a lot of code as described in previous paragraph,
	e.g. in sysdep.c.

	Make the error functions take Ascbyte * strings and fix up a
	couple of places where non-pure-ASCII strings were being passed in
	(file-coding.c, mule-coding.c, unicode.c). (It's debatable whether
	we really need to make the error functions work this way.  It
	helps catch places where code is written in a way that message
	translation won't work, but we may well never implement message
	translation.)

	Make staticpro() and friends take Ascbyte * strings instead of
	raw char * strings.  Create a const_Ascbyte_ptr dynarr type
	to describe what's held by staticpro_names[] and friends,
	create pdump descriptions for const_Ascbyte_ptr dynarrs, and
	use them in place of specially-crafted staticpro descriptions.

	Mule-ize certain other functions (e.g. x_event_name) by correcting
	raw use of char * to Ascbyte *, Rawbyte * or another such type,
	and raw use of char[] buffers to another type (usually Ascbyte[]).

	Change many uses of write_c_string() to write_msg_string(),
	write_ascstring(), etc.

	Mule-ize emodules.c, emodules.h, sysdll.h.

	Fix some un-Mule-ized code in intl-win32.c.
	
	A comment in event-Xt.c and the limitations of the message
	snarfer (make-msgfile or whatever) is presumably incorrect --
	it should be smart enough to handle function calls spread over
	more than one line.  Clean up code in event-Xt.c that was
	written awkwardly for this reason.

	In config.h.in, instead of NEED_ERROR_CHECK_TYPES_INLINES,
	create a more general XEMACS_DEFS_NEEDS_INLINE_DECLS to
	indicate when inlined functions need to be declared in
	xemacs.defs.in.in, and make use of it in xemacs.defs.in.in.
	We need to do this because postgresql.c now calls qxestrdup(),
	which is an inline function.

	Make nconc2() and other such functions MODULE_API and put
	them in xemacs.defs.in.in since postgresql.c now uses them.

	Clean up indentation in lread.c and a few other places.
	
	In text.h, document ASSERT_ASCTEXT_ASCII() and
	ASSERT_ASCTEXT_ASCII_LEN(), group together the stand-in
	encodings and add some more for DLL symbols, function and
	variable names, etc.
	
2010-01-26  Ben Wing  <ben@xemacs.org>

	* .gdbinit.in.in: Allow an argument to check-xemacs and check-temacs
	to check a specific file.

2010-01-24  Ben Wing  <ben@xemacs.org>

	* chartab.c (decode_char_table_range):
	* extents.c (extent_fragment_update):
	* objects-msw.c (initialize_font_instance):
	* process.c (Fgetenv):
	* redisplay-output.c (get_next_display_block):
	Fix warnings about possible use of uninitialized vars.
	
	* compiler.h:
	* compiler.h (REGISTER):
	* event-stream.c (is_scrollbar_event):
	* window.c (window_scrollbar_width):
	* window.c (window_scrollbar_height):
	* window.c (window_left_window_gutter_width):
	* window.c (window_right_window_gutter_width):
	Add USED_IF_SCROLLBARS.  Use it to fix warnings about unused
	vars when --with-scrollbars=no.

	* config.h.in:
	Change comment to explain better why DECLARE_INLINE_HEADER
	is needed.

	* dialog-msw.c:
	* emacs.c (SHEBANG_EXE_PROGNAME_LENGTH):
	* emacs.c (main_1):
	* event-msw.c (struct mswin_message_debug):
	* event-msw.c (debug_output_mswin_message):
	* font-mgr.c:
	* font-mgr.c (Ffc_config_filename):
	* glyphs-msw.c (struct):
	* glyphs-msw.c (bitmap_table):
	* glyphs-x.c (update_widget_face):
	* intl-win32.c (struct lang_to_string):
	* intl-win32.c (lang_to_string_table):
	* nas.c:
	* objects-xlike-inc.c:
	* objects-xlike-inc.c (xft_find_charset_font):
	* syswindows.h:
	* win32.c (mswindows_output_last_error):
	Fix g++ 4.3 complaints about implicit conversions of string
	literals (const char *) to char *.

	* lisp.h:
	G++ 4.3 needs #include <limits> to avoid errors about min/max.
	
	* lisp.h (disabled_assert_with_message):
	Use disabled_assert* whenever asserts are disabled.  Rewrite
	disabled_assert* to avoid complaints about unused vars by
	pretending to use the vars but casting them to (void).
	Remove code that defined assert() weirdly if DEBUG_XEMACS but
	not USE_ASSERTIONS -- configure sets USE_ASSERTIONS automatically
	when DEBUG_XEMACS, and if the user has forced it off, then
	so be it.
	
	* lisp.h (SYMBOL_KEYWORD):
	Put some of the combined `extern Lisp_Object's back under
	the file they are declared in.  Cosmetic fix.
	
	* number.h:
	Remove `extern Lisp_Object' decls that duplicate lisp.h,
	since they have different C vs. C++ linkage.
	
2010-01-21  Ben Wing  <ben@xemacs.org>

	* Makefile.in.in:
	Oops.  Use two hashes for comments in Makefile.in.in.

2010-01-20  Ben Wing  <ben@xemacs.org>

	* symbols.c:
	Add long comment about the types of magic symbols, and the various
	declarations that go along with them.

2010-01-20  Ben Wing  <ben@xemacs.org>

	* .gdbinit.in.in:
	Moved here from etc/.gdbinit.in.
	Put @srcdir@ in various places rather than just `..' whenever
	Makefile.in.in does so.  Fixes various strange crashes and errors
	than occur when using `..'.
	* Makefile.in.in (config-changed):
	Add target, useful when building both Unicode-internal and
	old-Mule workspaces using --srcdir and don't run configure before
	switching from one to the other.

2010-01-20  Ben Wing  <ben@xemacs.org>

	* lrecord.h:
	* lrecord.h (enum lrecord_type):
	* lrecord.h (struct lrecord_implementation):
	Clean up description of finalizer methods.  Clean up and expand
	the long comment at the top of lrecord.h.  Add a section about why
	New-GC requires a bunch of new internal objects to be created (not
	completely understood).

2010-01-20  Ben Wing  <ben@xemacs.org>

	* lisp.h:
	Disable error-checking code in Dynarr_at and related lookup
	functions.  It leads to a crash in the glyph-cachels code under
	Cygwin 1.7 and GCC 3.4.4.  I assume this is a compiler bug since
	the code in question doesn't (or shouldn't) modify anything.
	Changing the code from inline to non-inline didn't help.

2010-01-19  Ben Wing  <ben@xemacs.org>

	* console-impl.h (struct console_methods):
	* console-stream.c (stream_text_width):
	* redisplay-msw.c (mswindows_output_string):
	* redisplay-msw.c (mswindows_text_width):
	* redisplay-tty.c (tty_text_width):
	* redisplay-xlike-inc.c (XLIKE_text_width):
	* redisplay-xlike-inc.c (XLIKE_output_string):
	* redisplay.c:
	* redisplay.c (redisplay_window_text_width_ichar_string):
	* redisplay.c (redisplay_text_width_string):
	Change the text_width method to take a window instead of a frame.
	Needed for Unicode-internal.

2010-01-18  Ben Wing  <ben@xemacs.org>

	* redisplay-gtk.c:
	* redisplay-gtk.c (gtk_bevel_area):
	* redisplay-x.c:
	* redisplay-x.c (THIS_IS_X):
	* redisplay-xlike-inc.c:
	* redisplay-xlike-inc.c (XLIKE_text_width_single_run):
	* redisplay-xlike-inc.c (XLIKE_text_width):
	* redisplay-xlike-inc.c (XLIKE_output_display_block):
	* redisplay-xlike-inc.c (XLIKE_get_gc):
	* redisplay-xlike-inc.c (XLIKE_output_string):
	* redisplay-xlike-inc.c (XLIKE_OUTPUT_XLIKE_PIXMAP):
	* redisplay-xlike-inc.c (XLIKE_output_pixmap):
	* redisplay-xlike-inc.c (XLIKE_output_vertical_divider):
	* redisplay-xlike-inc.c (XLIKE_output_blank):
	* redisplay-xlike-inc.c (XLIKE_output_horizontal_line):
	* redisplay-xlike-inc.c (XLIKE_clear_region):
	* redisplay-xlike-inc.c (XLIKE_output_eol_cursor):
	* redisplay-xlike-inc.c (XLIKE_clear_frame_window):
	* redisplay-xlike-inc.c (XLIKE_clear_frame):
	* redisplay-xlike-inc.c (XLIKE_flash):
	* redisplay-xlike-inc.c (console_type_create_redisplay_XLIKE):
	Move lots more code into redisplay-xlike-inc.c.  Use macros to
	isolate the code that differs among X vs. GTK, to reduce the need
	for ifdefs in the middle of the code.  Now, redisplay-x.c and
	redisplay-gtk.c only contain a few functions whose implementation
	is completely different from one to the other, or which are not
	present at all in one of them.

	GTK code not currently tested, but it has bitrotted somewhat
	any.  Doing this will help keep it less bitrotty.

	* depend: Regenerate.

2010-01-18  Ben Wing  <ben@xemacs.org>

	* redisplay-xlike-inc.c:
	* redisplay-xlike-inc.c (separate_textual_runs_nomule):
	* redisplay-xlike-inc.c (separate_textual_runs_xft_nomule):
	* redisplay-xlike-inc.c (separate_textual_runs_xft_mule):
	* redisplay-xlike-inc.c (separate_textual_runs_mule):
	Break separate_textual_runs_* functions from redisplay-x.c.
	(Code in redisplay-gtk.c should have been identical but was
	bit-rotted.)
	
	* redisplay-gtk.c:
	* redisplay-x.c:
	Delete code, replace with include statement.

	* depend: Regenerate.

2010-01-18  Ben Wing  <ben@xemacs.org>

	* lisp.h:
	* print.c:
	New variable `in_debug_print'.
	
	* alloc.c:
	* alloc.c (free_managed_lcrecord):
	If gc_in_progress and in_debug_print, just return instead of
	crashing. This only happens when the programmer calls debug_print()
	or a variation inside of a debugger, and is probably already
	diagnosing a crash.
	
	* print.c (struct debug_bindings):
	* print.c (debug_prin1_exit):
	* print.c (debug_prin1):
	At entrance, record the old value of in_debug_print in the
	debug_bindings, set up an unwind-protect to restore the old value,
	and set in_debug_print to 1.  In the unwind-protect, restore the
	old value.
	

2010-01-16  Ben Wing  <ben@xemacs.org>

	* win32.c (mswindows_read_link_1):
	Conditionalize COM support on HAVE_MS_WINDOWS because otherwise we
	haven't linked with the appropriate libraries.

2010-01-15  Ben Wing  <ben@xemacs.org>

	* doprnt.c (emacs_doprnt_1):
	Cosmetic: Use Qunbound, not Qnil as second arg to call to
	syntax_error() to get cleaner error message.
	
2010-01-15  Ben Wing  <ben@xemacs.org>

	* intl-encap-win32.c:
	Add `review' lines for all functions seen in the headers that we
	process but not yet associated with an encapsulation command.
	These will cause an error to be signaled if these functions are
	used.
	* intl-auto-encap-win32.c:
	* intl-auto-encap-win32.h:
	Regenerate.

2010-01-15  Ben Wing  <ben@xemacs.org>

	* intl-auto-encap-win32.c:
	* intl-auto-encap-win32.c (qxeExtractAssociatedIcon):
	* intl-auto-encap-win32.c (qxeShellExecuteEx):
	* intl-auto-encap-win32.c (qxeSHFileOperation):
	* intl-auto-encap-win32.c (qxeSHQueryRecycleBin):
	* intl-auto-encap-win32.c (qxeSHEmptyRecycleBin):
	* intl-auto-encap-win32.c (qxeWNetAddConnection):
	* intl-auto-encap-win32.c (qxeWNetAddConnection2):
	* intl-auto-encap-win32.c (qxeWNetAddConnection3):
	* intl-auto-encap-win32.c (qxeWNetCancelConnection):
	* intl-auto-encap-win32.c (qxeWNetCancelConnection2):
	* intl-auto-encap-win32.c (qxeWNetGetConnection):
	* intl-auto-encap-win32.c (qxeWNetUseConnection):
	* intl-auto-encap-win32.c (qxeWNetConnectionDialog1):
	* intl-auto-encap-win32.c (qxeWNetDisconnectDialog1):
	* intl-auto-encap-win32.c (qxeWNetOpenEnum):
	* intl-auto-encap-win32.c (qxeWNetEnumResource):
	* intl-auto-encap-win32.c (qxeWNetGetUniversalName):
	* intl-auto-encap-win32.c (qxeWNetGetUser):
	* intl-auto-encap-win32.c (qxeWNetGetProviderName):
	* intl-auto-encap-win32.c (qxeWNetGetNetworkInformation):
	* intl-auto-encap-win32.c (qxeWNetGetLastError):
	* intl-auto-encap-win32.c (qxeMultinetGetConnectionPerformance):
	* intl-auto-encap-win32.c (qxeAppendMenu):
	* intl-auto-encap-win32.c (qxeCopyAcceleratorTable):
	* intl-auto-encap-win32.c (qxeDlgDirSelectComboBoxEx):
	* intl-auto-encap-win32.c (qxeEnumDesktops):
	* intl-auto-encap-win32.c (qxeEnumWindowStations):
	* intl-auto-encap-win32.c (qxeGetClassInfo):
	* intl-auto-encap-win32.c (qxeGetClassLong):
	* intl-auto-encap-win32.c (qxeGetClassName):
	* intl-auto-encap-win32.c (qxeGetKeyboardLayoutName):
	* intl-auto-encap-win32.c (qxeGetWindowLong):
	* intl-auto-encap-win32.c (qxeGetUserObjectInformation):
	* intl-auto-encap-win32.c (qxeGetWindowTextLength):
	* intl-auto-encap-win32.c (qxeGrayString):
	* intl-auto-encap-win32.c (qxeInsertMenu):
	* intl-auto-encap-win32.c (qxeSetProp):
	* intl-auto-encap-win32.c (qxeEnumICMProfiles):
	* intl-auto-encap-win32.c (qxeExtTextOut):
	* intl-auto-encap-win32.c (qxeSetICMProfile):
	* intl-auto-encap-win32.c (qxeTextOut):
	* intl-auto-encap-win32.c (qxeSHGetPathFromIDList):
	* intl-auto-encap-win32.c (qxeFindText):
	* intl-auto-encap-win32.c (qxeReplaceText):
	* intl-auto-encap-win32.c (qxeImmInstallIME):
	* intl-auto-encap-win32.c (qxeImmGetDescription):
	* intl-auto-encap-win32.c (qxeImmGetIMEFileName):
	* intl-auto-encap-win32.c (qxeImmGetCompositionString):
	* intl-auto-encap-win32.c (qxeImmGetCandidateListCount):
	* intl-auto-encap-win32.c (qxeImmGetCandidateList):
	* intl-auto-encap-win32.c (qxeImmGetGuideLine):
	* intl-auto-encap-win32.c (qxeImmConfigureIME):
	* intl-auto-encap-win32.c (qxeImmEscape):
	* intl-auto-encap-win32.c (qxeImmGetConversionList):
	* intl-auto-encap-win32.c (qxeImmRegisterWord):
	* intl-auto-encap-win32.c (qxeImmUnregisterWord):
	* intl-auto-encap-win32.c (qxeImmEnumRegisterWord):
	* intl-auto-encap-win32.c (qxesndPlaySound):
	* intl-auto-encap-win32.c (qxePlaySound):
	* intl-auto-encap-win32.c (qxewaveOutGetErrorText):
	* intl-auto-encap-win32.c (qxewaveInGetErrorText):
	* intl-auto-encap-win32.c (qxemidiOutGetErrorText):
	* intl-auto-encap-win32.c (qxemidiInGetErrorText):
	* intl-auto-encap-win32.c (qxemmioStringToFOURCC):
	* intl-auto-encap-win32.c (qxemmioInstallIOProc):
	* intl-auto-encap-win32.c (qxemmioOpen):
	* intl-auto-encap-win32.c (qxemmioRename):
	* intl-auto-encap-win32.c (qxemciSendCommand):
	* intl-auto-encap-win32.c (qxemciSendString):
	* intl-auto-encap-win32.c (qxemciGetDeviceID):
	* intl-auto-encap-win32.c (qxemciGetErrorString):
	* intl-auto-encap-win32.h:
	* intl-auto-encap-win32.h (qxemciGetErrorString):
	Regenerate these files from Cygwin headers.
	
	* intl-encap-win32.c:
	Bracket more functions in HAVE_MS_WINDOWS, to fix build problems
	when building --with-msw=no on Cygwin.

	Fixes for Cygwin headers:
	-- Comment out IME.H, non-existent in Cygwin.
	-- Make MessageBoxIndirect a `no' (don't encapsulate but generate
	   error if used) because it has a structure parameter that needs
	   to be A/W split but is declared as FOO*, and our parser can't
	   split this.

2010-01-15  Ben Wing  <ben@xemacs.org>

	* Makefile.in.in:
	Build xemacs-export.o whenever we're on any Windows OS (WIN32_ANY)
	instead of only when we build support for the GUI portion of
	MS-Windows (HAVE_MS_WINDOWS).

	Cosmetic: Use WIN32_ANY in place of equivalent
	(WIN32_NATIVE or CYGWIN).

2010-01-15  Ben Wing  <ben@xemacs.org>

	* emacs.c:
	* emacs.c (debug_can_access_memory):
	When checking for bad memory, we need to read all bytes from memory;
	try even harder to avoid the possibility that a super-optimizing
	compiler will optimize away the memory reads.

2010-01-15  Ben Wing  <ben@xemacs.org>

	* syswindows.h (LOCAL_FILE_FORMAT_TO_TSTR):
	* syswindows.h (LOCAL_FILE_FORMAT_TO_INTERNAL_MSWIN):
	* syswindows.h (INTERNAL_MSWIN_TO_LOCAL_FILE_FORMAT):
	Declare some temporary pointer variables const to avoid compile
	errors under C++ and/or Visual Studio 6.

2010-01-27  Ben Wing  <ben@xemacs.org>

	* casetab.c: Typo in comment.

2010-01-24  Aidan Kehoe  <kehoea@parhasard.net>

	* number.c (Fnumerator, Fdenominator, Fcanonicalize_number):
	Be more careful to return integers in their canonical forms here,
	and to give the same answer all the time when treating a rational
	that is itself is an integer as a ratio.

2010-01-24  Aidan Kehoe  <kehoea@parhasard.net>

	Fix problems with #'eql, extended number types, and the hash table
	implementation; change the Bintegerp bytecode to fixnump semantics
	even on bignum builds, since #'integerp can have a fast
	implementation in terms of #'fixnump for most of its extant uses,
	but not vice-versa.

	* lisp.h: Always #include number.h; we want the macros provided in
	it, even if the various number types are not available.
	* number.h (NON_FIXNUM_NUMBER_P): New macro, giving 1 when its
	argument is of non-immediate number type.  Equivalent to FLOATP if
	WITH_NUMBER_TYPES is not defined.

	* elhash.c (lisp_object_eql_equal, lisp_object_eql_hash):
	Use NON_FIXNUM_NUMBER_P in these functions, instead of FLOATP,
	giving more correct behaviour in the presence of the extended
	number types.
	* bytecode.c (Bfixnump, execute_optimized_program):
	Rename Bintegerp to Bfixnump; change its semantics to reflect the
	new name on builds with bignum support.

	* data.c (Ffixnump, Fintegerp, syms_of_data, vars_of_data): 
	Always make #'fixnump available, even on non-BIGNUM builds;
	always implement #'integerp in this file, even on BIGNUM builds.
	Move most-positive-fixnum, most-negative-fixnum here from
	number.c, so they are Lisp constants even on builds without number
	types, and attempts to change or bind them error.
	Use the NUMBERP and INTEGERP macros even on builds without
	extended number types.
	* data.c (fixnum_char_or_marker_to_int):
	Rename this function from integer_char_or_marker_to_int, to better
	reflect the arguments it accepts.

	* number.c (Fevenp, Foddp, syms_of_number):
	Never provide #'integerp in this file. Remove #'oddp,
	#'evenp; their implementations are overridden by those in cl.el.
	* number.c (vars_of_number):
	most-positive-fixnum, most-negative-fixnum are no longer here.

2010-01-17  Vin Shelton  <acs@xemacs.org>

	* fileio.c (check_writable): Remove cast from 2010-01-14

	* syswindows.h: Use consts in macros where appropriate in lieu of
	cast in check_writable().  Patch from Ben Wing.

2010-01-16  Aidan Kehoe  <kehoea@parhasard.net>

	* config.h.in:
	* floatfns.c (emacs_rint):
	Don't look for rint in configure, always use our own
	implementation that rounds to the even number in the case of
	ambiguity, for consistency with the bignum code.

2010-01-14  Vin Shelton  <acs@xemacs.org>

	* fileio.c (check_writable): Fix compilation error under Visual
	Studio 6.

	* sysfile.h: 
	Add conditional definition for EOVERFLOW, which isn't defined
	under Visual Studio 6.

2010-01-14  Didier Verna  <didier@xemacs.org>

	* faces.c (complex_vars_of_faces): change X11 bgcolor fallback of
	default face to match that of gui element face.

2010-01-14  Ben Wing  <ben@xemacs.org>

	* buffer.h:
	* compiler.h:
	Don't use USED_IF_MULE_OR_CHECK_TEXT in buffer.h.  Eliminate since
	not used anywhere any more.
	
	* font-mgr.c (fontset_to_list):
	* font-mgr.c (Ffc_config_substitute):
	Don't use Fsignal() as it may return.  Use signal_error() instead
	or a more specific function such as invalid_state() or wtaerror().

2010-01-14  Ben Wing  <ben@xemacs.org>

	* syswindows.h: Don't define CYGWIN_HEADERS here.

2010-01-14  Ben Wing  <ben@xemacs.org>

	* s/cygwin32.h:
	* s/mingw32.h:
	Define here instead so it's available in all files.  Fixes
	compile problems in database.c in some cases.

2010-01-14  Ben Wing  <ben@xemacs.org>

	* glyphs-eimage.c:
	Turn on fixes for conflicts between jmorecfg.h and windows.h on
	Cygwin, too.
	
	* emacs.c (debug_can_access_memory):
	* lisp.h:
	Declare function const void * to avoid warnings.
	
	* sysfile.h:
	Include syswindows.h on Windows to avoid problems using things like
	PATHNAME_CONVERT_OUT.
	
	* sysfile.h (X_OK):
	* dialog-msw.c (handle_directory_proc):
	* dialog-msw.c (handle_directory_dialog_box):
	* nt.c (Fmswindows_short_file_name):
	* sysdep.c (qxe_allocating_getcwd):
	* syswindows.h (LOCAL_FILE_FORMAT_TO_TSTR):
	* unexcw.c (unexec):
	* unexnt.c (_start):
	* win32.c (mswindows_read_link_1):
	Rename PATH_MAX_EXTERNAL to PATH_MAX_TSTR to reflect its actual
	semantics.

	* unexcw.c:
	Remove include of syswindows.h that had been added because
	sysfile.h didn't include it.

2010-01-13  Ben Wing  <ben@xemacs.org>

	* specifier.c (specifier_instance_from_inst_list):
	Don't declare an unused variable, (void) 0 is enough.
	
	* text.h:
	Don't use USED_IF_MULE_OR_CHECK_TEXT().

2010-01-13  Ben Wing  <ben@xemacs.org>

	* debug.c (vars_of_debug):
	Provide `debug-xemacs' to signal we have a debug build;
	must do this to get previoug `debug-on-error' change to work.

2010-01-13  Jerry James  <james@xemacs.org>

	* font-mgr.c (Ffc_config_app_font_add_file): Fix parentheses.
	(Ffc_config_app_font_add_dir): Ditto.

2010-01-13  Jerry James  <james@xemacs.org>

	* Makefile.in.in: Remove CYGWIN && !PDUMP section.
	* depend: Regenerated.
	* s/cygwin.sc: Removed.
	* s/cygwin32.h (UNEXEC): Do not define.

2010-01-13  Ben Wing  <ben@xemacs.org>

	* print.c:
	* print.c (internal_object_printer):
	* print.c (enum printing_badness):
	* print.c (printing_major_badness):
	* print.c (print_internal):
	Clean up the part of the code that looks for things that might
	lead to crashing in the print code:
	-- Make the "badness" messages more consistent.
	-- Move the checks for circularities after the checks for bad
	   memory, since the checks for circularities involve accessing
	   memory (which could be bad).
	-- Add an extra check to see if the object's implementation structure
	   is bad memory.
	-- Add extra check for object itself being a null pointer or
	   implementation pointer being null.
	-- Add some extra comments to help in maintaining the code.

2010-01-13  Ben Wing  <ben@xemacs.org>

	* casetab.c (print_case_table):
	* console.c (print_console):
	* data.c (print_weak_list):
	* data.c (print_weak_box):
	* data.c (print_ephemeron):
	* data.c (ephemeron_equal):
	* database.c (print_database):
	* device-msw.c (print_devmode):
	* device.c (print_device):
	* eval.c:
	* file-coding.c (print_coding_system):
	* frame.c (print_frame):
	* glyphs.c (print_image_instance):
	* glyphs.c (print_glyph):
	* gui.c:
	* gui.c (print_gui_item):
	* keymap.c (print_keymap):
	* lisp.h:
	* mule-charset.c (print_charset):
	* objects.c (print_color_instance):
	* objects.c (print_font_instance):
	* print.c:
	* print.c (printing_unreadable_object):
	* print.c (printing_unreadable_lcrecord):
	* print.c (default_object_printer):
	* process.c (print_process):
	* tooltalk.c:
	* tooltalk.c (print_tooltalk_message):
	* tooltalk.c (print_tooltalk_pattern):
	* ui-gtk.c (ffi_object_printer):
	* ui-gtk.c (emacs_gtk_object_printer):
	* ui-gtk.c (emacs_gtk_boxed_printer):
	* window.c (print_window):
	New function printing_unreadable_lcrecord().  Automatically
	prints the type name and pointer value of the object.  Use it
	instead of printing_unreadable_object(); make that latter
	function local to print.c.

	* window.c (print_window):
	During creation, window may have Qt as its buffer. Don't
	crash if trying to print such a window.

2010-01-13  Ben Wing  <ben@xemacs.org>

	* dynarr.c:
	Add comment explaining Dynarr_largest() use.

	* dynarr.c (Dynarr_insert_many):
	In Dynarr_insert_many(), don't call Dynarr_resize() unless we
	actually need to resize, and note that an assert() that we are
	inserting at or below the current end could be wrong if code
	wants to access stuff between `len' and `largest'.

	* dynarr.c (stack_like_malloc):
	Don't just Dynarr_resize() to the right size; instead use
	Dynarr_reset() then Dynarr_add_many(), so that the 'len' and
	'largest' and such get set properly.

	* dynarr.c (Dynarr_insert_many):
	* dynarr.c (Dynarr_delete_many):
	* dynarr.c (Dynarr_memory_usage):
	* dynarr.c (stack_like_free):
	* faces.c (add_face_cachel):
	* gutter.c (output_gutter):
	* lisp.h:
	* lisp.h (Dynarr_declare):
	* lisp.h (Dynarr_length):
	* lisp.h (Dynarr_add):
	* lisp.h (Dynarr_increment):
	* lisp.h (Dynarr_pop):
	* lread.c (define_structure_type):
	* lread.c (define_structure_type_keyword):
	* lrecord.h:
	* lrecord.h (XD_DYNARR_DESC):
	* lrecord.h (XD_LISP_DYNARR_DESC):
	* redisplay-output.c (compare_display_blocks):
	* redisplay-output.c (output_display_line):
	* redisplay.c (add_ichar_rune_1):
	* redisplay.c (create_text_block):
	* redisplay.c (generate_formatted_string_db):
	* redisplay.c (create_string_text_block):
	* redisplay.c (point_visible):
	* redisplay.c (mark_glyph_block_dynarr):
	* redisplay.c (mark_redisplay_structs):
	* redisplay.c (line_start_cache_end):
	* redisplay.c (update_line_start_cache):
	* redisplay.c (glyph_to_pixel_translation):
	* redisplay.c (pixel_to_glyph_translation):
	Rename Dynarr member 'cur' to 'len' since it's the length of
	the dynarr, not really a pointer to a "current insertion point".

	Use type_checking_assert() instead of just assert() in some places.


	Add additional assertions (Dynarr_verify*()) to check that we're
	being given positions within range.  Use them in Dynarr_at,
	Dynarr_atp, etc.  New Dynarr_atp_allow_end() for retrieving a
	pointer to a position that might be the element past the last one.
	New Dynarr_past_lastp() to retrieve a pointer to the position
	past the last one, using Dynarr_atp_allow_end().  Change code
	appropriately to use it.

	Rename Dynarr_end() to Dynarr_lastp() (pointer to the last
	element) for clarity, and change code appropriately to use it.

	Change code appropriately to use Dynarr_begin().
	
	Rewrite Dynarr_add_many().  New version can accept a NULL pointer
	to mean "reserve space but don't put anything in it".  Used by
	stack_like_malloc().


2010-01-13  Ben Wing  <ben@xemacs.org>

	* lisp.h:
	* lisp.h (inline_type_checking_assert):
	Add structure_checking_assert(), gc_checking_assert(), etc. for
	all types of error-checking.  Also FOO_checking_assert_with_message()
	and inline_FOO_checking_assert() -- the latter for use in an inline
	function where you want the calling function's line/file to be reported
	(requires some conspiracy with the function itself).

	Add disabled_assert(), disabled_assert_at_line(),
	disabled_assert_with_message(), for what to do when an assert is
	disabled.  Formerly, we used to do ((void) 0), but now we do
	((void) x), so the variable appears used and any side effects of the
	expression do get done.  In Unicode-internal, the standard assert()
	uses this, but not yet in this workspace.

2010-01-13  Ben Wing  <ben@xemacs.org>

	* cmdloop.c:
	During really-early-error-handler, exit to the debugger and abort
	if an error occurs and 
	* lisp.h: extern Vdebug_on_error.

2010-01-12  Ben Wing  <ben@xemacs.org>

	* sheap.c:
	* sheap.c (more_static_core): 
	Increase STATIC_HEAP_SLOP.
	Change heap-exhausted error message to mention the computed
	static heap size.
	
	* unexcw.c: Include syswindows.h to avoid compile error.

	* file-coding.c (default_query_method): Single = is intended.
	Rewrite using comma operator to make this clearer and avoid
	dependency on the value of an enum.

2010-01-11  Ben Wing  <ben@xemacs.org>

	* database.c:
	* intl-encap-win32.c (qxeUpdateICMRegKey):
	Cosmetic fixes.
	
	* device-x.c (signal_if_x_error):
	* editfns.c (Fformat_time_string):
	* editfns.c (Fencode_time):
	* editfns.c (Fcurrent_time_zone):
	* editfns.c (Fset_time_zone_rule):
	* event-gtk.c (gtk_reset_key_mapping):
	* fileio.c (Fsysnetunam):
	* font-mgr.c:
	* font-mgr.c (Ffc_config_app_font_add_dir):
	* font-mgr.c (Ffc_config_filename):
	* glyphs-eimage.c (my_jpeg_output_message):
	* glyphs-eimage.c (jpeg_instantiate):
	* glyphs-shared.c (read_bitmap_data_from_file):
	* glyphs-x.c (x_redisplay_widget):
	* glyphs-x.c (x_widget_instantiate):
	* glyphs-x.c (x_widget_property):
	* glyphs-x.c (x_tab_control_redisplay):
	* hpplay.c (player_error_internal):
	* hpplay.c (play_sound_file):
	* hpplay.c (play_sound_data):
	* process-unix.c:
	* process-unix.c (unix_canonicalize_host_name):
	* process.c (init_xemacs_process):
	* sound.h (sound_perror):
	* sysdep.c:
	* sysdep.c (qxe_execve):
	* sysdep.c (copy_in_passwd):
	* sysdep.c (qxe_getpwnam):
	* sysdep.c (qxe_ctime):
	* sysdll.c (dll_error):
	* sysdll.c (dll_open):
	* tooltalk.c (check_status):
	* tooltalk.c (Fadd_tooltalk_message_arg):
	* tooltalk.c (Fadd_tooltalk_pattern_attribute):
	* tooltalk.c (Fadd_tooltalk_pattern_arg):
	Change all occurrences of Qnative to some more specific encoding.
	Create Qtime_function_encoding, Qtime_zone_encoding,
	Quser_name_encoding, Qerror_message_encoding,
	Qjpeg_error_message_encoding, Qtooltalk_encoding, Qgtk_encoding,
	Qx_error_message_encoding.

	* intl-win32.c (init_intl_win32):
	Provide cygwin-use-utf-8 if this is the case.

	* fileio.c (Ffile_truename):
	* realpath.c:
	* syswindows.h (LOCAL_FILE_FORMAT_TO_TSTR):
	* syswindows.h (TSTR_TO_LOCAL_FILE_FORMAT):
	* syswindows.h (LOCAL_FILE_FORMAT_TO_INTERNAL_MSWIN):
	* syswindows.h (INTERNAL_MSWIN_TO_LOCAL_FILE_FORMAT):
	* syswindows.h (LISP_LOCAL_FILE_FORMAT_MAYBE_URL_TO_TSTR):
	* win32.c (urlify_filename):
	* win32.c (tstr_to_local_file_format):
	* win32.c (Fmswindows_cygwin_to_win32_path):
	Rename LOCAL_FILE_FORMAT_TO_INTERNAL_WIN32 and
	INTERNAL_WIN32_TO_LOCAL_FILE_FORMAT to
	LOCAL_FILE_FORMAT_TO_INTERNAL_MSWIN and
	INTERNAL_MSWIN_TO_LOCAL_FILE_FORMAT, since "win32" is a misnomer.

2010-01-11  Ben Wing  <ben@xemacs.org>

	* config.h.in:
	Add def for HAVE_CYGWIN_CONV_PATH.
	
	* dialog-msw.c (handle_directory_dialog_box):
	* dialog-msw.c (handle_file_dialog_box):
	* fileio.c:
	* fileio.c (Ffile_truename):
	* syswindows.h:
	* syswindows.h (CCP_POSIX_TO_WIN_T):
	* syswindows.h (LISP_LOCAL_FILE_FORMAT_TO_TSTR):
	* syswindows.h (INTERNAL_WIN32_TO_LOCAL_FILE_FORMAT):
	* syswindows.h (LISP_LOCAL_FILE_FORMAT_MAYBE_URL_TO_TSTR):
	* win32.c (urlify_filename):
	* win32.c (tstr_to_local_file_format):
	* win32.c (Fmswindows_shell_execute):
	* win32.c (Fmswindows_cygwin_to_win32_path):
	Rename LOCAL_FILE_FORMAT_TO_TSTR to LISP_LOCAL_FILE_FORMAT_TO_TSTR.
	Rename LOCAL_FILE_FORMAT_MAYBE_URL_TO_TSTR to
	LISP_LOCAL_FILE_FORMAT_MAYBE_URL_TO_TSTR.  Both of these renames
	reflect the fact that their 'in' argument is a Lisp object.

	Create new LOCAL_FILE_FORMAT_TO_TSTR that accepts an Ibyte *.

	Rename LOCAL_TO_WIN32_FILE_FORMAT to
	LOCAL_FILE_FORMAT_TO_INTERNAL_WIN32; rename WIN32_TO_LOCAL_FILE_FORMAT
	to INTERNAL_WIN32_TO_LOCAL_FILE_FORMAT similarly.
	This clarifies the fact that the result is a file in MS-Windows format
	rather than POSIX format, but still in internal-format instead of
	UTF-16.

	Fix up the *LOCAL_FILE_FORMAT* functions to use cygwin_conv_path()
	if available.  This converts between a UTF-8 POSIX path and a
	UTF-16 Windows path (or ANSI Windows path, in the increasingly
	unlikely situation that we're using Windows 9x).  Previously, we
	used an old API and operated on internal-format data, because the
	external format was unpredictable.  This doesn't work any more,
	even with the old API (it tries to convert to UTF-8).  So instead,
	when the new API is available we use the new API and operate on
	external-format data.  This necessitates that if we want to convert
	to/from internal-format Windows-style paths, we need to first convert
	to external format, do the conversion, and convert back to
	internal format.  To avoid this, we change some callers of the
	macros to use the right version (internal or external format
	destination) and avoid doing the internal/external conversions
	themselves.

	* realpath.c:
	* fileio.c (check_writable):
	Cosmetic fixes to check_writable.

	Avoid directly calling cygwin_conv_to_full_win32_path
	(fileio.c:check_writable did this) or cygwin_posix_to_win32_path_list
	(realpath.c:readlink_or_correct_case did this); use the
	*LOCAL_FILE_FORMAT* macros instead.

	* fileio.c (Ffile_exists_p):
	* glyphs-msw.c (mswindows_resource_instantiate):
	* sysdll.c (dll_open):
	* sysfile.h:
	* sysfile.h (PATHNAME_CONVERT_OUT_TSTR):
	Add PATHNAME_CONVERT_OUT_TSTR and PATHNAME_CONVERT_OUT_UTF_8 for
	conversion involving specified coding systems rather than `file-name'.
	Use them in *LOCAL_FILE_FORMAT* macros.

	* emacs.c (main_1):
	* symsinit.h:
	* unicode.c:
	New function complex_vars_of_unicode().  In it, create the utf-8
	coding system.  Call it appropriately in emacs.c.  Sort the
	prototypes of complex_vars_of_*() in symsinit.h, for cosmetic
	reasons.
	

2010-01-11  Ben Wing  <ben@xemacs.org>

	* regex.c (re_compile_fastmap):
	The code to compute the fastmap in charset_mule_not was totally
	messed up.  I'm surprised it hasn't led to more visible bugs.

2010-01-11  Ben Wing  <ben@xemacs.org>

	* rangetab.c:
	* rangetab.c (external_to_internal_adjust_ends):
	* rangetab.c (put_range_table):
	* rangetab.c (Fmap_range_table):
	* rangetab.c (struct unified_range_table):
	* rangetab.c (unified_range_table_copy_data):
	* rangetab.c (unified_range_table_get_range):
	Add an entry to unified range tables to keep track of their type.
	Factor out code to adjust the endpoints of ranges between the
	external format (either end can be open or closed) and internal
	format (always closed/open).  Use code also when returning
	ranges out of unified range tables.  Fixes an off-by-one error
	in regex.c where it was getting ranges with an end one greater
	than expected, since it creates closed-closed range tables and
	was getting passed the internal-format ranges.

2010-01-11  Ben Wing  <ben@xemacs.org>

	* config.h.in:
	* config.h.in (ERROR_CHECK_GLYPHS):
	Trying to avoid link errors referring to the ERROR_CHECK_TYPES
	functions, either in eldap.o (if we don't include references to
	ERROR_CHECK_TYPES in xemacs.def.in.in) or xemacs-export.o (if
	we do include such references):
	
	Add line for USE_GPLUSPLUS, set by configure.
	Define INLINE_HEADERS_ARE_STATIC when we add static to inline headers.
	(Possibly used when setting NEED_ERROR_CHECK_TYPES_INLINES.)
	Currently, set NEED_ERROR_CHECK_TYPES_INLINES when ERROR_CHECK_TYPES
	and USE_GPLUSPLUS.
	
	* xemacs.def.in.in:
	Use NEED_ERROR_CHECK_TYPES_INLINES here to bracket things like
	`error_check_cons' instead of just ERROR_CHECK_TYPES.

	* faces.c (complex_vars_of_faces):
	Bracket various font variables with defined(USE_XFT or MULE) to
	avoid warnings.
	
	* fileio.c:
	Make sure the `expand-file-name' handler returns a string, to
	avoid a potential crash.
	
	* floatfns.c (round_one_bigfloat_1):
	#if-0 out an assert that can never be triggered and which
	generates warnings "dereferencing type-punned pointer will break
	strict-aliasing rules".
	
	* redisplay-x.c (separate_textual_runs_nomule):
	Remove unused variable in non-Mule case.
	
	* specifier.c (charset_matches_specifier_tag_set_p):
	Variable CHARSET is unused when not Mule.
	
	* specifier.c (specifier_instance_from_inst_list):
	Add a comment questioning why font-specific stuff is littering
	specifier.c.
	
	* syswindows.h:
	Expand on the comments on a #if 0 I added in a previous patch.
	
	* vdb-win32.c:
	* vdb-win32.c (win32_fault_handler):
	* vdb-win32.c (vdb_install_signal_handler):
	Change return type to LONG instead of DWORD to avoid warning or
	error.
	
2010-01-11  Ben Wing  <ben@xemacs.org>

	* database.c: Cygwin prototypes in ndbm.h are incomplete and
	cause C++ compile errors; fix them.
	
	* fileio.c (check_writable):
	Fix compile errors.  Also move the call to C_STRING_TO_TSTR
	earlier, which is probably wrong, but fixed in a later patch.
	
	* intl-encap-win32.c (qxeGetICMProfile):
	Ifdef out a fix to work around a previous bogosity in Cygwin
	header files which has now been fixed.  Keeping in the fix
	led to compile errors. #### Proper way to do it is to figure
	out when it got fixed, perhaps put in a configure test, but it
	seems not worth it.
	
	* intl-encap-win32.c (qxeUpdateICMRegKey):
	Cosmetic change, undone in a later patch.
	* mule-charset.c (Fset_charset_ccl_program):
	Remove unused variable.
	* nas.c:
	#if-0 out some unused static code to avoid a warning.
	* syswindows.h:
	Don't declare prototypes for GetCurrentFiber and GetFiberData,
	it causes a compile error.
	* unicode.c (unicode_query):
	invalid_lower_limit might have been used uninitted, so initialize it.

2010-01-11  Ben Wing  <ben@xemacs.org>

	* config.h.in:
	Add def for HAVE_CYGWIN_CONV_PATH.
	
	* dialog-msw.c (handle_directory_dialog_box):
	* dialog-msw.c (handle_file_dialog_box):
	* fileio.c:
	* fileio.c (Ffile_truename):
	* syswindows.h:
	* syswindows.h (CCP_POSIX_TO_WIN_T):
	* syswindows.h (LISP_LOCAL_FILE_FORMAT_TO_TSTR):
	* syswindows.h (INTERNAL_WIN32_TO_LOCAL_FILE_FORMAT):
	* syswindows.h (LISP_LOCAL_FILE_FORMAT_MAYBE_URL_TO_TSTR):
	* win32.c (urlify_filename):
	* win32.c (tstr_to_local_file_format):
	* win32.c (Fmswindows_shell_execute):
	* win32.c (Fmswindows_cygwin_to_win32_path):
	Rename LOCAL_FILE_FORMAT_TO_TSTR to LISP_LOCAL_FILE_FORMAT_TO_TSTR.
	Rename LOCAL_FILE_FORMAT_MAYBE_URL_TO_TSTR to
	LISP_LOCAL_FILE_FORMAT_MAYBE_URL_TO_TSTR.  Both of these renames
	reflect the fact that their 'in' argument is a Lisp object.

	Create new LOCAL_FILE_FORMAT_TO_TSTR that accepts an Ibyte *.

	Rename LOCAL_TO_WIN32_FILE_FORMAT to
	LOCAL_FILE_FORMAT_TO_INTERNAL_WIN32; rename WIN32_TO_LOCAL_FILE_FORMAT
	to INTERNAL_WIN32_TO_LOCAL_FILE_FORMAT similarly.
	This clarifies the fact that the result is a file in MS-Windows format
	rather than POSIX format, but still in internal-format instead of
	UTF-16.

	Fix up the *LOCAL_FILE_FORMAT* functions to use cygwin_conv_path()
	if available.  This converts between a UTF-8 POSIX path and a
	UTF-16 Windows path (or ANSI Windows path, in the increasingly
	unlikely situation that we're using Windows 9x).  Previously, we
	used an old API and operated on internal-format data, because the
	external format was unpredictable.  This doesn't work any more,
	even with the old API (it tries to convert to UTF-8).  So instead,
	when the new API is available we use the new API and operate on
	external-format data.  This necessitates that if we want to convert
	to/from internal-format Windows-style paths, we need to first convert
	to external format, do the conversion, and convert back to
	internal format.  To avoid this, we change some callers of the
	macros to use the right version (internal or external format
	destination) and avoid doing the internal/external conversions
	themselves.

	* realpath.c:
	* fileio.c (check_writable):
	Cosmetic fixes to check_writable.

	Avoid directly calling cygwin_conv_to_full_win32_path
	(fileio.c:check_writable did this) or cygwin_posix_to_win32_path_list
	(realpath.c:readlink_or_correct_case did this); use the
	*LOCAL_FILE_FORMAT* macros instead.

	* fileio.c (Ffile_exists_p):
	* glyphs-msw.c (mswindows_resource_instantiate):
	* sysdll.c (dll_open):
	* sysfile.h:
	* sysfile.h (PATHNAME_CONVERT_OUT_TSTR):
	Add PATHNAME_CONVERT_OUT_TSTR and PATHNAME_CONVERT_OUT_UTF_8 for
	conversion involving specified coding systems rather than `file-name'.
	Use them in *LOCAL_FILE_FORMAT* macros.

	* emacs.c (main_1):
	* symsinit.h:
	* unicode.c:
	New function complex_vars_of_unicode().  In it, create the utf-8
	coding system.  Call it appropriately in emacs.c.  Sort the
	prototypes of complex_vars_of_*() in symsinit.h, for cosmetic
	reasons.
	

2010-02-07  Aidan Kehoe  <kehoea@parhasard.net>

	* fns.c (split_string_by_ichar_1): Extend this to take UNESCAPE
	and ESCAPECHAR arguments.
	(split_external_path, split_env_path, Fsplit_string_by_char)
	(Fsplit_path):
	Pass the new arguments to split_string_by_ichar_1(); take a new
	optional argument, ESCAPE-CHAR, in #'split-string-by-char,
	allowing SEPCHAR to be escaped.

2010-01-09  Didier Verna  <didier@xemacs.org>

	* glyphs.c (query_string_font): Use proper domain for cachel
	updating.

2010-01-09  Didier Verna  <didier@xemacs.org>

	Fix query_string_geometry lookup domain.
	* redisplay.c (redisplay_window_text_width_ichar_string): Formerly
	named redisplay_text_width_ichar_string.
	* redisplay.c (redisplay_window_text_width_string): Formerly named
	redisplay_text_width_string. Make static.
	* redisplay.c (redisplay_text_width_string): Formerly named
	redisplay_frame_text_width_string. Generalize to accept any
	Lisp_Object domain argument (instead of only frames).
	* redisplay.c (add_ichar_rune_1): Update funcalls for the above
	renaming.
	* redisplay.c (generate_fstring_runes): Ditto.
	* redisplay.h: Ditto.
	* glyphs.c (query_string_geometry): Use proper domain for cachel
	updating and in generalized version of redisplay_text_width_string.

2010-01-08  Aidan Kehoe  <kehoea@parhasard.net>

	* mule-charset.c (Fmake_charset): 
	Change build_string with an Ibyte argument to build_intstring,
	fixing the build on Visual C++. Thank you for the report, Vin.

2010-01-07  Jerry James  <james@xemacs.org>

	* font-mgr.c (Ffc_font_match): Initialize result to FcResultMatch
	before calling FcFontMatch.
	* objects-xlike-inc.c (xft_find_charset_font): Ditto.

2010-01-07  Henrique Martins  <xemacs@martins.cc>

	* dired.c (file_name_completion): If a file is too big to stat(),
	ignore the error, since we don't use the size.

2010-01-07  Aidan Kehoe  <kehoea@parhasard.net>

	* mule-charset.c:
	(syms_of_mule_charset, complex_vars_of_mule_charset):
	* lisp.h:
	Restore the creation of arabic-iso8859-6 in C, having it in Lisp
	isn't sufficient for X11 input to work.

2010-01-06  Jerry James  <james@xemacs.org>

	* emacs.c (main_1): Only call reinit_vars_of_number if
	WITH_NUMBER_TYPES.

2010-01-06  Jerry James  <james@xemacs.org>

	* alloc.c: Include valgrind header if USE_VALGRIND.
	(Fvalgrind_leak_check): New function.
	(Fvalgrind_quick_leak_check): New function.
	(syms_of_alloc): Declare the new functions.
	* config.h.in (USE_VALGRIND): New define.

2010-01-06  Jerry James  <james@xemacs.org>

	* emacs.c: Fix FSF address.
	(main_1): Call reinit_vars_of_number.
	* number-gmp.c: Fix FSF address.
	* number-gmp.h: Ditto.
	* number-mp.c: Ditto.
	* number-mp.h: Ditto.
	* number.h: Ditto.
	* number.c: Ditto.
	(bignum_finalize): New function.
	(ratio_finalize): New function.
	(bigfloat_finalize): New function.
	(vars_of_number): Don't create a bignum here.
	(reinit_vars_of_number): New function; create a bignum here.
	(init_number): Call reinit_vars_of_number if !PDUMP.
	* symsinit.h: Fix FSF address.  Declare reinit_vars_of_number.

2010-01-05  Jerry James  <james@xemacs.org>

	* font-mgr.c (Ffc_name_unparse): Return value of FcNameUnparse
	must be freed.

2009-12-31  Aidan Kehoe  <kehoea@parhasard.net>

	* eval.c (Ffunctionp): 
	Special forms no longer give t in this function, in accordance
	with recent GNU Emacs and with Common Lisp.

2009-12-21  Jerry James  <james@xemacs.org>

	* config.h.in: Remove OffiX support.
	* device-x.c: Ditto.
	* dragdrop.c: Ditto.
	(vars_of_dragrop): Ditto
	* event-Xt.c: Ditto.
	(x_event_to_emacs_event): Ditto.
	* frame.c (vars_of_frame): Ditto
	* frame-x.c: Ditto.
	(Foffix_start_drag_internal): Remove.
	(syms_of_frame_x): Remove OffiX support..
	* Makefile.in.in: Ditto.
	* event-gtk.c: Don't include OffiX headers.
	* offix.c: Remove.
	* offic.h: Remove.
	* offix-cursors.h: Remove.
	* offix-types.h: Remove.
	* text.h (Qoffix_dnd_encoding): Remove, twice.
	* depend: Regenerate.

2009-11-27  Adrian Aichner  <adrian@xemacs.org>

	* nt.c (mswindows_getdcwd): Check first whether drive is valid
	with _getdrives() to avoid crash in _wgetdcwd(...) when linking
	against msvcrt8.  This fix was taken from the Mozilla project
	which experienced the same problem.

2009-12-19  Aidan Kehoe  <kehoea@parhasard.net>

	* symbols.c (reject_constant_symbols): 
	Indicate that accepting attempted modification of keywords is a
	temporary thing.

2009-12-23  Stephen J. Turnbull  <stephen@xemacs.org>

	* fns.c (Fcompare_strings): Coerce bounds to be within strings.

2009-12-18  Jerry James  <james@xemacs.org>

	* ppc.ldscript: Remove, obsolete.

2009-12-17  Aidan Kehoe  <kehoea@parhasard.net>

	* events.h (character_to_event_meta_behavior): New enumeration,
	describing what character_to_event should do with characters in
	the range ?\x80-?\xFF, and passed as the third argument to
	character_to_event instead of the binary use_console_meta_flag.
	* events.c (character_to_event, Fcharacter_to_event):
	* event-unixoid.c (read_event_from_tty_or_stream_desc): 
	* event-stream.c (maybe_kbd_translate, maybe_kbd_translate): 
	* event-msw.c (mswindows_need_event):
	Use the new enumeration.
	* event-Xt.c (x_to_emacs_keysym): 
	Call character_to_event when we receive XLookupChars events,
	passing latin_1_maps_to_itself as the meta_behavior flag,
	addressing the problem FKtPp sees in 87bpi9mwpu.fsf@yahoo.com.cn

2009-12-17  Aidan Kehoe  <kehoea@parhasard.net>

	* elhash.c (HASH_TABLE_DEFAULT_REHASH_THRESHOLD): 
	That last change was wrong in theory though not in practice; we're
	comparing function pointers, not enumeration values.

2009-12-17  Aidan Kehoe  <kehoea@parhasard.net>

	* elhash.c (HASH_TABLE_DEFAULT_REHASH_THRESHOLD):
	Cast the enumeration values here to integers before comparing
	them, fixing the build on VC++. Thank you Vin!

2009-12-17  Aidan Kehoe  <kehoea@parhasard.net>

	* elhash.c (HASH_TABLE_DEFAULT_REHASH_THRESHOLD):
	New macro, giving a default value for a hash table's rehash
	threshold given its size and test function. 
	(print_hash_table): Print the hash table's rehash threshold if it
	has a non-default value. Ditto for its rehash size. 
	(Fmake_hash_table): Supply the keyword arguments in a format
	understood by #'function-arglist. 

2009-12-17  Aidan Kehoe  <kehoea@parhasard.net>

	* alloc.c (resize_string): 
	Don't attempt to free dumped data in this function, avoiding an
	assertion failure.

2009-12-13  Stephen J. Turnbull  <stephen@xemacs.org>

	* unicode.c (unicode_query): Add missing return type.
	Thanks to 'mnewsam' on the tracker.

2009-12-09  Jerry James  <james@xemacs.org>

	* config.h.in: Remove HAVE_XMU.
	* s/windowsnt.h: Ditto.
	* device-x.c: Include needed Xmu headers instead of obsolete xmu.h.
	* EmacsFrame.c: Ditto.
	* glyphs-x.c: Ditto.
	* frame-x.c: Ditto.  Always include editres code.
	* xmu.c: Removed, obsolete.
	* xmu.h: Ditto.
	* depend: Regenerate.

2010-01-01  Aidan Kehoe  <kehoea@parhasard.net>

	* mule-charset.c (Fmake_charset):
	Don't intern the symbols used to refer to temporary character
	sets, that doesn't bring us anything.

2009-12-05  Stephen J. Turnbull  <stephen@xemacs.org>

	* faces.c (complex_vars_of_faces): Explain why "*" isn't rewritten
	as a full XLFD.

2010-01-09  Aidan Kehoe  <kehoea@parhasard.net>

	* elhash.c:
	(print_hash_table, print_hash_table_data)
	(hash_table_instantiate)
	(structure_type_create_hash_table_structure_name): 
	(syms_of_elhash): 
	Use keywords, not ordinary symbols, in the hash table read syntax,
	for compatibility with Common Lisp and recent GNU Emacs. Accept
	the non-keyword syntax, but don't allow mixing of the two styles.

2009-11-19  Vin Shelton  <acs@xemacs.org>

	* sysdep.c (sys_subshell): Restore sys_subshell(); it's necessary
	on Windows native builds.

2009-11-10  Jerry James  <james@xemacs.org>

	* Makefile.in.in: Drop support for dynodump and OSF1.
	* alloca.s: Drop support for old systems, namely hp9000s300, wicat,
	ns16000, ns32000, sequent, pyramid, att3b5, and Xenix.
	* broken-sun.h: Remove, unused.
	* compiler.h: Drop support for OSF1.
	* config.h.in: Modify comments about obsolete systems.  Drop NeXTstep
	and SunOS4 support.
	(DYNODUMP): Removed.
	* console.h: Remove reference to NeXTstep in a comment.
	* data.c (sign_extend_temp): Removed, unused.
	(sign_extend_lisp_int): Ditto.
	* depend: Regenerate.
	* ecrt0.c: Remove reference to DONT_NEED_ENVIRON, which is not defined
	by any supported system.  Remove support for obsolete systems.  Remove
	comments that refer to obsolete systems.
	* emacs.c (main_1): Remove NeXT support.  Remove references to
	EXTRA_INITIALIZE and NO_SUBPROCESSES, which are not defined by any
	supported system.
	* faces.c (complex_vars_of_faces): Remove comment that refers to
	NeXTstep.
	* fileio.c: Drop support for ancient versions of HP/UX.
	* getloadavg.c: Remove symbols defined only by obsolete systems from
	comment at the top listing symbols of interest.  Remove support for
	obsolete systems.
	(getloadavg): Drop code blocks specific to obsolete systems.
	* getpagesize.h: Remove reference to NBPC, which is not used by any
	supported system.
	* gmalloc.c: Remove reference to GMALLOC_NEEDS_SBRK_DECL, which is not
	used by any supported system.
	* hftctl.c: Remove, used only by ancient versions of AIX.
	* hpplay.c: Remove includes for HP/UX versions less than 11.
	* libsst.h: Remove support for SunOS 4.
	* m/arm.h: Remove comment about Xenix.
	* m/ibmrs6000.h: Remove hftctl support, which is only for very old
	versions of AIX.
	* m/intel386.h: Remove references to obsolete systems.
	* m/mips.h: Ditto.
	* nsselect.m: Remove (devoid of content) NeXT support file.
	* process-unix.c: Remove references to NO_SUBPROCESSES, SKTPAIR, and
	CONNECT_NEEDS_SLOWED_INTERRUPTS, which are not defined by any
	supported system.
	* process.c: Remove reference to NO_SUBPROCESSES.
	* process.h: Ditto.
	* regex.c: Remove reference to SWITCH_ENUM_BUG, which is not defined
	by an supported system, and hence SWITCH_ENUM_CAST as well.
	* s/aix4-2.h: Merge older include files in, and drop #define/#undef
	pairs.
	* s/bsd4-3.h: Ditto.
	* s/hpux11.h: Ditto.
	* s/irix6-0.h: Ditto.
	* s/usg5-4.h: Ditto.
	* s/hpux11-shr.h: Remove references to deleted version of HP/UX.
	* s/template.h: Remove references to ancient BSD versions.
	* strcmp.c: Removed, unused.
	* strcpy.c: Ditto.
	* sunOS-fix.c: Ditto.
	* sunplay.c (init_device): Remove SunOS4.0.3 code.
	* syntax.c (scan_sexps_forward): Remove comment about Apollo, but
	leave the code the way it is, because I prefer it this way.
	* sysdep.c: Remove code guarded by preprocessor symbols that are not
	defined on any supported system, namely ISC4_0, AIXHFT, IBMRTAIX,
	NO_SUBPROCESSES, RTU, USG_JOBCTRL, USE_GETOBAUD, _CX_UX, DGUX, ultrix,
	F_SETOWN_SOCK_NEG, SET_LINE_DISCIPLINE, BROKEN_CLOSEDIR, HPUX9, and
	NeXT.
	(sys_subshell): Remove, unused.
	* sysfile.h: Remove reference to hftctl.c.
	* sysproc.h: Remove code guarded by preprocessor symbols that are not
	defined on any supported system, namely NO_SUBPROCESSES, IRIS,
	NEED_NET_ERRNO_H, and USG_JOBCTRL.
	* syssignal.h: Remove reference to NeXT.
	* systty.h: Remove support for obsolete systems.  Remove support for
	BROKEN_TIOCGWINSZ, which is no longer needed.
	* unexaix.c (unrelocate_symbols): Remove code only needed on ancient
	versions of AIX.
	* unexec.c: Remove references to COFF_ENCAPSULATE and
	SECTION_ALIGNMENT, which are not needed on any supported system.
	Remove references to obsolete systems.

	* m/7300.h:
	* m/acorn.h:
	* m/alliant-2800.h:
	* m/alliant.h:
	* m/alliant1.h:
	* m/alliant4.h:
	* m/alpha.h:
	* m/altos.h:
	* m/amdahl.h:
	* m/apollo.h:
	* m/att3b.h:
	* m/aviion.h:
	* m/celerity.h:
	* m/clipper.h:
	* m/cnvrgnt.h:
	* m/convex.h:
	* m/cydra5.h:
	* m/delta.h:
	* m/delta88k.h:
	* m/dpx2.h:
	* m/dual.h:
	* m/elxsi.h:
	* m/ews4800r.h:
	* m/gould-np1.h:
	* m/gould.h:
	* m/hp300bsd.h:
	* m/hp9000s300.h:
	* m/i860.h:
	* m/ibm370aix.h:
	* m/ibmps2-aix.h:
	* m/ibmrt-aix.h:
	* m/ibmrt.h:
	* m/iris4d.h:
	* m/iris5d.h:
	* m/iris6d.h:
	* m/irist.h:
	* m/is386.h:
	* m/isi-ov.h:
	* m/luna88k.h:
	* m/masscomp.h:
	* m/mega68.h:
	* m/mg1.h:
	* m/mips-nec.h:
	* m/mips-siemens.h:
	* m/mips4.h:
	* m/ncr386.h:
	* m/news-risc.h:
	* m/news.h:
	* m/next.h:
	* m/nh3000.h:
	* m/nh4000.h:
	* m/ns16000.h:
	* m/ns32000.h:
	* m/nu.h:
	* m/orion.h:
	* m/orion105.h:
	* m/paragon.h:
	* m/pfa50.h:
	* m/plexus.h:
	* m/pmax.h:
	* m/pyramid.h:
	* m/pyrmips.h:
	* m/sequent-ptx.h:
	* m/sequent.h:
	* m/sgi-challenge.h:
	* m/sgi3000.h:
	* m/sps7.h:
	* m/stride.h:
	* m/sun1.h:
	* m/sun2.h:
	* m/sun3-68881.h:
	* m/sun3-fpa.h:
	* m/sun3-soft.h:
	* m/sun3.h:
	* m/sun386.h:
	* m/symmetry.h:
	* m/tad68k.h:
	* m/tahoe.h:
	* m/tandem-s2.h:
	* m/targon31.h:
	* m/tek4300.h:
	* m/tekxd88.h:
	* m/tower32.h:
	* m/tower32v3.h:
	* m/ustation.h:
	* m/vax.h:
	* m/wicat.h:
	* m/xps100.h:
	* s/3700.h:
	* s/386-ix.h:
	* s/386bsd.h:
	* s/aix3-1.h:
	* s/aix3-2-5.h:
	* s/aix3-2.h:
	* s/aix4-1.h:
	* s/aix4.h:
	* s/alliant-2800.h:
	* s/alliant.h:
	* s/altos.h:
	* s/amdahl.h:
	* s/bsd386.h:
	* s/bsd4-1.h:
	* s/bsd4-2.h:
	* s/bsdos2-1.h:
	* s/bsdos2.h:
	* s/bsdos3.h:
	* s/bsdos4.h:
	* s/cxux.h:
	* s/cxux7.h:
	* s/decosf1-2.h:
	* s/decosf1-3.h:
	* s/decosf3-1.h:
	* s/decosf3-2.h:
	* s/decosf4-0.h:
	* s/dgux.h:
	* s/dgux5-4r2.h:
	* s/dgux5-4r3.h:
	* s/dgux5-4r4.h:
	* s/domain.h:
	* s/esix.h:
	* s/esix5r4.h:
	* s/ewsux5r4.h:
	* s/hpux.h:
	* s/hpux10-shr.h:
	* s/hpux10.h:
	* s/hpux8-shr.h:
	* s/hpux8.h:
	* s/hpux9-shr.h:
	* s/hpux9-x11r4.h:
	* s/hpux9.h:
	* s/hpux9shxr4.h:
	* s/iris3-5.h:
	* s/iris3-6.h:
	* s/irix3-3.h:
	* s/irix4-0.h:
	* s/irix5-0.h:
	* s/irix5-1.h:
	* s/irix5-2.h:
	* s/irix5-3.h:
	* s/isc2-2.h:
	* s/isc3-0.h:
	* s/isc4-0.h:
	* s/isc4-1.h:
	* s/linux.h:
	* s/newsos5.h:
	* s/nextstep.h:
	* s/osf1.h:
	* s/ptx.h:
	* s/riscix1-1.h:
	* s/riscix1-2.h:
	* s/riscos5.h:
	* s/rtu.h:
	* s/sco4.h:
	* s/sco5-shr.h:
	* s/sco5.h:
	* s/sunos4-0-shr.h:
	* s/sunos4-0.h:
	* s/sunos4-1-1.h:
	* s/sunos4-1-2-shr.h:
	* s/sunos4-1-2.h:
	* s/sunos4-1-3-shr.h:
	* s/sunos4-1-3.h:
	* s/sunos4-1-4-shr.h:
	* s/sunos4-1-4.h:
	* s/sunos4-1-shr.h:
	* s/sunos4-1.h:
	* s/ultrix.h:
	* s/ultrix4-3.h:
	* s/umax.h:
	* s/umips.h:
	* s/unipl5-0.h:
	* s/unipl5-2.h:
	* s/usg5-0.h:
	* s/usg5-2-2.h:
	* s/usg5-2.h:
	* s/usg5-3.h:
	* s/xenix.h:
	* unexapollo.c:
	* unexconvex.c:
	* unexelfsgi.c:
	* unexencap.c:
	* unexenix.c:
	* unexfreebsd.c:
	* unexfx2800.c:
	* unexhp9k3.c:
	* unexmips.c:
	* unexnext.c:
	* unexsni.c:
	* unexsol2.c:
	* unexsunos4.c: Removed.

2009-11-18  Stephen J. Turnbull  <stephen@xemacs.org>

	Assorted cleanups.

	* font-mgr.h (CHECKING_LANG): Remove redundant conversion.

	* font-mgr.c: Update copyright notice and author headers.
	Reorder some functions.

	* objects-xlike-inc.c (xft_find_charset_font): Check for freeing NULL.

	Implement more of fontconfig API.

	* font-mgr.c: (Ffc_default_substitute):
	(Ffc_config_substitute):
	(Ffc_font_render_prepare):
	New functions.
	(Ffc_font_match):
	Gets optional argument CONFIG.
	(Ffc_config_destroy):
	Fix a typo.

	Reimplement FCSTRLIST_TO_LISP_USING as a function.

	(FCSTRLIST_TO_LISP_USING): Removed.
	(fcstrlist_to_lisp_using): New function.
	(Ffc_config_get_config_dirs):
	(Ffc_config_get_font_dirs):
	(Ffc_config_get_config_files):
	Replace FCSTRLIST_TO_LISP_USING with fcstrlist_to_lisp_using.

	Comment cleanups.

	* objects-xlike-inc.c (charset_reporter): Document RFC 3066.
	(xft_find_charset_font): Remove obsolete comment.

2009-10-18  Stephen J. Turnbull  <stephen@xemacs.org>

	* font-mgr.h (PRINT_XFT_PATTERN):
	Cast away some warnings.

	* font-mgr.h (PRINT_XFT_PATTERN):
	* objects-x.c (x_font_instance_truename):
	* objects-xlike-inc.c (xft_find_charset_font):
	* objects.c (font_instance_truename_internal):
	Improve error checking and reporting for Xft fonts.

	* font-mgr.c (vars_of_font_mgr):
	Set xft-debug-level to 0.

2008-07-23  Stephen J. Turnbull  <stephen@xemacs.org>

	* objects-xlike-inc.c (charset_table): Add names and ISO 639 codes
	for Arabic, Russian, and Thai.  Regional variants are lower-cased.

2009-11-16  Stephen J. Turnbull  <stephen@xemacs.org>

	Remove C asserts from test-format-data-conversion.
	See also changes in test-harness.el and c-tests.el in tests/automated.

	* tests.c
	(Ftest_hash_tables):
	(Ftest_data_format_conversion):
	Each now collects a list of test results and returns it.
	Update docstrings.
	(DFC_INITIALIZE):
	(DFC_CHECK_LENGTH):
	(DFC_CHECK_CONTENT):
	(DFC_RESULT_PASS):
	New macros.
	(DFC_CHECK_DATA_NUL):
	(DFC_CHECK_DATA):
	Use the new macros.
	Add an argument for the test description.
	(DFC_CHECK_DATA_COND_EOL_NUL)
	(DFC_CHECK_DATA_COND_EOL)
	(DFC_CHECK_DATA_COND_MULE_NUL): 
	(DFC_CHECK_DATA_COND_MULE):
	Add an argument for the test description.

2009-11-17  Stephen J. Turnbull  <stephen@xemacs.org>

	Fix issue630.

	* regex.c (regex_compile):
	Sync treatment of normal_char to GNU Emacs 22.1.
	Thanks to Aidan Kehoe for the diagnosis and suggestion.
	(print_partial_compiled_pattern):
	Avoid buffer overrun in case of /exactn/0.

2009-11-15  Aidan Kehoe  <kehoea@parhasard.net>

	* mule-ccl.c (setup_ccl_program): 
	Fix the union build, thank you Robert Delius Royar.

2009-11-15  Aidan Kehoe  <kehoea@parhasard.net>

	* mule-ccl.c (CCL_CALL_FOR_MAP_INSTRUCTION): Assert that we always
	have a symbol in this macro.
	(setup_ccl_program): Ensure we're not allocating unreachable
	memory in this function; all symbols must have been resolved in a
	given CCL program before this function is called.
	(find_ccl_program): New function, return a CCL program with all
	its symbols resolved if it is valid (possibly allocating memory),
	Qnil otherwise. 
	(get_ccl_program): New function, exported to other files; call
	find_ccl_program, and error if it gives nil.
	(Fccl_program_p): Call find_ccl_program from this function instead
	of implementing the bulk of it here.
	(Fccl_execute): Call get_ccl_program instead of implementing the
	bulk of it here.
	(Fccl_execute_on_string): Ditto.
	* mule-ccl.h (Vfont_ccl_encoder_alist): Remove this declaration,
	it hasn't been used in years.
	(get_ccl_program): Declare this function. 
	* mule-coding.c (ccl_putprop): Use get_ccl_program on any
	specified encode or decode CCL program property.
	(fixed_width_putprop): Ditto.
	* mule-charset.c (Fmake_charset): Use get_ccl_program on any
	specified ccl-program.
	(Fset_charset_ccl_program): Ditto.

2009-11-15  Aidan Kehoe  <kehoea@parhasard.net>

	* eval.c (Fquote_maybe): 
	Move this function here from callint.c; make it more comprehensive
	about which types are self-quoting.
	* lisp.h: Declare Fquote_maybe here, since it's now used in
	callint.c and defined in eval.c
	* callint.c (Fquote_maybe): Remove this function from this file.

2009-11-11  Stephen Turnbull  <stephen@xemacs.org>

	* darwin.h: Remove.  Functionality implemented in configure.ac.
	* config.h.in (USE_PARAM_H): New.  Used by Darwin to #define BSD.

2009-11-09  Aidan Kehoe  <kehoea@parhasard.net>

	* sysfile.h (DEFAULT_DIRECTORY_FALLBACK): 
	Move the WIN32_NATIVE definition inside the #ifdef emacs
	conditional, clear up the comment after #else; thanks for the
	build failure report, Vin!
	Cast DEFAULT_DIRECTORY_FALLBACK to (const CIbyte *) by default,
	which better reflects its contents.
	* editfns.c (get_home_directory): 
	* buffer.c (init_initial_directory): 
	Cast DEFAULT_DIRECTORY_FALLBACK to (Ibyte *) with functions that
	take that type, now that is necessary. 

2009-11-09  Jerry James  <james@xemacs.org>

	* Makefile.in.in: Remove support for malloc.c ("old" GNU malloc).  Do
	not define GNU_MALLOC, which was only used to distinguish between
	"old" and "new" GNU malloc.
	* alloc.c (malloced_storage_size): Drop support for old GNU malloc,
	and recast the remaining test in terms of SYSTEM_MALLOC.
	* config.h.in (GNU_MALLOC): Remove.
	* depend: Regenerate.
	* emacs.c (main_1): Clean up old, now irrelevant, commented-out
	preprocessor checks.  Convert GNU_MALLOC test into an equivalent
	SYSTEM_MALLOC test.
	(voodoo_free_hook): Convert GNU_MALLOC test into an equivalent
	SYSTEM_MALLOC test.
	(Fkill_emacs): Ditto.
	* gc.h: Ditto.
	* malloc.c: Remove.
	* s/sunos4-0-shr.h: Defining GNU_MALLOC is no longer necessary.

2009-11-08  Aidan Kehoe  <kehoea@parhasard.net>

	* window.c (Fsave_window_excursion, save_window_excursion_unwind): 
	Remove these functions, the first was masked by
	#'save-window-excursion in window.el, and the second can be easily
	replaced with Lisp primitives.
	* bytecode.c (Bsave_window_excursion) : Don't pass
	save_window_excursion_unwind to record_unwind_protect, now the
	former is gone.
	* event-stream.c (execute_help_form): 
	Ditto.

2009-11-08  Aidan Kehoe  <kehoea@parhasard.net>

	* sysfile.h (DEFAULT_DIRECTORY_FALLBACK):
	New #define, "/" on Unix and "C:\\" on Win32 native, a directory
	that should "always" be available.
	* fileio.c (Fexpand_file_name): Use DEFAULT_DIRECTORY_FALLBACK
	here, instead of conditionalising on WIN32_NATIVE.
	* editfns.c (get_home_directory):
	Use DEFAULT_DIRECTORY_FALLBACK if looking up the home directory
	fails, on both Windows and Unix.
	* buffer.c (init_initial_directory):
	Don't give a fatal error if the current directory doesn't exist,
	chdir to DEFAULT_DIRECTORY_FALLBACK instead.

2009-11-02  Stephen Turnbull  <stephen@xemacs.org>

	Fix issue145.

	* process.c: Remove abbreviated comments on exported Lisp
	variables, and point to docstrings.
	(init_process_io_handles): Allow Vdefault_network_coding_system
	and Vdefault_process_coding_system to be nil.
	(Vdefault_network_coding_system):
	(Vdefault_process_coding_system):
	Document that these variables may be nil.

2009-10-26  Aidan Kehoe  <kehoea@parhasard.net>

	* config.h.in (REALPATH_CORRECTS_CASE): 
	New #define, available on Darwin. 
	* realpath.c (readlink_or_correct_case): 
	On Darwin, use realpath(3)'s case correction to get the canonical
	case for a file; thank you Robert Delius Royar!

2009-10-16  Michael Sperber  <mike@xemacs.org>

	* buffer.c (set_buffer_internal): Synchronize the window point
	with the current point when switching to another buffer.

2009-10-11  Michael Sperber  <mike@xemacs.org>

	* event-stream.c (post_command_hook): Run `post-command-hook'
	without INHIBIT_EXISTING_PERMANENT_DISPLAY_OBJECT_DELETION -
	deleting other windows off that hook is legitimate.

2009-10-08  Jerry James  <james@xemacs.org>

	* bytecode.c (bytecode_arithop): Make divide-by-zero errors
	noncontinuable.
	* floatfns.c (arith_error2): New macro for signaling divide-by-zero.
	(ceiling_two_fixnum): Handle a value returned from a continuable error.
	(ceiling_two_bignum): Ditto.
	(ceiling_two_ratio): Ditto.
	(ceiling_two_bigfloat): Ditto.
	(ceiling_two_float): Ditto.
	(floor_two_fixnum): Ditto.
	(floor_two_bignum): Ditto.
	(floor_two_ratio): Ditto.
	(floor_two_bigfloat): Ditto.
	(floor_two_float): Ditto.
	(round_two_fixnum): Ditto.
	(round_two_bignum): Ditto.
	(round_two_ratio): Ditto.
	(round_two_bigfloat): Ditto.
	(round_two_float): Ditto.
	(truncate_two_fixnum): Ditto.
	(truncate_two_bignum): Ditto.
	(truncate_two_ratio): Ditto.
	(truncate_two_bigfloat): Ditto.
	(truncate_two_float): Ditto.
	(truncate_one_ratio): Truncating zero should result in zero.

2009-10-10  Aidan Kehoe  <kehoea@parhasard.net>

	* rangetab.c (Frange_table_type): 
	Correct the docstring for this function, don't reuse that of
	Frange_table_p.

2009-10-05  Jerry James  <james@xemacs.org>

	* emacs.c (main_1): Check the return value of dup() to quiet gcc.
	* input-method-xlib.c (describe_Window): Check the return value of
	system() to quiet gcc.
	* objects-tty.c (UNUSED_IF_NEW_GC): New macro.
	(tty_finalize_color_instance): Use it to quiet gcc.
	(tty_finalize_font_instance): Ditto.
	* syntax.c (UNUSED_IF_NEW_GC): New macro.
	(uninit_buffer_syntax_cache): Use it to quiet gcc.

2009-10-05  Jerry James  <james@xemacs.org>

	* glade.c: Add GPL v2 or later notice with explicit permission of
	Bill Perry (private email).
	* gtk-glue.c: Ditto.
	* gtk-xemacs.c: Ditto.
	* gtk-xemacs.h: Ditto.
	* ui-byhand.c: Ditto.
	* ui-gtk.c: Ditto.
	* ui-gtk.h: Ditto.
	* unexfx2800.c: Fix malformed comment.

2009-10-05  Jerry James  <james@xemacs.org>

	* Makefile.in.in: Remove internal GIF object files from link.
	* dgif_lib.c: Removed.
	* gif_io.c: Removed.
	* gifrlib.h: Removed.
	* glyphs-eimage.c: Use external giflib instead of internal GIF
	support.
	(gif_instantiate_unwind): Use giflib's FreeSavedImages call
	instead of the defunct GifFree.
	(gif_read_from_memory): Adapt signature to giflib.
	(gif_error_func): Removed.
	(gif_memory_close): Removed.
	(gif_decode_error_string): New function.
	(gif_instantiate): Adapt to giflib API.
	* libinterface.h: Include external giflib header instead of
	internal GIF header.

2009-06-28  Stephen J. Turnbull  <stephen@xemacs.org>

	* Makefile.in.in (mostlyclean):
	(versionclean):
	(extraclean-noconfig):
	(extraclean):
	Clean certain build and debug products.

2009-10-01  Mike Sperber  <mike@xemacs.org>

	* frame-x.c (x_focus_on_frame): Use correct timestamp with
	XSetInputFocus.

2009-09-30  Aidan Kehoe  <kehoea@parhasard.net>

	* mule-coding.c (fixed_width_putprop): 
	Register any CCL programs, avoiding crashes described by Robert
	Delius Royar. Though it's unclear why, I'll try to investigate
	once I'm on a 32-bit Unix machine regularly again.

2009-09-29  Mike Sperber  <mike@xemacs.org>

	* minibuf.c (Ftry_completion): If the collection is a list, allow
	plain elements instead of cons cells.  (As in GNU Emacs.)

2009-09-23  Stephen Turnbull  <stephen@xemacs.org>

	* glyphs-eimage.c (png_instantiate):
	Clean up PNG handling.  Fixes crash in issue570.

	Pad eimage buffer to handle overrun in libpng (fix crash).
	Reorder libpng setup and call png_read_update_info (display
	  images with transparency correctly).
	Make background handling code prettier.
	Make comment style more consistent.
	Remove some obsolete comments and #ifdefs.

2009-09-20  Aidan Kehoe  <kehoea@parhasard.net>

	* alloc.c (Flist): 
	(Fvector): 
	(Fbit_vector): 
	(Fmake_byte_code): 
	(Fstring): 
	* data.c (Feqlsign): 
	(Flss):
	(Fgtr):
	(Fleq):
	(Fgeq):
	(Fneq):
	(Fgtr):	
	(Fplus): 
	(Fminus): 
	(Ftimes): 
	(Fdiv): 
	(Fquo): 
	(Fmax): 
	(Fmin): 
	(Flogand): 
	(Flogior): 
	(Flogxor): 
	* editfns.c (Fsave_excursion): 
	(Fsave_current_buffer): 
	(Fencode_time): 
	(Finsert): 
	(Finsert_before_markers): 
	(Fsave_restriction): 
	(Fformat): 
	* elhash.c (Fmake_hash_table): 
	* eval.c (Fdefun): 
	(Fdefmacro): 
	(Fcatch): 
	(Funwind_protect): 
	(Fcall_with_condition_handler): 
	(Ffuncall): 
	(Fapply): 
	(Frun_hooks): 
	* fns.c (Fappend): 
	(Fconcat): 
	(Fvconcat): 
	(Fbvconcat): 
	(Fnconc): 
	* print.c (Fwith_output_to_temp_buffer): 
	* process.c (Fstart_process_internal): 
	* window.c (Fsave_window_excursion): 
	* widget.c (Fwidget_apply): 
	Add argument information, in a form understood by
	#'function-arglist, to all these MANY or UNEVALLED (that is to
	say, special-operator) built-in functions.

2009-09-20  Aidan Kehoe  <kehoea@parhasard.net>

	* general-slots.h: 
	* mule-coding.c (syms_of_mule_coding): 
	* mule-charset.c (syms_of_mule_charset): 
	Move Qfrom_unicode to general-slots.h, now it's used in more than
	one file. Fixes the native Win32 build; thank you Vin!

2009-09-19  Aidan Kehoe  <kehoea@parhasard.net>

	Move the #'query-coding-region implementation to C.

	This is necessary because there is no reasonable way to access the
	corresponding mswindows-multibyte functionality from Lisp, and we
	need such functionality if we're going to have a reliable and
	portable #'query-coding-region implementation. However, this
	change doesn't yet provide #'query-coding-region for the
	mswindow-multibyte coding systems, there should be no functional
	differences between an XEmacs with this change and one without it.

	* mule-coding.c (struct fixed_width_coding_system): 
	Add a new coding system type, fixed_width, and implement it. It
	uses the CCL infrastructure but has a much simpler creation API,
	and its own query_method, formerly in lisp/mule/mule-coding.el.
	* unicode.c:
	Move the Unicode query method implementation here from
	unicode.el. 
	* lisp.h: Declare Fmake_coding_system_internal, Fcopy_range_table
	here. 
	* intl-win32.c (complex_vars_of_intl_win32): 
	Use Fmake_coding_system_internal, not Fmake_coding_system.
	* general-slots.h: Add Qsucceeded, Qunencodable, Qinvalid_sequence
	here. 
	* file-coding.h (enum coding_system_variant):
	Add fixed_width_coding_system here. 
	(struct coding_system_methods): 
	Add query_method and query_lstream_method to the coding system
	methods. 
	Provide flags for the query methods.
	Declare the default query method; initialise it correctly in
	INITIALIZE_CODING_SYSTEM_TYPE.
	* file-coding.c (default_query_method): 
	New function, the default query method for coding systems that do
	not set it. Moved from coding.el.
	(make_coding_system_1): 
	Accept new elements in PROPS in #'make-coding-system; aliases, a
	list of aliases; safe-chars and safe-charsets (these were
	previously accepted but not saved); and category.
	(Fmake_coding_system_internal): 
	New function, what used to be #'make-coding-system--on Mule
	builds, we've now moved some of the functionality of this to
	Lisp. 
	(Fcoding_system_canonical_name_p):
	Move this earlier in the file, since it's now called from within
	make_coding_system_1. 
	(Fquery_coding_region): 
	Move the implementation of this here, from coding.el. 
	(complex_vars_of_file_coding): 
	Call Fmake_coding_system_internal, not Fmake_coding_system;
	specify safe-charsets properties when we're a mule build. 
	* extents.h (mouse_highlight_priority, Fset_extent_priority,
	Fset_extent_face, Fmap_extents):
	Make these available to other C files.

2009-09-11  Aidan Kehoe  <kehoea@parhasard.net>

	* unicode.c (unicode_convert): 
	Fix a bug with error sequences and very short input strings.

2009-08-31  Aidan Kehoe  <kehoea@parhasard.net>

	* eval.c (For, Fand): 
	Don't declare val as REGISTER in these functions, for some reason
	it breaks the non-DEBUG union build. These functions are only
	called from interpreted code, the performance implication doesn't
	matter. Thank you Robert Delius Royar!
	* eval.c (Fmultiple_value_list_internal):
	Error on too many arguments. 

2009-08-24  Jerry James  <james@xemacs.org>

	* lisp.h (INT_64_BIT): define as __int64 on WIN32.
	* glyphs-eimage.c (tiff_instantiate): cast argument of
	xnew_binbytes to size_t (guaranteed to fit because of immediately
	preceding check).

2009-08-11  Aidan Kehoe  <kehoea@parhasard.net>

	* floatfns.c (ROUNDING_CONVERT, CONVERT_WITH_NUMBER_TYPES)
	(CONVERT_WITHOUT_NUMBER_TYPES, MAYBE_TWO_ARGS_BIGNUM)
	(MAYBE_ONE_ARG_BIGNUM, MAYBE_TWO_ARGS_RATIO)
	(MAYBE_ONE_ARG_RATIO, MAYBE_TWO_ARGS_BIGFLOAT)
	(MAYBE_ONE_ARG_BIGFLOAT, MAYBE_EFF, MAYBE_CHAR_OR_MARKER):
	New macros, used in the implementation of the rounding functions.
	(ceiling_two_fixnum, ceiling_two_bignum, ceiling_two_ratio)
	(ceiling_two_bigfloat, ceiling_one_ratio, ceiling_one_bigfloat)
	(ceiling_two_float, ceiling_one_float, ceiling_one_mundane_arg)
	(floor_two_fixnum, floor_two_bignum, floor_two_ratio)
	(floor_two_bigfloat, floor_one_ratio, floor_one_bigfloat)
	(floor_two_float, floor_one_mundane_arg, round_two_fixnum)
	(round_two_bignum_1, round_two_bignum, round_two_ratio)
	(round_one_bigfloat_1, round_two_bigfloat, round_one_ratio)
	(round_one_bigfloat, round_two_float, round_one_float)
	(round_one_mundane_arg, truncate_two_fixnum)
	(truncate_two_bignum, truncate_two_ratio, truncate_two_bigfloat)
	(truncate_one_ratio, truncate_one_bigfloat, truncate_two_float)
	(truncate_one_float, truncate_one_mundane_arg): 
	New functions, used in the implementation of the rounding
	functions. 
	(Fceiling, Ffloor, Fround, Ftruncate, Ffceiling, Fffloor)
	(Ffround, Fftruncate): 
	Revise to fully support Common Lisp conventions. This means:
	-- All functions have optional DIVISOR arguments
	-- All functions return multiple values; see #'values
	-- All functions do their arithmetic with the correct number types
	according to the contamination rules.
	-- #'round and #'fround always round towards the even number
	in ambiguous cases.
	* doprnt.c (emacs_doprnt_1): 
	* number.c (internal_coerce_number): 
	Call Ftruncate with two arguments, not one.
	* floatfns.c (Ffloat): 
	Correct this, if NUMBER is a bignum.
	* lisp.h: 
	Declare Ftruncate as taking two arguments. 
	* number.c: 
	Provide scratch_ratio2, init it appropriately. 
	* number.h: 
	Make scratch_ratio2 available.
	* number.h (BIGFLOAT_ARITH_RETURN):
	* number.h (BIGFLOAT_ARITH_RETURN1):
	Correct these functions.

2009-08-11  Aidan Kehoe  <kehoea@parhasard.net>

	* bytecode.c (enum Opcode /* Byte codes */): 
	Add four new bytecodes, to deal with multiple values. 
	(POP_WITH_MULTIPLE_VALUES): New macro. 
	(POP): Modify this macro to ignore multiple values. 
	(DISCARD_PRESERVING_MULTIPLE_VALUES): New macro. 
	(DISCARD): Modify this macro to ignore multiple values. 
	(TOP_WITH_MULTIPLE_VALUES): New macro. 
	(TOP_ADDRESS): New macro. 
	(TOP): Modify this macro to ignore multiple values. 
	(TOP_LVALUE): New macro.
	(Bcall): Ignore multiple values where appropriate. 
	(Breturn): Pass back multiple values.
	(Bdup): Preserve multiple values.
	Use TOP_LVALUE with most bytecodes that assign anything to
	anything. 
	(Bbind_multiple_value_limits, Bmultiple_value_call,
	Bmultiple_value_list_internal, Bthrow): Implement the new
	bytecodes. 
	(Bgotoifnilelsepop, Bgotoifnonnilelsepop, BRgotoifnilelsepop,
	BRgotoifnonnilelsepop): 
	Discard any multiple values.
	* callint.c (Fcall_interactively):
	Ignore multiple values when calling #'eval, in two places.
	* device-x.c (x_IO_error_handler): 
	* macros.c (pop_kbd_macro_event): 
	* eval.c (Fsignal): 
	* eval.c (flagged_a_squirmer): 
	Call throw_or_bomb_out, not Fthrow, now that the latter is a
	special form. 
	* eval.c: 
	Make Qthrow, Qobsolete_throw available as symbols. 
	Provide multiple_value_current_limit, multiple-values-limit (the
	latter as specified by Common Lisp. 
	* eval.c (For): 
	Ignore multiple values when comparing with Qnil, but pass any
	multiple values back for the last arg.
	* eval.c (Fand): 
	Ditto.
	* eval.c (Fif):
	Ignore multiple values when examining the result of the
	condition. 
	* eval.c (Fcond): 
	Ignore multiple values when comparing what the clauses give, but
	pass them back if a clause gave non-nil.
	* eval.c (Fprog2): 
	Never pass back multiple values.
	* eval.c (FletX, Flet): 
	Ignore multiple when evaluating what exactly symbols should be
	bound to.
	* eval.c (Fwhile): 
	Ignore multiple values when evaluating the test.
	* eval.c (Fsetq, Fdefvar, Fdefconst): 
	Ignore multiple values.	
	* eval.c (Fthrow): 
	Declare this as a special form; ignore multiple values for TAG,
	preserve them for VALUE.
	* eval.c (throw_or_bomb_out): 
	Make this available to other files, now Fthrow is a special form.
	* eval.c (Feval): 
	Ignore multiple values when calling a compiled function, a
	non-special-form subr, or a lambda expression.
	* eval.c (Ffuncall): 
	If we attempt to call #'throw (now a special form) as a function,
	don't error, call #'obsolete-throw instead. 
	* eval.c (make_multiple_value, multiple_value_aset)
	(multiple_value_aref, print_multiple_value, mark_multiple_value)
	(size_multiple_value): 
	Implement the multiple_value type. Add a long comment describing
	our implementation.
	* eval.c (bind_multiple_value_limits): 
	New function, used by the bytecode and by #'multiple-value-call,
	#'multiple-value-list-internal. 
	* eval.c (multiple_value_call): 
	New function, used by the bytecode and #'multiple-value-call.
	* eval.c (Fmultiple_value_call): 
	New special form.
	* eval.c (multiple_value_list_internal): 
	New function, used by the byte code and
	#'multiple-value-list-internal.
	* eval.c (Fmultiple_value_list_internal, Fmultiple_value_prog1): 
	New special forms.
	* eval.c (Fvalues, Fvalues_list): 
	New Lisp functions.
	* eval.c (values2): 
	New function, for C code returning multiple values.
	* eval.c (syms_of_eval): 
	Make our new Lisp functions and symbols available.
	* eval.c (multiple-values-limit): 
	Make this available to Lisp.
	* event-msw.c (dde_eval_string): 
	* event-stream.c (execute_help_form): 
	* glade.c (connector): 
	* glyphs-widget.c (glyph_instantiator_to_glyph): 
	* glyphs.c (evaluate_xpm_color_symbols): 
	* gui-x.c (wv_set_evalable_slot, button_item_to_widget_value): 
	* gui.c (gui_item_value, gui_item_display_flush_left): 
	* lread.c (check_if_suppressed): 
	* menubar-gtk.c (menu_convert, menu_descriptor_to_widget_1): 
	* menubar-msw.c (populate_menu_add_item): 
	* print.c (Fwith_output_to_temp_buffer): 
	* symbols.c (Fsetq_default): 
	Ignore multiple values when calling Feval.
	* symeval.h: 
	Add the header declarations necessary for the multiple-values
	implementation. 
	* inline.c: 
	#include symeval.h, now that it has some inline functions.
	* lisp.h: 
	Update Fthrow's declaration. Make throw_or_bomb_out available to
	all files. 
	* lrecord.h (enum lrecord_type): 
	Add the multiple_value type here. 

2009-07-31  Stephen Turnbull  <stephen@xemacs.org>

	* glyphs-gtk.c (gtk_xpm_instantiate): Image instance pixmap
	hotspot coordinates are Lisp integers; make it so.
	Thanks to Karl Kleinpaste for reporting.

2009-07-31  Stephen Turnbull  <stephen@xemacs.org>

	* config.h.in (HAVE_DBM):
	* database.c (HAVE_DBM): 
	Use gdbm/ndbm.h if needed (via NDBM_H_FILE).
	Thanks to Karl Kleinpaste for the report.

2009-07-28  Stephen Turnbull  <stephen@xemacs.org>

	* faces.c (ensure_face_cachel_contains_charset):
	(add_face_cachel):
	(update_face_cachel_data):
	Fix typos in comments and otherwise improve them.

2009-07-27  Stephen J. Turnbull  <stephen@xemacs.org>

	* eval.c (debug-on-error): Document interaction with process filters.

2009-07-15 Aidan Kehoe <kehoea@parhasard.net>

	* syntax.c (complex_vars_of_syntax): 
	?\012 is whitespace, as it always should have been, thank you Karl
	Kleinpaste and the Gnus team!

2009-07-11  Aidan Kehoe  <kehoea@parhasard.net>

	* file-coding.c (undecided_canonicalize_after_coding): 
	If no data have been seen, or if
	coding_stream_canonicalize_after_coding gives nil, pass back
	str->codesys, which will be of type undecided (the same as the old
	behaviour) but will reflect any CODESYS argument passed to
	make_coding_input_stream. See also the change in lisp/code-files.el

2009-06-09  Jerry James  <james@xemacs.org>

	* glyphs-eimage.c (jpeg_instantiate):
	(gif_instantiate):
	(png_instantiate):
	(tiff_instantiate): Check for integer overflow before allocating
	memory for an image.

2009-06-20  Stephen Turnbull  <stephen@xemacs.org>

	* callint.c (Finteractive): Document that (interactive) must
	appear at the "top level" of a function definition to be effective.

2009-06-14  Aidan Kehoe  <kehoea@parhasard.net>

	* eval.c (For): 
	* eval.c (Fand): 
	* eval.c (Fif): 
	* eval.c (Fwhen): 
	* eval.c (Fcond):
	* eval.c (Fprogn): 
	* eval.c (Fprog1):
	* eval.c (Fprog2): 
	* eval.c (FletX): 
	* eval.c (Flet): 
	* eval.c (Fwhile): 
	* eval.c (Fdefvar): 
	* eval.c (Fdefconst): 
	* eval.c (Frun_hooks): 
	* eval.c (Frun_hooks_with_args): 
	* eval.c (Frun_hooks_with_args_until_success):
	* eval.c (Frun_hooks_with_args_until_failure):
	Add arguments information, understood by #'function-arglist, to
	all these special forms, functions and macros. Remove the 
	argument information that was already there that was not
	understood by #'function-arglist. 

2009-06-02  Ron Isaacson  <Ron.Isaacson@morganstanley.com>

	* nt.c (mswindows_link): Fix off-by-one bug in mswindows_link:
	need to include trailing NUL in length of file name.

ChangeLog Entries from tests/ChangeLog

goto announcement, summary, changes


2011-04-26  Stephen J. Turnbull  <stephen@xemacs.org>

	* XEmacs 21.5.30 "garlic" is released.

2011-04-24  Aidan Kehoe  <kehoea@parhasard.net>

	* automated/lisp-tests.el:
	Check that distinct symbol macros with identical string names
	expand to different things.

2011-03-24  Jerry James  <james@xemacs.org>

	* automated/query-coding-tests.el: "Compatiblity" -> "Compatibility".
	* gtk/event-stream-tests.el: "proccess" -> "process".

2011-03-17  Aidan Kehoe  <kehoea@parhasard.net>

	* automated/lisp-tests.el:
	Only test the various old-* function if old-eq is bound and a
	subr.

2011-03-11  Aidan Kehoe  <kehoea@parhasard.net>

	* automated/byte-compiler-tests.el:
	(defconst :foo 1) now gives a warning when byte-compiled, check
	for that.
	(setq :foo 1) now errors with interpreted code, but succeeds with
	byte-compiled code; check for the former, wrap a
	Known-Bug-Expect-Failure around a check for the error in the
	latter case, we can't yet remove this behaviour while we're using
	packages compiled by 21.4.
	* automated/lisp-tests.el (wrong-type-argument):
	Integer zero is a valid argument to #'substring-no-properties, use
	Assert not Check-Error for it. Check some other aspects of the
	functionality of #'substring-no-properties in passing.

2011-02-24  Aidan Kehoe  <kehoea@parhasard.net>

	* automated/lisp-tests.el (substring-no-properties):
	Make sure this function checks its arguments' types, the absence
	of which was revealed by Raymond Toy's bug report of
	http://mid.xemacs.org/4D65D413.5050103@gmail.com .

2011-02-10  Aidan Kehoe  <kehoea@parhasard.net>

	* automated/lisp-tests.el:
	* automated/lisp-tests.el (mapcar*):
	If multiple SEQUENCE arguments are passed to #'mapcar*, and the
	last one is circular while the others aren't, make sure that
	#'mapcar* doesn't error.

2011-02-07  Aidan Kehoe  <kehoea@parhasard.net>

	* automated/lisp-tests.el:
	Test lexical scope for `block', `return-from'; add a
	Known-Bug-Expect-Failure for a contorted example that fails when
	byte-compiled.

2011-01-23  Aidan Kehoe  <kehoea@parhasard.net>

	* automated/lisp-tests.el:
	When sanity-checking :start and :end keyword arguments, loop at
	macroexpansion time, not runtime, allowing us to pick up any
	compiler macros and giving a clearer *Test-Log* buffer.

2011-01-23  Aidan Kehoe  <kehoea@parhasard.net>

	* automated/lisp-tests.el (test-fun):
	#'delete* and friends can now throw a wrong-type-argument if
	handed a non-sequence; accept this too when checking for an error
	when passing a fixnum as the SEQUENCE argument.
	Check #'remove*, #'remove and #'remq too.

2011-01-15  Aidan Kehoe  <kehoea@parhasard.net>

	* automated/lisp-tests.el (list): Test #'concatenate, especially
	with more complicated TYPEs, which were previously not accepted by
	the function.

2011-01-14  Aidan Kehoe  <kehoea@parhasard.net>

	* automated/lisp-tests.el (list): Test #'find, especially the
	:default keyword, not specified by Common Lisp.

2011-01-02  Aidan Kehoe  <kehoea@parhasard.net>

	* automated/lisp-tests.el (test-fun): Test member*, assoc*,
	rassoc*, delete* here too.

2010-12-30  Aidan Kehoe  <kehoea@parhasard.net>

	* automated/lisp-tests.el (wrong-type-argument): Add a missing
	parenthesis here.
	Make sure #'count #'position #'find #'delete* #'remove* #'reduce
	#'delete-duplicates #'remove-duplicates #'replace #'mismatch
	#'search sanity check their :start and :end keyword arguments.

2010-11-20  Aidan Kehoe  <kehoea@parhasard.net>

	* automated/lisp-tests.el:
	* automated/lisp-tests.el (featurep):
	* automated/lisp-tests.el (wrong-type-argument):
	* automated/mule-tests.el (featurep):
	Check for args-out-of-range errors instead of wrong-type-argument
	errors in various places when code is handed a large bignum
	instead of a fixnum.
	Also check for the wrong-type-argument errors when giving the same
	code a non-integer value.

2010-11-06  Aidan Kehoe  <kehoea@parhasard.net>

	* automated/lisp-tests.el (list-nreverse):
	Check that #'reverse and #'nreverse handle non-list sequences
	properly.

2010-11-06  Aidan Kehoe  <kehoea@parhasard.net>

	* automated/lisp-tests.el (malformed-list): Check that #'mapcar,
	#'map and #'list-length throw this error when appropriate.

2010-10-25  Aidan Kehoe  <kehoea@parhasard.net>

	* automated/lisp-tests.el:
	Test format strings with %b, too.

2010-06-14  Stephen J. Turnbull  <stephen@xemacs.org>

	* automated/lisp-reader-tests.el:
	Change references to SXEmacs to XEmacs.

2010-06-14  Stephen J. Turnbull  <stephen@xemacs.org>

	* gtk/xemacs-toolbar.el:
	* gtk/toolbar-test.el:
	* gtk/statusbar-test.el:
	* gtk/gtk-extra-test.el:
	* gtk/gtk-embedded-test.el:
	* gtk/gnome-test.el:
	* gtk/event-stream-tests.el:
	Add copyright notice based on internal evidence.
	
2010-06-14  Stephen J. Turnbull  <stephen@xemacs.org>

	* reproduce-crashes.el: Amend "this file" to "XEmacs is free...".

2010-10-14  Aidan Kehoe  <kehoea@parhasard.net>

	* automated/lisp-tests.el (x):
	Test #'nbutlast, #'butlast with dotted lists.
	Check that #'ldiff and #'tailp don't hang on circular lists; check
	that #'tailp returns t with circular lists when that is
	appropriate.  Test them both with dotted lists.

2010-10-12  Aidan Kehoe  <kehoea@parhasard.net>

	* automated/lisp-tests.el:
	Make sure circularity checking with #'merge is sane.

2010-08-15  Aidan Kehoe  <kehoea@parhasard.net>

	* automated/lisp-tests.el:
	(not, not, invalid-argument, invalid-argument):
	Check that error messages from the image specifier instantiator
	code are clearer than they used to be.

2010-08-15  Aidan Kehoe  <kehoea@parhasard.net>

	* automated/lisp-tests.el:
	Test that symbols with names that look like ratios are printed
	distinctly from the equivalent ratios.

2010-07-24  Aidan Kehoe  <kehoea@parhasard.net>

	* automated/lisp-tests.el:
	Test a couple of things #'reduce was just made more careful
	about.

2010-06-13  Stephen J. Turnbull  <stephen@xemacs.org>

	* gtk/event-stream-tests.el:
	* gtk/gnome-test.el:
	* gtk/gtk-embedded-test.el:
	* gtk/gtk-extra-test.el:
	* gtk/statusbar-test.el:
	* gtk/toolbar-test.el:
	* gtk/xemacs-toolbar.el:
	Correct FSF address in permission notice.

2010-06-02  Aidan Kehoe  <kehoea@parhasard.net>

	* gtk/gtk-test.el (gtk-test):
	Remove a conditional for InfoDock.

2010-04-05  Aidan Kehoe  <kehoea@parhasard.net>

	* automated/hash-table-tests.el:
	Test the new built-in #'equalp hash table test. Test
	#'define-hash-table-test.
	* automated/lisp-tests.el:
	When asserting that two objects are #'equalp, also assert that 
	their #'equalp-hash is identical. 

2010-04-03  Aidan Kehoe  <kehoea@parhasard.net>

	* automated/lisp-tests.el:
	Correct the parentheses in the equalp tests, so they get run more
	often.
	Within them, only attempt to read a bignum if the bignum
	feature is present; actually evaluate (/ 3/2 0.2), (/ 3/2 0.7) if
	the ratio feature is present.
	Construct the (Assert ...) calls at
	macroexpansion time, so the output in the *Test-Log* buffer is
	more informative.

2010-03-18  Ben Wing  <ben@xemacs.org>

	* automated/c-tests.el:
	* automated/c-tests.el (when):
	Use `with-temp-buffer' so results don't get written into source
	file.

2010-03-12  Ben Wing  <ben@xemacs.org>

	* automated/base64-tests.el (bt-base64-encode-string):
	* automated/base64-tests.el (bt-base64-decode-string):
	* automated/base64-tests.el (for):
	* automated/byte-compiler-tests.el:
	* automated/byte-compiler-tests.el (before-and-after-compile-equal):
	* automated/case-tests.el (downcase-string):
	* automated/case-tests.el (uni-mappings):
	* automated/ccl-tests.el (ccl-test-normal-expr):
	* automated/ccl-tests.el (ccl-test-map-instructions):
	* automated/ccl-tests.el (ccl-test-suites):
	* automated/database-tests.el (delete-database-files):
	* automated/extent-tests.el (let):
	* automated/extent-tests.el (insert):
	* automated/extent-tests.el (props):
	* automated/file-tests.el:
	* automated/file-tests.el (for):
	* automated/hash-table-tests.el (test):
	* automated/hash-table-tests.el (for):
	* automated/hash-table-tests.el (ht):
	* automated/hash-table-tests.el (iterations):
	* automated/hash-table-tests.el (h1):
	* automated/hash-table-tests.el (equal):
	* automated/hash-table-tests.el (=):
	* automated/lisp-tests.el:
	* automated/lisp-tests.el (eq):
	* automated/lisp-tests.el (test-setq):
	* automated/lisp-tests.el (my-vector):
	* automated/lisp-tests.el (x):
	* automated/lisp-tests.el (equal):
	* automated/lisp-tests.el (y):
	* automated/lisp-tests.el (featurep):
	* automated/lisp-tests.el (=):
	* automated/lisp-tests.el (six):
	* automated/lisp-tests.el (three):
	* automated/lisp-tests.el (one):
	* automated/lisp-tests.el (two):
	* automated/lisp-tests.el (five):
	* automated/lisp-tests.el (test1):
	* automated/lisp-tests.el (division-test):
	* automated/lisp-tests.el (for):
	* automated/lisp-tests.el (check-function-argcounts):
	* automated/lisp-tests.el (z):
	* automated/lisp-tests.el (eql):
	* automated/lisp-tests.el (test-harness-risk-infloops):
	* automated/lisp-tests.el (erase-buffer):
	* automated/lisp-tests.el (sym):
	* automated/lisp-tests.el (new-char):
	* automated/lisp-tests.el (new-load-file-name):
	* automated/lisp-tests.el (cl-floor):
	* automated/lisp-tests.el (foo):
	* automated/md5-tests.el (lambda):
	* automated/md5-tests.el (large-string):
	* automated/md5-tests.el (mapcar):
	* automated/md5-tests.el (insert):
	* automated/mule-tests.el:
	* automated/mule-tests.el (test-chars):
	* automated/mule-tests.el (existing-file-name):
	* automated/mule-tests.el (featurep):
	* automated/query-coding-tests.el (featurep):
	* automated/regexp-tests.el:
	* automated/regexp-tests.el (insert):
	* automated/regexp-tests.el (Assert):
	* automated/regexp-tests.el (=):
	* automated/regexp-tests.el (featurep):
	* automated/regexp-tests.el (text):
	* automated/regexp-tests.el (text1):
	* automated/regexp-tests.el ("aáa"):
	* automated/regexp-tests.el (eql):
	* automated/search-tests.el (insert):
	* automated/search-tests.el (featurep):
	* automated/search-tests.el (let):
	* automated/search-tests.el (boundp):
	* automated/symbol-tests.el:
	* automated/symbol-tests.el (name):
	* automated/symbol-tests.el (check-weak-list-unique):
	* automated/symbol-tests.el (string):
	* automated/symbol-tests.el (list):
	* automated/symbol-tests.el (foo):
	* automated/symbol-tests.el (eq):
	* automated/symbol-tests.el (fresh-keyword-name):
	* automated/symbol-tests.el (print-gensym):
	* automated/symbol-tests.el (mysym):
	* automated/syntax-tests.el (test-forward-word):
	* automated/syntax-tests.el (test-backward-word):
	* automated/syntax-tests.el (test-syntax-table):
	* automated/syntax-tests.el (with-syntax-table):
	* automated/syntax-tests.el (Skip-Test-Unless):
	* automated/syntax-tests.el (with):
	* automated/tag-tests.el (testfile):
	* automated/weak-tests.el (w):
	* automated/weak-tests.el (p):
	* automated/weak-tests.el (a):
	Undo change of e.g. (Assert (equalp ...)) to (Assert-equalp ...).
	Get rid of `Assert-equalp' and friends, `Assert-test', and
	`Assert-test-not'.  Instead, make `Assert' smart enough to do the
	equivalent functionality when an expression like (Assert (equalp ...))
	is seen.

2010-03-07  Stephen J. Turnbull  <stephen@xemacs.org>

	* automated/mule-tests.el (string character conversion):
	Test escape-quoted for the range U+0000 to U+00FF.
	Inspired by Ben's patch to fix quoting of specials from C1 controls.

2010-02-22  Ben Wing  <ben@xemacs.org>

	* reproduce-crashes.el (8):
	objects*.[ch] -> fontcolor*.[ch].

2010-02-22  Ben Wing  <ben@xemacs.org>

	* automated/syntax-tests.el:
	Use Known-Bug-Expect-Error, not Known-Bug-Expect-Failure, when
	error expected; else test suite will abort this file.
	
2010-02-22  Ben Wing  <ben@xemacs.org>

	* automated/test-harness.el (test-harness-from-buffer):
	Remove unused binding.

2010-02-15  Ben Wing  <ben@xemacs.org>

	* automated/search-tests.el (let):
	* automated/search-tests.el (boundp):
	debug-xemacs-searches renamed to debug-searches.

2010-02-20  Ben Wing  <ben@xemacs.org>

	* automated/test-harness.el:
	* automated/test-harness.el (test-harness-bug-expected): New.
	* automated/test-harness.el (test-harness-unexpected-error-enter-debugger): New.
	* automated/test-harness.el (test-harness-assertion-failure-enter-debugger): New.
	* automated/test-harness.el (test-harness-unexpected-error-show-backtrace): New.
	* automated/test-harness.el (test-harness-assertion-failure-show-backtrace): New.
	* automated/test-harness.el (test-harness-assertion-failure-do-debug): New.
	* automated/test-harness.el (test-harness-unexpected-error-do-debug): New.
	* automated/test-harness.el (test-harness-unexpected-error-condition-handler): New.
	* automated/test-harness.el (test-harness-error-wrap): New.
	* automated/test-harness.el (test-harness-from-buffer):
	New variables that allow a backtrace to be displayed and/or the
	debugger to be entered when an assertion failure or unexpected error
	occurs.  By default, debugging occurs when interactive and debug-on-error
	is set, and backtrace-displaying occurs either
	(a) when stack-trace-on-error is set, or (b) always, when an unexpected
	error occurs. (However, no backtracing or debugging occurs when a bug
	is expected.)

2010-02-19  Aidan Kehoe  <kehoea@parhasard.net>

	* automated/lisp-tests.el:
	Change the #'split-string-by-char text to use US federal
	government information instead of a couple of sentences from the
	OED; the latter would probably have qualified as non-infringement,
	but with the former the question won't arise.
	(The German text in the same tests is from a very public domain
	19th-century work.)

2010-02-19  Aidan Kehoe  <kehoea@parhasard.net>

	* automated/lisp-tests.el:
	Check that multiple values are discarded correctly with #'mapcar
	and one SEQUENCE.
	(equal): 

2010-02-05  Jerry James  <james@xemacs.org>

	* DLL/dltest.c: Remove old test.  Building and using any module now
	provides a better test than this.

2010-02-05  Jerry James  <james@xemacs.org>

	* frame.el: Martin Buchholz claims ownership.

2010-01-25  Ben Wing  <ben@xemacs.org>

	* automated/file-tests.el:
	New file.
	
	* automated/mule-tests.el (featurep):
	
	* automated/test-harness.el (test-harness-from-buffer):
	* automated/test-harness.el (batch-test-emacs):

2010-01-25  Ben Wing  <ben@xemacs.org>

	* automated/file-tests.el:
	* automated/mule-tests.el (featurep):
	Clean up charsets-in-HELLO test and fix the list of expected
	charsets.
	
	* automated/test-harness.el (test-harness-from-buffer):
	Reverse order of "got" and "expected" values so it matches
	order of call to comparison.
	
	* automated/test-harness.el (batch-test-emacs):
	Update doc to indicate that a directory is allowed.

2010-02-01  Ben Wing  <ben@xemacs.org>

	* automated/case-tests.el:
	* automated/case-tests.el (uni-mappings):
	* automated/search-tests.el:
	Delete old pristine-case-table code.  Rewrite the Unicode torture
	test to take into account whether overlapping mappings exist for
	more than one character, and not doing the upcase/downcase
	comparisons in such cases.
	
	* automated/lisp-tests.el (foo):
	* automated/lisp-tests.el (string-variable):
	* automated/lisp-tests.el (featurep):
	Replace Assert (equal ... with Assert-equal; same for other types
	of equality.  Replace some awkward equivalents of Assert-equalp
	with Assert-equalp.  Add lots of equalp tests.
	
	* automated/case-tests.el:
	* automated/regexp-tests.el:
	* automated/search-tests.el:
	Fix up the comments at the top of the files.  Move rules about where
	to put tests into case-tests.el.
	
	* automated/test-harness.el:
	* automated/test-harness.el (test-harness-aborted-summary-template): New.
	* automated/test-harness.el (test-harness-from-buffer):
	* automated/test-harness.el (batch-test-emacs):
	Fix Assert-test-not.  Create Assert-not-equal and variants.
	Delete the doc strings from all these convenience functions to avoid
	excessive repetition; instead use one copy in a comment.

2010-01-31  Aidan Kehoe  <kehoea@parhasard.net>

	* automated/search-tests.el:
	Check that multidimensional characters with repeated octets and
	case information force simple_search(), since boyer_moore()
	doesn't understand them when constructing its stride table.
	In passing; correct my spelling.
	* automated/case-tests.el (uni-mappings):
	In passing; delete a couple of redundant tests, correct the logic
	of another.

2010-01-30  Ben Wing  <ben@xemacs.org>

	* automated/search-tests.el:
	* automated/search-tests.el (insert):
	Use LF not CRLF for line endings.

2010-01-30  Aidan Kehoe  <kehoea@parhasard.net>

	* automated/regexp-tests.el:
	Make sure that control-1 characters are no longer treated as
	second-class citizens in regexp ranges, as in
	http://mid.xemacs.org/18829.34118.709782.704574@parhasard.net .

2010-01-29  Ben Wing  <ben@xemacs.org>

	* automated/search-tests.el:
	New file.

	* automated/search-tests.el:
	* automated/case-tests.el:
	* automated/case-tests.el (pristine-case-table): Removed.
	* automated/case-tests.el (uni-mappings):
	* automated/lisp-tests.el:
	* automated/regexp-tests.el:
	Extract some search-related code from case-tests and regexp-tests
	and move to search-tests.  Move some regexp-related code from
	lisp-tests to regexp-tests.

	Write a comment trying to express the proper division of labor
	between case-tests, search-tests and regexp-tests.

	Add a new test for the Control-1 search bug.

	Fix a buggy test in the Unicode torture-test section of case-tests.el.

2010-01-27  Ben Wing  <ben@xemacs.org>

	* automated/test-harness.el (test-harness-from-buffer):
	Update doc string of `Assert-test' and change the failing-case
	message to be clearer.  Also add `Assert-test-not' for asserting
	that a comparison should fail.

2010-01-27  Ben Wing  <ben@xemacs.org>

	* automated/case-tests.el:
	* automated/case-tests.el (char-as-unicode-escape): New.
	Add a "torture test" that uses the full set of lower-upper case
	mappings from Unicode.  See whether strings composed of all
	lower-case characters across all languages will correctly be
	uppercased to the string equivalent to all uppercase characters,
	and vice-versa, and whether you can correctly do a case-folding
	search in a buffer for these characters, all at once or individually.
	Result: a number of assertion failures.

2010-01-26  Aidan Kehoe  <kehoea@parhasard.net>

	* automated/mule-tests.el:
	Only give the list of character sets in HELLO once; correct it to
	reflect its current contents and the extant character sets.

2010-01-14  Ben Wing  <ben@xemacs.org>

	* automated/mule-tests.el (featurep):
	Accidentally included changes from Unicode-internal ws that
	broke things.

2010-01-14  Ben Wing  <ben@xemacs.org>

	* automated/base64-tests.el (bt-base64-encode-string):
	* automated/base64-tests.el (bt-base64-decode-string):
	* automated/base64-tests.el (for):
	* automated/byte-compiler-tests.el:
	* automated/byte-compiler-tests.el (before-and-after-compile-equal):
	* automated/case-tests.el:
	* automated/case-tests.el (downcase-string):
	* automated/case-tests.el (insert):
	* automated/case-tests.el (featurep):
	* automated/case-tests.el (let):
	* automated/case-tests.el (boundp):
	* automated/ccl-tests.el (ccl-test-normal-expr):
	* automated/ccl-tests.el (ccl-test-map-instructions):
	* automated/ccl-tests.el (ccl-test-suites):
	* automated/database-tests.el (delete-database-files):
	* automated/extent-tests.el (let):
	* automated/extent-tests.el (insert):
	* automated/extent-tests.el (props):
	* automated/hash-table-tests.el (test):
	* automated/hash-table-tests.el (for):
	* automated/hash-table-tests.el (ht):
	* automated/hash-table-tests.el (iterations):
	* automated/hash-table-tests.el (h1):
	* automated/hash-table-tests.el (make-hash-table):
	* automated/hash-table-tests.el (sxhash):
	* automated/lisp-tests.el:
	* automated/lisp-tests.el (setq):
	* automated/lisp-tests.el (test-setq):
	* automated/lisp-tests.el (my-vector):
	* automated/lisp-tests.el (nconc):
	* automated/lisp-tests.el (x):
	* automated/lisp-tests.el (y):
	* automated/lisp-tests.el (butlast):
	* automated/lisp-tests.el (+):
	* automated/lisp-tests.el (featurep):
	* automated/lisp-tests.el (-):
	* automated/lisp-tests.el (six):
	* automated/lisp-tests.el (three):
	* automated/lisp-tests.el (1):
	* automated/lisp-tests.el (one):
	* automated/lisp-tests.el (two):
	* automated/lisp-tests.el (0):
	* automated/lisp-tests.el (five):
	* automated/lisp-tests.el (logxor):
	* automated/lisp-tests.el (test1):
	* automated/lisp-tests.el (division-test):
	* automated/lisp-tests.el (for):
	* automated/lisp-tests.el (check-function-argcounts):
	* automated/lisp-tests.el (type-of):
	* automated/lisp-tests.el (mapcar):
	* automated/lisp-tests.el (z):
	* automated/lisp-tests.el (mapvector):
	* automated/lisp-tests.el (mapconcat):
	* automated/lisp-tests.el ([1 2 3]):
	* automated/lisp-tests.el (#*010):
	* automated/lisp-tests.el (test-harness-risk-infloops):
	* automated/lisp-tests.el (erase-buffer):
	* automated/lisp-tests.el (sym):
	* automated/lisp-tests.el (subseq):
	* automated/lisp-tests.el (length):
	* automated/lisp-tests.el (102):
	* automated/lisp-tests.el (read):
	* automated/lisp-tests.el (new-char):
	* automated/lisp-tests.el (new-load-file-name):
	* automated/lisp-tests.el (cl-floor):
	* automated/lisp-tests.el (foo):
	* automated/lisp-tests.el (string-variable):
	* automated/md5-tests.el (lambda):
	* automated/md5-tests.el (large-string):
	* automated/md5-tests.el (mapcar):
	* automated/md5-tests.el (insert):
	* automated/mule-tests.el (test-chars):
	* automated/mule-tests.el (existing-file-name):
	* automated/mule-tests.el (featurep):
	* automated/query-coding-tests.el (featurep):
	* automated/regexp-tests.el:
	* automated/regexp-tests.el (insert):
	* automated/regexp-tests.el (Assert):
	* automated/regexp-tests.el (string-match):
	* automated/regexp-tests.el (featurep):
	* automated/regexp-tests.el (text):
	* automated/regexp-tests.el (text1):
	* automated/regexp-tests.el ("aáa"):
	* automated/symbol-tests.el:
	* automated/symbol-tests.el (name):
	* automated/symbol-tests.el (check-weak-list-unique):
	* automated/symbol-tests.el (string):
	* automated/symbol-tests.el (list):
	* automated/symbol-tests.el (foo):
	* automated/symbol-tests.el (read):
	* automated/symbol-tests.el (eval):
	* automated/symbol-tests.el (fresh-keyword-name):
	* automated/symbol-tests.el (set):
	* automated/symbol-tests.el (print-gensym):
	* automated/symbol-tests.el (mysym):
	* automated/syntax-tests.el (test-forward-word):
	* automated/syntax-tests.el (test-backward-word):
	* automated/syntax-tests.el (test-syntax-table):
	* automated/syntax-tests.el (with-syntax-table):
	* automated/syntax-tests.el (Skip-Test-Unless):
	* automated/syntax-tests.el (with):
	* automated/tag-tests.el (testfile):
	* automated/test-harness.el:
	* automated/test-harness.el (test-harness-from-buffer):
	* automated/weak-tests.el (w):
	* automated/weak-tests.el (p):
	* automated/weak-tests.el (a):
	Create Assert-eq, Assert-equal, etc.  These are equivalent to
	(Assert (eq ...)) etc. but display both the actual value and the
	expected value of the comparison.  Use them throughout the test
	suite.

	* automated/test-harness.el (Assert):
	Clean up code and doc string of macro Assert.
	

2010-01-13  Ben Wing  <ben@xemacs.org>

	* automated/test-harness.el (Assert):
	Need to quote the assertion expression, but not the description
	expression.

2010-01-11  Ben Wing  <ben@xemacs.org>

	* automated/mule-tests.el (featurep):
	Use utf-8 as file-name-coding-system under Cygwin 1.7+.

2010-02-07  Aidan Kehoe  <kehoea@parhasard.net>

	* automated/lisp-tests.el (split-string-by-char):
	Test this function, and its new ESCAPE-CHAR argument.

2010-01-01  Aidan Kehoe  <kehoea@parhasard.net>

	* automated/lisp-tests.el: 
	Test #'functionp, making sure it gives nil for special forms.

2009-12-31  Aidan Kehoe  <kehoea@parhasard.net>

	* automated/lisp-tests.el: 
	Test much of the functionality of equalp; add a pointer to Paul
	Dietz' ANSI test suite for this function, converted to Emacs
	Lisp. Not including the tests themselves in XEmacs because who
	owns the copyright on the files is unclear and the GCL people
	didn't respond to my queries. 

2009-12-21  Jerry James  <james@xemacs.org>

	* Dnd/README: Remove references to OffiX drag-and-drop.
	* Dnd/droptest.el (start-drag): Remove OffiX support.
	(start-region-drag): Ditto.

2009-12-18  Jerry James  <james@xemacs.org>

	* glyph-test.el: Add copyright and GPL v2 or later header with
	permission of Andy Piper.
	* gutter-test.el: Ditto.

2009-12-10  Jerry James  <james@xemacs.org>

	* auc-tex-test: Remove obsolete file.

2009-11-10  Jerry James  <james@xemacs.org>

	* autoconf/regressiontest.pl: Remove reference to dynodump.

2009-11-16  Stephen J. Turnbull  <stephen@xemacs.org>

	Remove C asserts from test-format-data-conversion.
	See also changes in src/tests.c.

	* automated/c-tests.el (main loop):
	Process a list of results passed out of the C-level test function.

	* automated/test-harness.el (Assert):
	Allow an optional description for use in loops and other cases
	where the assertion itself is not informative (eg, c-test.el).

2009-11-16  Stephen J. Turnbull  <stephen@xemacs.org>

	* reproduce-crashes.el (13): New bug reported by Adam Sjogren.

2009-11-14  Aidan Kehoe  <kehoea@parhasard.net>

	* automated/lisp-tests.el: 
	Don't call Known-Bug-Expect-Failure now that the particular letf
	bug it tickled is fixed.

2009-11-11  Stephen Turnbull  <stephen@xemacs.org>

	* sigpipe.c: Add standard permission notice, after email
	confirmation from Mly.

	* autoconf/regressiontest.pl: Add Malcolm's copyright and standard
	permission notice, after email confirmation from Malcolm.

2009-11-02  Stephen Turnbull  <stephen@xemacs.org>

	* automated/lisp-tests.el: Fix typo in equalp test.
	Add more tests of equalp.

2009-11-02  Stephen Turnbull  <stephen@xemacs.org>

	* automated/mule-tests.el (default-process-coding-system):
	Check that binding it to nil is OK.

2009-11-01  Aidan Kehoe  <kehoea@parhasard.net>

	* automated/lisp-tests.el: 
	Check that (equal "hi there" [hi there]) gives nil, instead of
	erroring; fixes a bug Ben introduced in 2002. 

2009-10-12  Aidan Kehoe  <kehoea@parhasard.net>

	* automated/mule-tests.el : 
	Revert to the old Unicode mapping for scaron once we're finished
	testing it. 
	Don't check the fixed-width coding systems with odd line endings
	for ASCII-transparency; maybe we should, but that would require
	that invalid sequence characters for on-disk ?\x0a be generated by
	Macintosh line-ending coding systems, for example. 

2009-10-05  Jerry James  <jamesjer@xemacs.org>

	* gtk/event-stream-tests.el: Add GPL v2 or later notice with
	explicit permission of Bill Perry (private email).
	* gtk/gnome-test.el: Ditto.
	* gtk/gtk-embedded-test.el: Ditto.
	* gtk/gtk-extra-test.el: Ditto.
	* gtk/statusbar-test.el: Ditto.
	* gtk/toolbar-test.el: Ditto.
	* gtk/xemacs-toolbar.el: Ditto.

2009-09-19  Aidan Kehoe  <kehoea@parhasard.net>

	* automated/mule-tests.el: 
	Check a coding system's type, not an 8-bit-fixed property, for
	whether that coding system should be treated as a fixed-width
	coding system.
	* automated/query-coding-tests.el:
	Don't test the query coding functionality for mswindows-multibyte
	coding systems, it's not yet implemented.

2009-09-11  Aidan Kehoe  <kehoea@parhasard.net>

	* automated/mule-tests.el (featurep): 
	Check that a Unicode bug with very short inputs has been fixed.

2009-09-02  Jerry James  <james@xemacs.org>

	* reproduce-crashes.el (12): New bug.

2009-08-31  Aidan Kehoe  <kehoea@parhasard.net>

	* automated/lisp-tests.el (Assert-rounding): 
	Remove an overly-verbose failure message here. 
	Correct a couple of tests which were buggy in themselves. Add
	three new tests, checking the behaviour of #'or and #'and when
	passed zero arguments, and a Known-Bug-Expect-Failure call
	involving letf and values. (The bug predates the C-level
	multiple-value implementation.) 

2009-08-16  Aidan Kehoe  <kehoea@parhasard.net>

	* automated/lisp-tests.el (foo): 
	Test the Common Lisp-compatibile multiple value functionality.

2009-08-11  Aidan Kehoe  <kehoea@parhasard.net>

	* automated/lisp-tests.el: 
	Test the new Common Lisp-compatible rounding functions available in
	C. 
	(generate-rounding-output): Provide a function useful for
	generating the data for the rounding functions tests. 

2009-08-10  Aidan Kehoe  <kehoea@parhasard.net>

	* automated/mule-tests.el: 
	Revert to the original language environment once we've tested all
	the others, preventing things like a Chinese terminal coding
	system being selected when you actually have a UTF-8 tty.

2009-07-13  Aidan Kehoe  <kehoea@parhasard.net>

	* automated/mule-tests.el: 
	Now that find-file on a nonexistent path gives a modified buffer,
	we want to set this kind of buffer to be non-modified here before
	killing it. 

2009-07-11  Aidan Kehoe  <kehoea@parhasard.net>

	* automated/mule-tests.el:
	Check for Richard Zidlicky's bug of
	http://mid.xemacs.org/20090602194123.GA5163@linux-m68k.org; also
	check that supplying CODESYS to #'find-file is respected both for
	nonexistent files and zero-length existing files.

goto announcement, summary, changes

 
 

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