* 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.
* Brief summary of Changes to XEmacs 21.5.30 "garlic"
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_le!
ft, 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
-------- ChangeLog Entries from ChangeLog --------
2011-04-26 Stephen J. Turnbull <stephen(a)xemacs.org>
* XEmacs 21.5.30 "garlic" is released.
2011-03-24 Jerry James <james(a)xemacs.org>
* INSTALL: "youself" -> "yourself".
* aclocal.m4: "dependancy" -> "dependency".
* configure.ac: "priveleges" -> "privileges".
* configure: Regenerate.
2010-11-02 Mats Lidell <matsl(a)xemacs.org>
* netinstall: removed
2010-06-14 Stephen J. Turnbull <stephen(a)xemacs.org>
* aclocal.m4: Add standard permission boilerplate.
2010-06-02 Aidan Kehoe <kehoea(a)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(a)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(a)parhasard.net>
* CHANGES-beta:
Update with my changes to the trunk since 2009-09-20.
2010-03-18 Ben Wing <ben(a)xemacs.org>
* CHANGES-beta:
Partially updated with last couple of months worth of changes.
2010-03-18 Mike Sperber <mike(a)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(a)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(a)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(a)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(a)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(a)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(a)xemacs.org>
* configure: Rebuild.
2010-01-24 Ben Wing <ben(a)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(a)xemacs.org>
* configure:
* configure.ac (TAB):
USE_XFT* -> HAVE_XFT*.
2010-01-14 Ben Wing <ben(a)xemacs.org>
* PROBLEMS:
Add description of crash on recent Cygwin 1.7 when using C++, NEWGC
and optimization.
2010-01-16 Aidan Kehoe <kehoea(a)parhasard.net>
* configure: Regenerate, now we no longer look for rint().
2010-01-20 Ben Wing <ben(a)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(a)parhasard.net>
* configure: Regenerate, now we no longer look for rint().
2010-01-13 Jerry James <james(a)xemacs.org>
* configure.ac: Update comment about Cygwin and pdump.
2010-01-13 Ben Wing <ben(a)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(a)xemacs.org>
* configure:
* configure.ac (TAB):
Add check for cygwin_conv_path().
2010-01-11 Ben Wing <ben(a)xemacs.org>
* configure:
* configure.ac (TAB):
Define USE_GPLUSPLUS when compiling with g++.
2010-01-06 Jerry James <james(a)xemacs.org>
* configure.ac: Add --with-valgrind option.
* configure: Regenerate.
2009-12-21 Jerry James <james(a)xemacs.org>
* INSTALL: Remove references to OffiX.
* configure.ac: Remove support for OffiX drag-and-drop.
* configure: Regenerate.
2009-12-21 Jerry James <james(a)xemacs.org>
* INSTALL: Replace reference to yow.
2009-12-18 Jerry James <james(a)xemacs.org>
* INSTALL: Remove reference to rcs-checkin.
2009-12-18 Jerry James <james(a)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(a)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(a)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(a)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(a)xemacs.org>
* PROBLEMS: Describe duplicate symbol warnings on Mac OS X.
2009-11-11 Stephen Turnbull <stephen(a)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(a)xemacs.org>
* configure.ac: Don't define GNU_MALLOC, as there is no longer an
"old" GNU malloc.
2009-10-05 Jerry James <james(a)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(a)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(a)xemacs.org>
* Makefile.in.in: Don't install silly symlinks when $(prefix) !=
$(exec_prefix).
2009-07-28 Mike Sperber <mike(a)xemacs.org>
* configure.ac: Expand ï¼ PREFIXï¼ in paths.h.
2009-07-28 Mike Sperber <mike(a)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(a)xemacs.org>
* configure.ac (XE_MERGED_ARG): Use correct separator when
registering options to _AC_USER_OPTS.
-------- ChangeLog Entries from etc/ChangeLog --------
2011-04-26 Stephen J. Turnbull <stephen(a)xemacs.org>
* XEmacs 21.5.30 "garlic" is released.
2010-06-13 Stephen J. Turnbull <stephen(a)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(a)xemacs.org>
* dbxrc.in:
Rename objects.c -> fontcolor.c.
2010-02-22 Ben Wing <ben(a)xemacs.org>
* dbxrc.in:
test-harness.el is in lisp directory now.
2010-01-28 Jerry James <james(a)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(a)parhasard.net>
* HELLO: Encode the Arabic in arabic-iso8859-6 once more; delete
the old, experimentally-encoded Thai.
2010-01-04 Jerry James <james(a)xemacs.org>
* Emacs.ad: Change /usr/lib/X11 to /usr/share/X11.
* xemacs.1: Ditto.
2009-12-18 Jerry James <james(a)xemacs.org>
* idd/drop: Remove.
* idd/dropmsk: Remove.
2009-12-10 Jerry James <james(a)xemacs.org>
* sparcworks/SW.Editor.xpm: Remove obsolete file.
* sparcworks/sunpro-mailcap: Ditto.
* sparcworks: Remove empty directory.
2009-12-03 Jerry James <james(a)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(a)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 --------
2011-04-26 Stephen J. Turnbull <stephen(a)xemacs.org>
* XEmacs 21.5.30 "garlic" is released.
2011-01-15 Mike Sperber <mike(a)xemacs.org>
* fakemail.c: #include <osreldate.h> on FreeBSD, since we no
longer have freebsd.h.
2010-06-14 Stephen J. Turnbull <stephen(a)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(a)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(a)xemacs.org>
* ad2c: Correct FSF address in permission notice.
2010-06-02 Aidan Kehoe <kehoea(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)xemacs.org>
* make-mswin-unicode.pl: Add description of override.
2010-01-30 Ben Wing <ben(a)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(a)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(a)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(a)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(a)xemacs.org>
* fix-perms.sh: New file.
2009-12-21 Jerry James <james(a)xemacs.org>
* Makefile.in.in: Remove rules for building yow.
* yow.c: Removed.
2009-12-18 Jerry James <james(a)xemacs.org>
* Makefile.in.in: Don't install rcs-checkin.
* rcs-checkin: Remove obsolete file.
2009-12-18 Jerry James <james(a)xemacs.org>
* installexe.sh: Add copyright and GPL v2 or later header with
permission of Andy Piper.
2009-12-15 Jerry James <james(a)xemacs.org>
* ad2c: Add GPL v2 or later notice with permission of George Ferguson.
See the xemacs-beta thread beginning with message
<870180fe0912090940mac19378ydab5b5a04bf06cf8(a)mail.gmail.com>.
2009-12-15 Jerry James <james(a)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(a)xemacs.org>
* gnudepend.pl: Remove obsolete file.
* leditcfns.c: Ditto.
* wakeup.c: Ditto.
2009-12-08 Sjoerd Mullender <sjoerd(a)acm.org>
* etags.c (absolute_filename): Use memmove instead of strcpy to move
characters within a string.
2009-11-10 Jerry James <james(a)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(a)xemacs.org>
* insert-data-in-exec.c: Add BSD header, with permission of
Olivier Galibert. See xemacs-beta message with ID
<20091013224104.GA2573(a)dspnet.fr.eu.org>.
2009-08-15 It's me FKtPp ;) <m_pupil(a)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(a)xemacs.org>
* make-docfile.c (write_c_args): Parse UNUSED and USED_IF right.
-------- ChangeLog Entries from lisp/ChangeLog --------
2011-04-26 Stephen J. Turnbull <stephen(a)xemacs.org>
* XEmacs 21.5.30 "garlic" is released.
2011-04-24 Aidan Kehoe <kehoea(a)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(a)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(a)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(a)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(a)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(a)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(a)parhasard.net>
* cl.el (cadr, caddr, cadddr):
Document some equivalences for these functions.
2011-04-02 Aidan Kehoe <kehoea(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)parhasard.net>
* cl.el (acons): Removed, make the implementation in alloc.c
visible to Lisp instead.
2011-02-07 Aidan Kehoe <kehoea(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)parhasard.net>
* dialog.el (make-dialog-box): Correct a misplaced parenthesis
here, thank you Mats Lidell in 87zkr9gqrh.fsf(a)mail.contactor.se !
2011-01-02 Aidan Kehoe <kehoea(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)parhasard.net>
* test-harness.el (Check-Message):
Add an omitted comma here, thank you the buildbot.
2010-09-16 Aidan Kehoe <kehoea(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)parhasard.net>
* cl-extra.el (coerce):
Add fixnum as an accepted destination type.
2010-09-02 Aidan Kehoe <kehoea(a)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(a)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(a)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(a)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(a)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(a)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(a)parhasard.net>
* diagnose.el (show-gc-stats):
Fix a misspelling in a heading in this function.
2010-06-08 Aidan Kehoe <kehoea(a)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(a)parhasard.net>
* cl-seq.el (reduce):
Move this to fns.c.
2010-06-02 Aidan Kehoe <kehoea(a)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(a)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(a)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(a)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(a)parhasard.net>
* subr.el (float-time): Add this function, available in editfns.c
in GNU.
2010-05-16 Aidan Kehoe <kehoea(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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.gmane.org/1269358206.4873.1.camelï¼ fktpp-laptop .
2010-03-21 Aidan Kehoe <kehoea(a)parhasard.net>
* cl-extra.el (cl-prettyprint):
Handle (function ...) specially here, as we do (quote ...).
2010-03-20 Ben Wing <ben(a)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(a)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(a)xemacs.org>
* diagnose.el (show-memory-usage):
Rewrite to take into account API changes in memory-usage functions.
2010-03-20 Aidan Kehoe <kehoea(a)parhasard.net>
* cl-macs.el (notany, notevery):
Correct these compiler macros.
2010-03-15 Ben Wing <ben(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)xemacs.org>
* help.el: fux typo in comment. (oops)
2010-02-23 Ben Wing <ben(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)xemacs.org>
* unicode.el:
* unicode.el (for):
Convert file to utf-8.
2010-02-03 Aidan Kehoe <kehoea(a)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(a)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(a)xemacs.org>
* lisp-mode.el: Finish documenting `lisp-indent-specform',
on Mike Sperber's request.
2010-01-17 Ben Wing <ben(a)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(a)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(a)xemacs.org>
* simple.el (capitalize-string-as-title):
Use `with-string-as-buffer-contents' instead of emulating it.
2010-01-24 Ben Wing <ben(a)xemacs.org>
* syntax.el:
* syntax.el (make-syntax-table):
Expand doc string.
2010-01-22 Ben Wing <ben(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)xemacs.org>
* glyphs.el (init-glyphs): Recognize bitmaps/ directory as
containing bitmap files.
2010-01-09 Aidan Kehoe <kehoea(a)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(a)parhasard.net>
* indent.el (indent-region):
Make COLUMN optional as in GNU, merging Andreas Roehler's change
of
http://mid.gmane.org/4B46F5FC.2070506ï¼ online.de ; thank you
Andreas!
2010-01-07 Aidan Kehoe <kehoea(a)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(a)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(a)xemacs.org>
* cl-extra.el (get-properties): New.
2009-12-31 Aidan Kehoe <kehoea(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)xemacs.org>
* mule/cyrillic.el (for):
Upper and lowercase mappings were reversed for some old-Cyrillic
chars.
2010-01-31 Aidan Kehoe <kehoea(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)xemacs.org>
* glyphs.el (init-glyphs): Recognize bitmaps/ directory as
containing bitmap files.
2010-01-09 Aidan Kehoe <kehoea(a)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(a)parhasard.net>
* indent.el (indent-region):
Make COLUMN optional as in GNU, merging Andreas Roehler's change
of
http://mid.gmane.org/4B46F5FC.2070506ï¼ online.de ; thank you
Andreas!
2010-01-07 Aidan Kehoe <kehoea(a)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(a)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(a)xemacs.org>
* cl-extra.el (get-properties): New.
2009-12-31 Aidan Kehoe <kehoea(a)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(a)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(a)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(a)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(a)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(a)xemacs.org>
* gnuserv.el (gnuserv-program): Specifically look for gnuserv in
`exec-directory'.
2009-12-18 Aidan Kehoe <kehoea(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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.gmane.org/3ggprc2diyt.wl_Ron.Isaacsonï¼ morganstanley.com
2009-11-09 Didier Verna <didier(a)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(a)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(a)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(a)parhasard.net>
* cl-extra.el (equalp):
Don't error if handed a string and a non-string.
2009-11-01 Stephen Turnbull <stephen(a)xemacs.org>
* font.el (font-combine-fonts-internal):
Fix syntax error in call of delete-duplicates.
2009-11-01 Stephen Turnbull <stephen(a)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(a)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(a)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(a)parhasard.net>
* cl-macs.el (regexp-quote):
If STRING is constant, call regexp-quote at compile time.
2009-10-24 Aidan Kehoe <kehoea(a)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(a)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(a)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(a)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(a)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(a)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(a)xemacs.org>
* glyphs.el (make-image-specifier): Remove ancient comment about
lack of support for animated GIFs.
2009-08-16 Stephen J. Turnbull <stephen(a)xemacs.org>
* gutter-items.el (progress-feedback-dispatch-non-command-events):
Correct syntax of `condition-case'.
2009-06-28 Stephen J. Turnbull <stephen(a)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(a)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(a)xemacs.org>
* lisp.el (beginning-of-defun-raw): Unbreak; clean up sloppy
coding.
2009-09-28 Mike Sperber <mike(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)xemacs.org>
* simple.el:
* simple.el (turn-off-auto-fill): Sync from FSF 21.4.
2009-08-18 Aidan Kehoe <kehoea(a)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(a)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(a)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(a)parhasard.net>
* minibuf.el (read-from-minibuffer):
Use buffer (format " *Minibuf-%d*" (minibuffer-depth)), regardless
of depth.
2009-08-11 Aidan Kehoe <kehoea(a)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(a)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(a)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(a)parhasard.net>
* faces.el (set-face-background-pixmap-file):
Remove some extra parentheses revealed by change set 7757334005ae.
2009-08-07 Mike Sperber <mike(a)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(a)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(a)xemacs.org>
* startup.el (startup-setup-paths): Use `emacs-data-roots' instead
of `emacs-roots' where appropriate.
2009-07-28 Mike Sperber <mike(a)xemacs.org>
* startup.el (startup-setup-paths): Print a few more variables
upon --debug-paths.
2009-07-18 Aidan Kehoe <kehoea(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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.gmane.org/18986.53111.800393.660612ï¼ parhasard.net and
the related thread.
2009-06-06 Aidan Kehoe <kehoea(a)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(a)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 --------
2011-04-26 Stephen J. Turnbull <stephen(a)xemacs.org>
* XEmacs 21.5.30 "garlic" is released.
2011-01-11 Aidan Kehoe <kehoea(a)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(a)xemacs.org>
* lwlib-internal.h: Correct FSF address in permission notice.
2010-02-22 Ben Wing <ben(a)xemacs.org>
* lwlib-colors.h:
objects*.h -> fontcolor*.h.
2010-02-08 Ben Wing <ben(a)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(a)xemacs.org>
* xlwgauge.c (GaugeResize):
* xlwgauge.c (GaugeSize):
Fix warnings about possible use of uninitialized vars.
2010-02-01 Ben Wing <ben(a)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(a)xemacs.org>
* lwlib-internal.h: Add copyright and license boilerplate text
based on Ben's recollections.
2009-12-09 Jerry James <james(a)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(a)xemacs.org>
* lwlib.c: Drop workaround for old NeXT systems.
-------- ChangeLog Entries from man/ChangeLog --------
2011-04-26 Stephen J. Turnbull <stephen(a)xemacs.org>
* XEmacs 21.5.30 "garlic" is released.
2011-04-02 Stephen J. Turnbull <stephen(a)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(a)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(a)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(a)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(a)gmail.com>
* lispref/faces.texi (Faces): Mention `min-colors' as a
face specifier.
2011-03-01 Aidan Kehoe <kehoea(a)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(a)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(a)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(a)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(a)parhasard.net>
* lispref/os.texi (Time Conversion):
Document the new #'format-time-string flags for Roman month
numbers.
2010-08-30 Aidan Kehoe <kehoea(a)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(a)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(a)xemacs.org>
* external-widget.texi: Correct FSF address in permission notice.
2010-05-28 Aidan Kehoe <kehoea(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)xemacs.org>
The background-placement face property.
* xemacs/custom.texi (Faces): Document it.
2010-02-20 Ben Wing <ben(a)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(a)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(a)xemacs.org>
* term.texi: Move to the eterm package.
* Makefile: Remove all rules relating to term.texi.
2010-02-10 Stephen J. Turnbull <stephen(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)xemacs.org>
* internals/internals.texi (Debugging and Testing): Document
valgrind configuration and use.
2009-12-21 Jerry James <james(a)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(a)xemacs.org>
* lispref/processes.texi (Functions that Create Subprocesses): Refer
to etags instead of the obsolete wakeup program.
2009-12-09 Jerry James <james(a)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(a)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(a)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(a)parhasard.net>
* lispref/objects.texi (Equality Predicates):
Document #'equalp here, as well as #'equal and #'eq.
2009-10-05 Jerry James <james(a)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(a)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(a)parhasard.net>
* cl.texi (Organization):
Remove references to the obsolete multiple-value emulating code.
2009-07-28 Stephen Turnbull <stephen(a)xemacs.org>
* internals/internals.texi (Redisplay Piece by Piece):
Small improvements.
2009-07-08 Stephen Turnbull <stephen(a)xemacs.org>
* xemacs/custom.texi (Xft Font Customization): Change references
from XftFont (now deprecated) to FcFontName.
Thanks, Raymond Toy <raymond.toy(a)stericsson.com>.
-------- ChangeLog Entries from modules/ChangeLog --------
2011-04-26 Stephen J. Turnbull <stephen(a)xemacs.org>
* XEmacs 21.5.30 "garlic" is released.
2010-04-12 Ben Wing <ben(a)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(a)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(a)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(a)xemacs.org>
* ldap/eldap.c (print_ldap):
printing_unreadable_object -> printing_unreadable_object_fmt.
2010-03-07 Ben Wing <ben(a)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(a)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(a)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(a)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(a)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(a)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(a)xemacs.org>
* ldap/eldap.c (print_ldap):
* ldap/eldap.c (allocate_ldap):
Use write_ascstring().
2010-01-24 Ben Wing <ben(a)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(a)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(a)xemacs.org>
* ldap/eldap.c (Fldap_search_basic):
Cast to Extbyte * to avoid C++ compile error.
2009-11-10 Jerry James <james(a)xemacs.org>
* canna/canna_api.c (Fcanna_initialize): Drop support for the NEC EWS.
2009-11-09 Jerry James <james(a)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(a)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 --------
2011-04-26 Stephen J. Turnbull <stephen(a)xemacs.org>
* XEmacs 21.5.30 "garlic" is released.
2010-06-14 Stephen J. Turnbull <stephen(a)xemacs.org>
* compface.mak: More permission consistency.
2010-06-13 Stephen J. Turnbull <stephen(a)xemacs.org>
* tiff.mak:
* xemacs.rc:
* xpm.mak:
Correct FSF address in permission notice.
2010-02-22 Ben Wing <ben(a)xemacs.org>
* xemacs.dsp:
* xemacs.mak:
* xemacs.mak (OPT_OBJS):
objects*.[ch] -> fontcolor*.[ch].
2010-03-29 Vin Shelton <acs(a)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(a)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(a)xemacs.org>
* xemacs.mak (INFO_FILES): Removed custom.info.
2010-02-18 Vin Shelton <acs(a)xemacs.org>
* xemacs.mak (INFO_FILES): Removed term.info.
2010-02-11 Vin Shelton <acs(a)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(a)xemacs.org>
* xemacs.rc: Add license and copyright boilerplate text for Jonathan
Harris.
* xpm.mak: Ditto.
2010-01-28 Jerry James <james(a)xemacs.org>
* compface.mak: Add license and copyright boilerplate text based
on Ben's recollections.
* tiff.mak: Ditto.
2009-12-21 Jerry James <james(a)xemacs.org>
* xemacs.dsp: Remove references to OffiX files.
2009-12-15 Jerry James <james(a)xemacs.org>
* xemacs.mak: Remove build dependency for lib-src/wakeup. Thanks to
Vin Shelton for the patch.
2009-12-14 Jerry James <james(a)xemacs.org>
* installer: Remove unused Wise installer sources.
2009-12-09 Jerry James <james(a)xemacs.org>
* xemacs.dsp: Drop references to xmu.c and xmu.h.
2009-11-10 Jerry James <james(a)xemacs.org>
* xemacs.dsp: Drop references to removed source files.
2009-11-09 Jerry James <james(a)xemacs.org>
* xemacs.mak: Don't define GNU_MALLOC, as there is no longer an "old"
GNU malloc.
2009-10-06 Vin Shelton <acs(a)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(a)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 --------
2011-04-26 Stephen J. Turnbull <stephen(a)xemacs.org>
* XEmacs 21.5.30 "garlic" is released.
2011-04-23 Aidan Kehoe <kehoea(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)xemacs.org>
* s/freebsd.h: Zap. Not really needed anymore, and it has unclear
license status.
2011-01-15 Aidan Kehoe <kehoea(a)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(a)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(a)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(a)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(a)parhasard.net>
* mc-alloc.c (get_used_list_index):
Replace some C++ comments with C-style /* comments.
2011-01-02 Aidan Kehoe <kehoea(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)parhasard.net>
* fns.c (Frandom): Correct the docstring here, the name of the
argument is LIMIT, not N.
2010-11-06 Aidan Kehoe <kehoea(a)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(a)parhasard.net>
* fns.c (Flist_length): Error if LIST is dotted in this function;
document this behaviour.
2010-10-25 Aidan Kehoe <kehoea(a)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.gmane.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(a)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(a)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(a)fangorn.uio.no>.
2010-06-14 Stephen J. Turnbull <stephen(a)xemacs.org>
* ui-byhand.c:
* gtk-glue.c:
Add copyright notice based on internal evidence.
2010-06-14 Stephen J. Turnbull <stephen(a)xemacs.org>
* number.h: Another permission consistency fix.
2010-10-14 Aidan Kehoe <kehoea(a)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(a)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(a)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(a)parhasard.net>
* lisp.h (PARSE_KEYWORDS):
Turns out #elsif is not valid preprocessor syntax, who knew!
2010-09-18 Aidan Kehoe <kehoea(a)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(a)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(a)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(a)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(a)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(a)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(a)parhasard.net>
* eval.c (Ffunction, Fquote):
Add argument information in the arguments: () format for these two
special operators.
2010-09-07 Aidan Kehoe <kehoea(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)parhasard.net>
* alloc.c (Fpurecopy):
Moved to obsolete.el as an alias for #'identity, marked obsolete.
2010-06-06 Aidan Kehoe <kehoea(a)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(a)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(a)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(a)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(a)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(a)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(a)informatik.uni-tuebingen.de>
* window.c (compute_window_usage): Unbreak `show-memory-usage' for
NEW_GC.
2010-05-28 Marcus Crestani <crestani(a)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(a)xemacs.org>
* lread.c (read1): Accept #B<binary>, #O<octal>, and #X<hex>, just
like GNU Emacs.
2010-05-17 Jeff Sparkes <jsparkes(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)xemacs.org>
* lrecord.h: Fix outdated comment.
2010-03-03 Ben Wing <ben(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)xemacs.org>
* alloc.c (object_memory_usage_stats):
Remove unused var.
2010-02-21 Ben Wing <ben(a)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(a)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(a)xemacs.org>
* events.c (event_pixel_translation): Simplify assertion for
Visual C 6.
2010-02-21 Ben Wing <ben(a)xemacs.org>
* gc.c (kkcc_marking): Fix compile error.
* mc-alloc.c:
#if 0 out some unused functions.
2010-02-21 Ben Wing <ben(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)xemacs.org>
* tests.c:
Fix operation of c-tests.
2010-02-19 Aidan Kehoe <kehoea(a)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(a)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(a)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(a)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(a)xemacs.org>
* s/hpux11-shr.h: Add license information from Marcus Thiessel.
2010-02-09 Ben Wing <ben(a)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(a)xemacs.org>
* syswindows.h:
Create a long comment about build flags such as WIN32_NATIVE,
HAVE_MS_WINDOWS.
2010-02-09 Ben Wing <ben(a)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(a)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(a)xemacs.org>
* event-Xt.c:
Add comment about simultaneous window-system consoles/devices.
2010-02-08 Ben Wing <ben(a)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(a)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(a)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(a)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(a)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(a)xemacs.org>
* nt.c (open_unc_volume): lpRemoteName is an XELPTSTR.
2010-02-07 Aidan Kehoe <kehoea(a)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(a)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(a)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(a)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(a)xemacs.org>
* fns.c (mapcarX):
C++ requires explicit cast to enum lrecord_type.
2010-02-06 Ben Wing <ben(a)xemacs.org>
* mule-wnnfns.c:
Convert file to utf-8.
2010-02-03 Aidan Kehoe <kehoea(a)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(a)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(a)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(a)xemacs.org>
* s/sco7.h: Add copyright and license header with the permission of
Ron Record, the author.
2010-02-05 Ben Wing <ben(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)xemacs.org>
* s/mach-bsd4-3.h: Add historical copyright and license information,
unearthed by Ben Wing.
2010-02-03 Ben Wing <ben(a)xemacs.org>
* bytecode.c:
Fix minor compile problem.
2010-02-03 Ben Wing <ben(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)xemacs.org>
* alloc.c (common_init_alloc_early):
Fix compiler breakage.
2010-02-01 Ben Wing <ben(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)xemacs.org>
* Makefile.in.in: Remove internationalization rules, since the
lib-src programs they invoke are now gone.
2010-01-29 Ben Wing <ben(a)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(a)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(a)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(a)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(a)xemacs.org>
* lread.c (vars_of_lread):
Turn on load-ignore-out-of-date-elc-files by default.
2010-01-27 Ben Wing <ben(a)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(a)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(a)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(a)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(a)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(a)xemacs.org>
* Makefile.in.in:
Oops. Use two hashes for comments in Makefile.in.in.
2010-01-20 Ben Wing <ben(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)xemacs.org>
* casetab.c: Typo in comment.
2010-01-24 Aidan Kehoe <kehoea(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)xemacs.org>
* syswindows.h: Don't define CYGWIN_HEADERS here.
2010-01-14 Ben Wing <ben(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)xemacs.org>
* glyphs.c (query_string_font): Use proper domain for cachel
updating.
2010-01-09 Didier Verna <didier(a)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(a)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(a)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(a)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(a)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(a)xemacs.org>
* emacs.c (main_1): Only call reinit_vars_of_number if
WITH_NUMBER_TYPES.
2010-01-06 Jerry James <james(a)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(a)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(a)xemacs.org>
* font-mgr.c (Ffc_name_unparse): Return value of FcNameUnparse
must be freed.
2009-12-31 Aidan Kehoe <kehoea(a)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(a)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(a)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(a)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(a)xemacs.org>
* fns.c (Fcompare_strings): Coerce bounds to be within strings.
2009-12-18 Jerry James <james(a)xemacs.org>
* ppc.ldscript: Remove, obsolete.
2009-12-17 Aidan Kehoe <kehoea(a)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(a)yahoo.com.cn
2009-12-17 Aidan Kehoe <kehoea(a)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(a)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(a)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(a)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(a)xemacs.org>
* unicode.c (unicode_query): Add missing return type.
Thanks to 'mnewsam' on the tracker.
2009-12-09 Jerry James <james(a)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(a)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(a)xemacs.org>
* faces.c (complex_vars_of_faces): Explain why "*" isn't rewritten
as a full XLFD.
2010-01-09 Aidan Kehoe <kehoea(a)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(a)xemacs.org>
* sysdep.c (sys_subshell): Restore sys_subshell(); it's necessary
on Windows native builds.
2009-11-10 Jerry James <james(a)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(a)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(a)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(a)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(a)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(a)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(a)parhasard.net>
* mule-ccl.c (setup_ccl_program):
Fix the union build, thank you Robert Delius Royar.
2009-11-15 Aidan Kehoe <kehoea(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)xemacs.org>
* Makefile.in.in (mostlyclean):
(versionclean):
(extraclean-noconfig):
(extraclean):
Clean certain build and debug products.
2009-10-01 Mike Sperber <mike(a)xemacs.org>
* frame-x.c (x_focus_on_frame): Use correct timestamp with
XSetInputFocus.
2009-09-30 Aidan Kehoe <kehoea(a)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(a)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(a)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(a)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(a)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(a)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(a)parhasard.net>
* unicode.c (unicode_convert):
Fix a bug with error sequences and very short input strings.
2009-08-31 Aidan Kehoe <kehoea(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)xemacs.org>
* eval.c (debug-on-error): Document interaction with process filters.
2009-07-15 Aidan Kehoe <kehoea(a)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(a)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(a)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(a)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(a)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(a)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 --------
2011-04-26 Stephen J. Turnbull <stephen(a)xemacs.org>
* XEmacs 21.5.30 "garlic" is released.
2011-04-24 Aidan Kehoe <kehoea(a)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(a)xemacs.org>
* automated/query-coding-tests.el: "Compatiblity" ->
"Compatibility".
* gtk/event-stream-tests.el: "proccess" -> "process".
2011-03-17 Aidan Kehoe <kehoea(a)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(a)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(a)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.gmane.org/4D65D413.5050103ï¼ gmail.com .
2011-02-10 Aidan Kehoe <kehoea(a)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(a)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(a)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(a)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(a)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(a)parhasard.net>
* automated/lisp-tests.el (list): Test #'find, especially the
:default keyword, not specified by Common Lisp.
2011-01-02 Aidan Kehoe <kehoea(a)parhasard.net>
* automated/lisp-tests.el (test-fun): Test member*, assoc*,
rassoc*, delete* here too.
2010-12-30 Aidan Kehoe <kehoea(a)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(a)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(a)parhasard.net>
* automated/lisp-tests.el (list-nreverse):
Check that #'reverse and #'nreverse handle non-list sequences
properly.
2010-11-06 Aidan Kehoe <kehoea(a)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(a)parhasard.net>
* automated/lisp-tests.el:
Test format strings with %b, too.
2010-06-14 Stephen J. Turnbull <stephen(a)xemacs.org>
* automated/lisp-reader-tests.el:
Change references to SXEmacs to XEmacs.
2010-06-14 Stephen J. Turnbull <stephen(a)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(a)xemacs.org>
* reproduce-crashes.el: Amend "this file" to "XEmacs is free...".
2010-10-14 Aidan Kehoe <kehoea(a)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(a)parhasard.net>
* automated/lisp-tests.el:
Make sure circularity checking with #'merge is sane.
2010-08-15 Aidan Kehoe <kehoea(a)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(a)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(a)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(a)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(a)parhasard.net>
* gtk/gtk-test.el (gtk-test):
Remove a conditional for InfoDock.
2010-04-05 Aidan Kehoe <kehoea(a)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(a)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(a)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(a)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(a)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(a)xemacs.org>
* reproduce-crashes.el (8):
objects*.[ch] -> fontcolor*.[ch].
2010-02-22 Ben Wing <ben(a)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(a)xemacs.org>
* automated/test-harness.el (test-harness-from-buffer):
Remove unused binding.
2010-02-15 Ben Wing <ben(a)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(a)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(a)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(a)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(a)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(a)xemacs.org>
* frame.el: Martin Buchholz claims ownership.
2010-01-25 Ben Wing <ben(a)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(a)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(a)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(a)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(a)xemacs.org>
* automated/search-tests.el:
* automated/search-tests.el (insert):
Use LF not CRLF for line endings.
2010-01-30 Aidan Kehoe <kehoea(a)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.gmane.org/18829.34118.709782.704574ï¼ parhasard.net .
2010-01-29 Ben Wing <ben(a)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(a)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(a)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(a)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(a)xemacs.org>
* automated/mule-tests.el (featurep):
Accidentally included changes from Unicode-internal ws that
broke things.
2010-01-14 Ben Wing <ben(a)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(a)xemacs.org>
* automated/test-harness.el (Assert):
Need to quote the assertion expression, but not the description
expression.
2010-01-11 Ben Wing <ben(a)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(a)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(a)parhasard.net>
* automated/lisp-tests.el:
Test #'functionp, making sure it gives nil for special forms.
2009-12-31 Aidan Kehoe <kehoea(a)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(a)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(a)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(a)xemacs.org>
* auc-tex-test: Remove obsolete file.
2009-11-10 Jerry James <james(a)xemacs.org>
* autoconf/regressiontest.pl: Remove reference to dynodump.
2009-11-16 Stephen J. Turnbull <stephen(a)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(a)xemacs.org>
* reproduce-crashes.el (13): New bug reported by Adam Sjogren.
2009-11-14 Aidan Kehoe <kehoea(a)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(a)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(a)xemacs.org>
* automated/lisp-tests.el: Fix typo in equalp test.
Add more tests of equalp.
2009-11-02 Stephen Turnbull <stephen(a)xemacs.org>
* automated/mule-tests.el (default-process-coding-system):
Check that binding it to nil is OK.
2009-11-01 Aidan Kehoe <kehoea(a)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(a)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(a)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(a)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(a)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(a)xemacs.org>
* reproduce-crashes.el (12): New bug.
2009-08-31 Aidan Kehoe <kehoea(a)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(a)parhasard.net>
* automated/lisp-tests.el (foo):
Test the Common Lisp-compatibile multiple value functionality.
2009-08-11 Aidan Kehoe <kehoea(a)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(a)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(a)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(a)parhasard.net>
* automated/mule-tests.el:
Check for Richard Zidlicky's bug of
http://mid.gmane.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.
--
Graduate School of Systems and Information Engineering University of Tsukuba
http://turnbull.sk.tsukuba.ac.jp Tennodai 1-1-1 Tsukuba 305-8573 JAPAN
Ask not how you can "do" free software business;
ask what your business can "do for" free software.
_______________________________________________
XEmacs-Beta mailing list
XEmacs-Beta(a)xemacs.org
http://lists.xemacs.org/mailman/listinfo/xemacs-beta