view CHANGES-beta @ 665:fdefd0186b75

[xemacs-hg @ 2001-09-20 06:28:42 by ben] The great integral types renaming. The purpose of this is to rationalize the names used for various integral types, so that they match their intended uses and follow consist conventions, and eliminate types that were not semantically different from each other. The conventions are: -- All integral types that measure quantities of anything are signed. Some people disagree vociferously with this, but their arguments are mostly theoretical, and are vastly outweighed by the practical headaches of mixing signed and unsigned values, and more importantly by the far increased likelihood of inadvertent bugs: Because of the broken "viral" nature of unsigned quantities in C (operations involving mixed signed/unsigned are done unsigned, when exactly the opposite is nearly always wanted), even a single error in declaring a quantity unsigned that should be signed, or even the even more subtle error of comparing signed and unsigned values and forgetting the necessary cast, can be catastrophic, as comparisons will yield wrong results. -Wsign-compare is turned on specifically to catch this, but this tends to result in a great number of warnings when mixing signed and unsigned, and the casts are annoying. More has been written on this elsewhere. -- All such quantity types just mentioned boil down to EMACS_INT, which is 32 bits on 32-bit machines and 64 bits on 64-bit machines. This is guaranteed to be the same size as Lisp objects of type `int', and (as far as I can tell) of size_t (unsigned!) and ssize_t. The only type below that is not an EMACS_INT is Hashcode, which is an unsigned value of the same size as EMACS_INT. -- Type names should be relatively short (no more than 10 characters or so), with the first letter capitalized and no underscores if they can at all be avoided. -- "count" == a zero-based measurement of some quantity. Includes sizes, offsets, and indexes. -- "bpos" == a one-based measurement of a position in a buffer. "Charbpos" and "Bytebpos" count text in the buffer, rather than bytes in memory; thus Bytebpos does not directly correspond to the memory representation. Use "Membpos" for this. -- "Char" refers to internal-format characters, not to the C type "char", which is really a byte. -- For the actual name changes, see the script below. I ran the following script to do the conversion. (NOTE: This script is idempotent. You can safely run it multiple times and it will not screw up previous results -- in fact, it will do nothing if nothing has changed. Thus, it can be run repeatedly as necessary to handle patches coming in from old workspaces, or old branches.) There are two tags, just before and just after the change: `pre-integral-type-rename' and `post-integral-type-rename'. When merging code from the main trunk into a branch, the best thing to do is first merge up to `pre-integral-type-rename', then apply the script and associated changes, then merge from `post-integral-type-change' to the present. (Alternatively, just do the merging in one operation; but you may then have a lot of conflicts needing to be resolved by hand.) Script `fixtypes.sh' follows: ----------------------------------- cut ------------------------------------ files="*.[ch] s/*.h m/*.h config.h.in ../configure.in Makefile.in.in ../lib-src/*.[ch] ../lwlib/*.[ch]" gr Memory_Count Bytecount $files gr Lstream_Data_Count Bytecount $files gr Element_Count Elemcount $files gr Hash_Code Hashcode $files gr extcount bytecount $files gr bufpos charbpos $files gr bytind bytebpos $files gr memind membpos $files gr bufbyte intbyte $files gr Extcount Bytecount $files gr Bufpos Charbpos $files gr Bytind Bytebpos $files gr Memind Membpos $files gr Bufbyte Intbyte $files gr EXTCOUNT BYTECOUNT $files gr BUFPOS CHARBPOS $files gr BYTIND BYTEBPOS $files gr MEMIND MEMBPOS $files gr BUFBYTE INTBYTE $files gr MEMORY_COUNT BYTECOUNT $files gr LSTREAM_DATA_COUNT BYTECOUNT $files gr ELEMENT_COUNT ELEMCOUNT $files gr HASH_CODE HASHCODE $files ----------------------------------- cut ------------------------------------ `fixtypes.sh' is a Bourne-shell script; it uses 'gr': ----------------------------------- cut ------------------------------------ #!/bin/sh # Usage is like this: # gr FROM TO FILES ... # globally replace FROM with TO in FILES. FROM and TO are regular expressions. # backup files are stored in the `backup' directory. from="$1" to="$2" shift 2 echo ${1+"$@"} | xargs global-replace "s/$from/$to/g" ----------------------------------- cut ------------------------------------ `gr' in turn uses a Perl script to do its real work, `global-replace', which follows: ----------------------------------- cut ------------------------------------ : #-*- Perl -*- ### global-modify --- modify the contents of a file by a Perl expression ## Copyright (C) 1999 Martin Buchholz. ## Copyright (C) 2001 Ben Wing. ## Authors: Martin Buchholz <martin@xemacs.org>, Ben Wing <ben@xemacs.org> ## Maintainer: Ben Wing <ben@xemacs.org> ## Current Version: 1.0, May 5, 2001 # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # You should have received a copy of the GNU General Public License # along with XEmacs; see the file COPYING. If not, write to the Free # Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA # 02111-1307, USA. eval 'exec perl -w -S $0 ${1+"$@"}' if 0; use strict; use FileHandle; use Carp; use Getopt::Long; use File::Basename; (my $myName = $0) =~ s@.*/@@; my $usage=" Usage: $myName [--help] [--backup-dir=DIR] [--line-mode] [--hunk-mode] PERLEXPR FILE ... Globally modify a file, either line by line or in one big hunk. Typical usage is like this: [with GNU print, GNU xargs: guaranteed to handle spaces, quotes, etc. in file names] find . -name '*.[ch]' -print0 | xargs -0 $0 's/\bCONST\b/const/g'\n [with non-GNU print, xargs] find . -name '*.[ch]' -print | xargs $0 's/\bCONST\b/const/g'\n The file is read in, either line by line (with --line-mode specified) or in one big hunk (with --hunk-mode specified; it's the default), and the Perl expression is then evalled with \$_ set to the line or hunk of text, including the terminating newline if there is one. It should destructively modify the value there, storing the changed result in \$_. Files in which any modifications are made are backed up to the directory specified using --backup-dir, or to `backup' by default. To disable this, use --backup-dir= with no argument. Hunk mode is the default because it is MUCH MUCH faster than line-by-line. Use line-by-line only when it matters, e.g. you want to do a replacement only once per line (the default without the `g' argument). Conversely, when using hunk mode, *ALWAYS* use `g'; otherwise, you will only make one replacement in the entire file! "; my %options = (); $Getopt::Long::ignorecase = 0; &GetOptions ( \%options, 'help', 'backup-dir=s', 'line-mode', 'hunk-mode', ); die $usage if $options{"help"} or @ARGV <= 1; my $code = shift; die $usage if grep (-d || ! -w, @ARGV); sub SafeOpen { open ((my $fh = new FileHandle), $_[0]); confess "Can't open $_[0]: $!" if ! defined $fh; return $fh; } sub SafeClose { close $_[0] or confess "Can't close $_[0]: $!"; } sub FileContents { my $fh = SafeOpen ("< $_[0]"); my $olddollarslash = $/; local $/ = undef; my $contents = <$fh>; $/ = $olddollarslash; return $contents; } sub WriteStringToFile { my $fh = SafeOpen ("> $_[0]"); binmode $fh; print $fh $_[1] or confess "$_[0]: $!\n"; SafeClose $fh; } foreach my $file (@ARGV) { my $changed_p = 0; my $new_contents = ""; if ($options{"line-mode"}) { my $fh = SafeOpen $file; while (<$fh>) { my $save_line = $_; eval $code; $changed_p = 1 if $save_line ne $_; $new_contents .= $_; } } else { my $orig_contents = $_ = FileContents $file; eval $code; if ($_ ne $orig_contents) { $changed_p = 1; $new_contents = $_; } } if ($changed_p) { my $backdir = $options{"backup-dir"}; $backdir = "backup" if !defined ($backdir); if ($backdir) { my ($name, $path, $suffix) = fileparse ($file, ""); my $backfulldir = $path . $backdir; my $backfile = "$backfulldir/$name"; mkdir $backfulldir, 0755 unless -d $backfulldir; print "modifying $file (original saved in $backfile)\n"; rename $file, $backfile; } WriteStringToFile ($file, $new_contents); } } ----------------------------------- cut ------------------------------------ In addition to those programs, I needed to fix up a few other things, particularly relating to the duplicate definitions of types, now that some types merged with others. Specifically: 1. in lisp.h, removed duplicate declarations of Bytecount. The changed code should now look like this: (In each code snippet below, the first and last lines are the same as the original, as are all lines outside of those lines. That allows you to locate the section to be replaced, and replace the stuff in that section, verifying that there isn't anything new added that would need to be kept.) --------------------------------- snip ------------------------------------- /* Counts of bytes or chars */ typedef EMACS_INT Bytecount; typedef EMACS_INT Charcount; /* Counts of elements */ typedef EMACS_INT Elemcount; /* Hash codes */ typedef unsigned long Hashcode; /* ------------------------ dynamic arrays ------------------- */ --------------------------------- snip ------------------------------------- 2. in lstream.h, removed duplicate declaration of Bytecount. Rewrote the comment about this type. The changed code should now look like this: --------------------------------- snip ------------------------------------- #endif /* The have been some arguments over the what the type should be that specifies a count of bytes in a data block to be written out or read in, using Lstream_read(), Lstream_write(), and related functions. Originally it was long, which worked fine; Martin "corrected" these to size_t and ssize_t on the grounds that this is theoretically cleaner and is in keeping with the C standards. Unfortunately, this practice is horribly error-prone due to design flaws in the way that mixed signed/unsigned arithmetic happens. In fact, by doing this change, Martin introduced a subtle but fatal error that caused the operation of sending large mail messages to the SMTP server under Windows to fail. By putting all values back to be signed, avoiding any signed/unsigned mixing, the bug immediately went away. The type then in use was Lstream_Data_Count, so that it be reverted cleanly if a vote came to that. Now it is Bytecount. Some earlier comments about why the type must be signed: This MUST BE SIGNED, since it also is used in functions that return the number of bytes actually read to or written from in an operation, and these functions can return -1 to signal error. Note that the standard Unix read() and write() functions define the count going in as a size_t, which is UNSIGNED, and the count going out as an ssize_t, which is SIGNED. This is a horrible design flaw. Not only is it highly likely to lead to logic errors when a -1 gets interpreted as a large positive number, but operations are bound to fail in all sorts of horrible ways when a number in the upper-half of the size_t range is passed in -- this number is unrepresentable as an ssize_t, so code that checks to see how many bytes are actually written (which is mandatory if you are dealing with certain types of devices) will get completely screwed up. --ben */ typedef enum lstream_buffering --------------------------------- snip ------------------------------------- 3. in dumper.c, there are four places, all inside of switch() statements, where XD_BYTECOUNT appears twice as a case tag. In each case, the two case blocks contain identical code, and you should *REMOVE THE SECOND* and leave the first.
author ben
date Thu, 20 Sep 2001 06:31:11 +0000
parents 8779cda24ee7
children 76d5a3dd827a
line wrap: on
line source

to 21.5.3 "asparagus"
-- Add missing XIM unregister callback on Motif -- Glynn Clements
-- Improve debugging in event-msw.c, fix "can't close last window" bug
   -- Adrian Aichner
-- Improve Info docs for widget.el -- Stephen J. Turnbull
-- Many small bug, typo, and warning fixes -- Ben Wing, Stephen J. Turnbull,
   Adrian Aichner
-- Autoload handling improvements -- Didier Verna
-- More 'report-xemacs-bug' updates -- Steve Youngs
-- Fix unsigned warnings; turn sign-compare warnings on for NT -- Ben Wing
-- Synch configure.usage options with configure -- Peter Brown

to 21.5.2 "artichoke"
-- fixes and improvements -- Ben Wing
   -- etags.c synched to upstream
   -- lisp/term/*.el cleanup
   -- miscellaneous help improvements
   -- transpose-line-up/down maybe moves the region
   -- MS Windows init improvements
   -- add scroll-in-place, jka-compr, efs, some fixes in behavior-defs.el
   -- paths-find-recursive-path: fix error with null EXCLUDE-REGEXP
   -- font-lock-mode: fix problem with buffers starting with a space
   -- make find-library search patch configurable
   -- fix Dired problem with directories containing [] and code that
      destructively modifies an existing string
   -- stop mark_window_as_deleted from deleting information that needs to
      be accessed by set-window-configuration
   -- Lisp object structure rationalization
   -- fix two nasty bugs in the unwinding code
   -- fix mouse wheel/dead window crash under MS Windows
   -- mswindows_utime, close_file_data: fix off-by-one-indirection error
   -- control-G handling fixes for MS Windows
   -- debug-mswindows-events and related code introduced
   -- rearrange the signal-handling code to eliminate the former
      spaghetti logic paths in it; document; fix numerous bugs
   -- maintain the "iconified" state, to fix the "can't delete a frame" bug
   -- use CBufbyte instead of char for error/warning functions
   -- prepare to remove encapsulation
   -- make play_sound_data return an int, like all other such functions
   -- use EMACS_SIGNAL to avoid preprocessing games with signal()
   -- gc-in-window-procedure fixes
   -- Cygwin setitimer fixes
   -- windows shell fixes
   -- more structured errors
   -- MS Windows network stream data corruption fixes
   -- fix ~user file name handling
   -- rename MAX_PATH to standard PATH_MAX
   -- fix error compiling regexps with back-references in them

-- fixes and improvements -- Martin Buchholz
   -- byte optimizer fixes
   -- move alloca twiddling after the feature test definitions, but
      before the first "real" code
   -- internal DECIMAL_PRINT_SIZE macro
   -- s&m elimination: Eliminate the need to define HAVE_PTYS in s&m files
   -- avoid test failure if (temp-directory) is a symlink
   -- handle buggy Sun realloc()

-- GTK fixes -- Bill Perry
   -- GTK popup dialog fix
   -- GTK added to font-window system mappings
   -- gtk-marshal.el updated for new hash.c, and generator fixes,
   -- GTK scrollbar fixes
   -- buttons are now modifiers, so selection with the mouse works again
   -- fix the disappearing GTK scrollbar problem

-- movemail.c uses mkstemp if available -- Karl M. Hegbloom
-- specifiers may now conditionalize on GTK -- Stephen J. Turnbull
-- new hooks for package installation and deletion -- Sean MacLennan
-- locate-library completes and other package UI improvements -- Robert Pluim
-- save-some-buffers doesn't prematurely zap help window -- Michael Sperber
-- MS windows subprocess quoting arguments -- Ben Wing, Dan Holmsand
-- remove side effects from font-lock-compile-keywords -- Daiki Ueno
-- custom-display works on the GTK platform -- Karl Hegbloom
-- mouse-track fixes -- Adrian Aichner, Ben Wing
-- dragdrop fix for windowless events -- Mike Alexander
-- fix `unbalanced parentheses' bug in syntax -- Matt Tucker
-- gpmevent.c header inclusion fixes -- Bill Perry
-- make more glyph code shared across platforms -- Ben Wing, Bill Perry
-- remove lisp_string_set_file_times() because set_file_times() now
   takes Lisp_Object path, instead of char* -- Adrian Aichner and Ben Wing
-- allow preemption on redisplay -- Kirill 'Big K' Katsnelson
-- new, faster implementation of long_to_string -- Hrvoje Niksic
-- Qccl_error: New error -- Yoshiki Hayashi
-- remove support for old beta versions of cygwin -- Ben Wing, Craig Lanning
-- fix crash with an unavailable network printer -- Mike Alexander
-- add support for MacOS X -- Greg Parkin and Martin Buchholz
-- better win9x (including WinMe) support -- Ben Wing, Stephen J. Turnbull
-- fix off-by-one error in EMACS_INT_MAX -- Yoshiki Hayashi

-- warning, style, and doc fixes and improvements
   -- warning fixes -- Ben Wing, Kirill 'Big K' Katsnelson, Martin Buchholz
   -- eliminate numerous C++ errors -- Ben Wing, Martin Buchholz
   -- code style corrections -- Ben Wing, Martin Buchholz
   -- build improvements -- Ben Wing, Martin Buchholz
   -- configure improvements and fixes -- Martin Buchholz, Ben Wing,
      Stephen J. Turnbull
   -- doc updates -- Adrian Aichner, Ben Wing, Alexey Mahotkin, Steve
      Youngs, Stephen J. Turnbull, Yoshiki Hayashi, Steve Youngs, Paul
      Stodghill, Malcolm Purvis, Jim Horning, Nick V. Pakoulin, Kirill
      'Big K' Katsnelson

to 21.5.1 "anise"
-- This release contains a huge pile of changes by Ben Wing, including
   both bug fixes and features.  Highlights:
   -- Many changes to make printing work on Windows
   -- byte-compilation speed improvements
   -- New functions for cleanly eliminating byte-compiler warnings
   -- Remove core bytecompiler warnings
   -- Improve interactive help interface
   -- etags improvements
   -- Better "About XEmacs" page
   -- Windows configury changes
   -- Get QUIT working on Windows
   -- Fix shy group regexp code
   -- etc. etc.

-- The `short-name' argument to make-charset now works correctly 
   -- Yoshiaki Kasahara
-- `custom' changes -- Didier Verna
-- SET_FACE_PROPERTY bug fix -- Jerry James
-- Unix tty configury changes -- Martin Buchholz
-- Fix compile error with g++ on bsdi -- Martin Buchholz
-- Fix crash with xlc -O3 -- Martin Buchholz
-- Fix link error with (pre-release) gcc 3.0 -- Martin Buchholz
-- Fix build error if system has makeinfo 3.12 -- Martin Buchholz
-- Speed up `intern' and hash tables containing strings -- Martin Buchholz
-- Make hash table mapping safe -- Martin Buchholz

to 21.5.0 "alfalfa"
-- Switch to new beta series

to 21.2.46 "Urania"
-- GTK code has been merged as an experimental display type -- William Perry

to 21.2.45 "Thelxepeia"
-- lib-src Makefile fixes -- Martin Buchholz
-- startup path fixes -- Michael Sperber
-- Port FSF 20.7 syntax table improvements -- Matt Tucker
-- --pdump now works with HP-UX native cc -- Martin Buchholz
-- copy-file now works correctly with non-ascii filenames -- Martin Buchholz
-- More pdump improvements -- Martin Buchholz
-- Prefer more standard utime() to utimes() -- Martin Buchholz

to 21.2.44 "Thalia"
-- Upgrade to etags 14.15 -- Francesco Potorti
-- XEmacs now works on Unixware 7 -- Martin Buchholz
-- Work around AIX C compiler bug causing "scroll-up has no effect" 
   -- Martin Buchholz
-- Fix crash in kill-emacs -- Martin Buchholz
-- XEmacs builds with gcc 2.97 -- Martin Buchholz
-- XEmacs builds with g++ 2.97 -- Martin Buchholz
-- Port .gdbinit debugging support to many systems -- Martin Buchholz
-- XEmacs builds on mips-sgi-irix6.5 with 64-bit compilers -- Martin Buchholz
-- The C variable containing the value of a DEFVAR_INT is now
   EMACS_INT, not int -- Martin Buchholz
-- config.sug, config.guess upgraded to official versions -- Martin Buchholz
-- Support mouse-6 and mouse-7 for newfangled mice -- Martin Buchholz
-- portable dumper alignment fixes -- Martin Buchholz
-- sound fixes -- Didier Verna
-- Progress gauge now goes away if C-g'ed -- Andy Piper

to 21.2.43 "Terspichore"
-- Important gnuserv security fix.  Upgrade if you use gnuserv.
   -- Klaus Frank, Jan Vroonhof, Gunnar Evermann
-- C-level alignment correctness fixes -- Martin Buchholz
-- cut-and-paste slowness under Motif fixed -- Andy Piper
-- pdump now works on SunOS 4 and HP-UX -- Martin Buchholz
-- Packages documentation updates -- Steve Youngs
-- Windows netinstall changes -- Andy Piper

to 21.2.42 "Poseidon"
-- 64-bit platforms (Alpha) broken in 21.2.41 now fixed -- Martin Buchholz
-- Windows packaging changes -- Andy Piper
-- Widget bug fixes -- Andy Piper
-- Modeline scrolling documented -- Didier Verna
-- C-level alignment hackery -- Martin Buchholz

to 21.2.41 "Polyhymnia"
-- A very important fix to the byte-compiler was made.
   RE-BYTE-COMPILE all your .el files that were compiled by any older
   21.2 byte-compiler (the 21.1 byte-compiler was OK.)
   Explicitly remove all .elc files using
   cd XEMACS; find . -name '*.elc' -print | xargs rm
   and then rebuild using `make'.
   -- Martin Buchholz
-- More Windows installer changes -- Andy Piper
-- Another tab widget fix -- Andy Piper
-- pdump code cleanup -- Martin Buchholz
-- lisp path changes -- Mike Sperber
-- init file changes -- Mike Sperber
-- debugging support works better with pdump -- Martin Buchholz
-- Port to AIX cc -O3 -qansi-aliasing -- Martin Buchholz
-- Allow building 64-bit binaries on AIX. -- Martin Buchholz
-- Make code more resistant to aliasing optimizations. -- Martin Buchholz
-- XEmacs now works on Netbsd 1.5. -- Martin Buchholz
-- Eliminate kludgy checks for non-standard _dlopen -- Golubev I. N.
-- Make Purify a little happier working on pdumped xemacs -- Martin Buchholz
-- Fix never-used macro LISP_TO_CVOID -- Jerry James

to 21.2.40 "Persephone"
-- various doc fixes -- Stephen Turnbull
-- more widget bug fixes -- Andy Piper
-- Introduce yet another hash table weakness type -- Andy Piper
-- SCO 5 fixes -- Golubev I. N.
-- SunOS 4 works again -- MIYASHITA Hisashi
-- Make peace with Mandrake's Alt-Meta hacks -- Stephen Turnbull
-- Remove input-method-xfs.o -- Kazuyuki IENAGA

to 21.2.39 "Millennium"
-- Safer coding-priority-list -- Stephen Turnbull
-- Andreas Jaeger resigns as core maintainer :-(
-- Make font-lock know about all C++ keywords -- Enrico Scholz
-- Comments beginning in column zero are no longer indented by
   indent-for-comment -- Adrian Aichner
-- Better documentation for package creation -- Stephen Turnbull
-- input-method-xfs.c removed.  Functionality incorporated into
   input-method-xlib.c -- Kazuyuki IENAGA
-- replace-buffer-in-windows fixes -- Yoshiki Hayashi
-- Fix redisplay bugs with buffer-local face specifiers -- Yoshiki Hayashi
-- More printing fixes -- Martin Buchholz
-- Another SGI dumping fix -- Martin Buchholz
-- A new Windows installer in netinstall -- Andy Piper
-- Support Berkeley DB 3.1 -- Daiki Ueno

to 21.2.38 "Peisino,Ak(B"
-- Keyboard commands to set code system now work in file-coding
   Emacsen! -- Jan Vroonhof (actually in 21.2.37)
-- Calls to the following functions are now better optimized:
   backward-char backward-word plusp, minusp oddp evenp -- Martin Buchholz
-- COUNT argument to following functions is now optional:
   forward-word backward-word mark-word kill-word backward-kill-word
   forward-comment delete-char backward-delete-char -- Martin Buchholz
-- Don't put gutters/tabs on popup windows -- Andy Piper
-- Fix up info file cross references -- Adrian Aichner
-- Make `format' 64-bit clean -- Martin Buchholz
-- unexec changes on Windows -- Martin Buchholz
-- Make ptys work again on Cygwin -- Philip Aston
-- GCPRO fixes -- Yoshiki Hayashi, Gunnar Evermann, Martin Buchholz
-- Fix dumping problems on SGI Irix 6 -- Max Matveev, Martin Buchholz
-- Make DEBUG_GCPRO work again -- Gunnar Evermann
-- Pdump fixes -- Olivier Galibert
-- Case table changes -- Yoshiki Hayashi
-- Fix remaining tab oddities -- Andy Piper
-- Fix Windows unexec -- Andy Piper
-- byte-compiler arithmetic improvements -- Martin Buchholz

to 21.2.37 "Pan"
-- etags fix -- Stephen Carney
-- more gutters and tab changes -- Andy Piper
-- eval-when-compile no longer compiles its body -- Martin Buchholz
-- top-level (defvar foo) no longer generates a run-time load-history
   entry -- Martin Buchholz
-- Windows 1251 code page encoding for Cyrillic -- Sergey Groznyh
-- `local-key-binding' and `global-key-binding' now have an optional
   `accepts-defaults' parameter, just like `lookup-key' -- Martin Buchholz
-- 1000 arglist-related lispref documentation bugs fixed -- Martin Buchholz
-- arg to `down-list', `up-list', `backward-up-list', `kill-sexp',
   `backward-kill-sexp' are now optional, just like FSF Emacs -- Martin Buchholz
-- info mode fixes -- Didier Verna
-- Massive CCL upgrade -- MIYASHITA Hisashi
-- byte-code optimizations -- Yoshiki Hayashi
-- historical purecopy's purged -- Robert Pluim
-- `mwheel-install', `turn-on-auto-fill', `turn-on-font-lock',
   `turn-off-font-lock' are now interactive -- Martin Buchholz
-- Detect _getpty correctly (for SGIs) -- Martin Buchholz
-- Several GCPRO bugs found -- Yoshiki Hayashi
-- `replace-buffer-in-windows' now has the same WHICH-FRAMES and
   WHICH-DEVICES parameters as `delete-windows-on' -- Martin Buchholz
-- Add support for Compaq C on Alpha Linux -- Martin Buchholz
-- auto-save fixes -- Yoshiki Hayashi
-- Removed unused C vars detected by Compaq C -- Martin Buchholz
-- More 64-bit cleanliness micro-fixes -- Martin Buchholz
-- Fix cachel.merged_faces memory leak -- Golubev I. N.
-- More changes to allow definitions of lisp object types by
   third-party modules -- Daiki Ueno.
-- Extbyte is now a char, not unsigned char -- Martin Buchholz
-- C++ compilability is restored -- Martin Buchholz
-- New tests for CCL -- MIYASHITA Hisashi, Yoshiki Hayashi
-- Use stropts.h, not sys/stropts.h.  Likewise for strtio.h -- Martin Buchholz

to 21.2.36 "Notus"
-- Fix build problems on AIX 4.3 -- Martin Buchholz
-- Fix build problems on HP-UX 10.20 -- Alexandre Oliva and Martin Buchholz
-- Fix build problems on SunOS 4.1.4 -- Martin Buchholz
-- Fix build problems on IA64/Linux -- Martin Buchholz
-- Fix build problems on Alpha/Linux -- Steve Baur
-- Fix build problems on Unixware -- Martin Buchholz
-- Support pty input lines longer than 512 bytes on HP-UX 10.20. -- Martin Buchholz
-- `equal' of hash tables is now the same as `eq'. -- Martin Buchholz
-- ucs fixes - Daiki Ueno
-- Lots of little doc fixes. -- Martin Buchholz
-- Process-signaling code rewritten -- Martin Buchholz
-- pty allocation code rewritten -- Martin Buchholz
-- The byte compiler generates more efficient code -- Martin Buchholz
-- build-report fixes -- Adrian Aichner
-- next-window/next-frame functions rewritten -- Martin Buchholz
-- Windows fixes -- Jonathan Harris
-- Multiple info buffer support -- Golubev I. N.
-- regex crash fixes -- Yoshiki Hayashi
-- Widget/windows fixes -- Andy Piper
-- structured lisp errors -- Ben Wing
-- allow modules to define their own lisp object types -- Andrew Begel

to 21.2.35 "Nike"
-- You now again build XEmacs in a directory containing a predefined
   CPP symbol -- Martin Buchholz
-- Minor fixes for Postgres integration -- Martin Buchholz
-- Many fixes for DEC OSF 4.0 -- Martin Buchholz
-- More C++ compilation support (for quality control) -- Martin Buchholz
-- XEmacs can now be built with XFree86 4.0 -- Martin Buchholz
-- Fix lots of byte-compiler warnings -- Martin Buchholz
-- Many documentation fixes -- Adrian Aichner
-- support for S390 has been added -- Andreas Jaeger, Martin Schwidefsky
-- clean up Windows includes/defines -- Ben Wing
-- numerous configure/GCC-warning fixes -- Martin Buchholz
-- generalize selection support to arbitrary types -- Alastair Houghton
-- MS Windows printer improvements -- Kirill Katsnelson
-- MinGW fixes -- Craig Lanning
-- NT process fixes -- Mixe Alexander, Adrian Aichner
-- new key-value weak hashtable type -- Andy Piper/Olivier Galibert
-- migrate .emacs to .xemacs/init.el -- Mike Sperber
-- new file compat.el for cleaner compatibility functions -- Ben Wing

to 21.2.34 "Molpe"
-- Lots of changes to GUI, Windows, font-lock code, Ben Wing
-- Lots of changes to GUI, Windows code, Andy Piper
-- Various fixes, Karl Hegbloom
-- User manual documentation updates, Yoshiki Hayashi
-- Dumping fixes, Yoshiki Hayashi
-- Define C-x BS to backward-kill-sentence, Yoshiki Hayashi

to 21.2.33 "Melpomene"
-- Yet more progress gauge and gutter redisplay fixes from Andy Piper
-- glyph error checking from Andy Piper
-- Proper implementation of string glyphs makes them Mule safe (IKEYAMA Tomonori)
-- Bug fixes from the usual suspects
-- --with-clash-detection now defaults to `yes', at least for betas.
-- Autoconf support for detecting how to #include header files
   with names containing preprocessor constants, Didier Verna.
-- LDAP documentation updated, Oscar Figueiredo.
-- clash-detection code cleaned and audited, Yoshiki and Martin
-- Fix hangs on DEC OSF 4.0 when (process-send-string) sends strings
   longer than 252 bytes.
-- Fix non-ANSI macro hacking to allow compilation by Irix native compiler.
-- redisplay fixes, IKEYAMA Tomonori
-- Code cleaning, Mike Alexander
-- Pdump + Windows support, Mike Alexander
-- Sound code cleanup, Jan Vroonhof
-- yes-or-no-p-dialog-box no longer gives unpredictable results with
   focus follows mouse, Martin Buchholz

to 21.2.32 "Kastor & Polydeukes"
-- Internal Postgres RDBMS support from Steve Baur
-- Improve gutter useability
-- Fix window geometry with gutters
-- Fix async updates so that they only occur when necessary
-- Gutter documentation from Stephen Turnbull
-- redisplay-gutter-area fixes from Andy Piper
-- pdump file in MS-Windows executable from Mike Alexander
-- Miscellaneous fixes from Andy Piper
-- Windows and menubar changes from Ben Wing
-- dumper changes from Olivier Galibert

to 21.2.31 "Iris"
-- Make XEmacs work on Windows again.

to 21.2.30 "Hygeia"
-- Make (find-tag-other-window) always use other window,
   even if tag is found in buffer of current window, Samuel Mikes
-- Make configure complain about broken compiler versions (Jan Vroonhof, Yoshiki Hayashi, Bill Perry)
-- `write-region' now deals properly with non-ASCII file names, Martin Buchholz
-- `file-truename' now respects file-name-coding-system, Martin Buchholz
-- arm configure support fixed.
-- non-ASCII string handling performance boost, Martin Buchholz
-- Garbage collector performance boost, Martin Buchholz
-- Lisp engine performance boost, Martin Buchholz
-- New ldap API (Oscar Figueiredo)
-- (- 0) is now optimized to 0, not (-), Martin Buchholz
-- More gutter tabs fixes, Andy Piper

to 21.2.29 "Hestia"
-- Fix compile errors on pre-X11R6 systems, introduced in 21.2.28.
-- Fix autodetection of Berkeley DB on Linux Glibc 2 systems.
   (but more work needed)
-- Allow non-symbols (anything compared with `eq') in object plists.
-- Cleanup of property frobbing code.
-- Various AIX 4 fixes, including port of PDUMP.
-- Unconditionally define _POSIX_C_SOURCE, _XOPEN_SOURCE, _XOPEN_SOURCE_EXTENDED.
-- MS-Windows redisplay and font fixes from Jonathan Harris.
-- various fixes from Craig Lanning, Daiki Ueno.
-- Asynchronous widget updates from Andy Piper.
-- More widget fixes from Andy Piper.
-- Don't use rel_alloc on glibc systems, including Linux
-- Upgrade etags.c to version 13.44, Francesco Potorti
-- etags does a better job of finding the exact match first, Kyle Jones
-- Portable dumper now described in Internals manual, Olivier and Martin
-- Object Plist documentation in lispref updated, Martin Buchholz
-- Just use standard `const' everywhere, instead of CONST
-- More pdump changes, Olivier Galibert

to 21.2.28 "Hermes"
-- Add configure support for NetWinders, Sean MacLennan
-- Make the "Load .emacs" menu item work again, Kirill Katsnelson
-- Make --without-x work again.
-- Detect Xaw3d and friends using #include <Xaw3d/FOO.h>
-- Experimental Drag-N-Drop now defaults to "no" until there is again
   active development.
-- SGI dumping fixes should make XEmacs work again on Irix 6.
-- More warning flags on by default when building with gcc.
-- process coding changes, Kirill Katsnelson
-- help now knows how to print macro arglists, Yoshiki Hayashi
-- Windows printing support, Kirill Katsnelson
-- Obscure crash fixes, Martin Buchholz
-- Memory leak fixes, Martin Buchholz
-- We now always use our own realpath(), never the system-provided one.
-- More gutter/tab widget changes, Andy Piper
-- Crash fix when using dead processes, Gunnar Evermann (fix PR#1061)
-- Pdump stability fixes, Olivier Galibert
-- New coding system alias implementation, Ben Wing and Martin Buchholz
-- New internal data conversion infrastructure, Ben Wing and Martin Buchholz
-- IPv6 support, URA Hiroshi
-- Runtime Athena mismatch warnings added, Daniel Pittman
-- Removal of old MSDOS support, Kirill Katsnelson
-- Correctly define Latin-3 and Latin-4 character syntax as "w".
-- Auto-define all X-defined keysyms as self-inserting, not just Latin-1.
-- Workaround egcs-20000131 c++ compiler bug
-- Byte-optimize (length "foo") to 3.
-- (define-key ctl-x-4-map "p" global-map) no longer causes stack overflow crash.
-- Partially implement dontusethis-set-symbol-value-handler.
-- Fix bug: (getf nil t t) ==> Lisp nesting exceeds `max-lisp-eval-depth'
-- lib-src partially C++ized, Zack Weinberg.

to 21.2.27 "Hera"
-- Dynamic layout for widgets from Andy Piper
-- Vertical tab widgets for MS-Windows from Andy Piper
-- pdump fixes for MS-Windows from Big K
-- config.sub, config.guess major upgrade, Marcus Thiessel
-- gdbinit renamed to .gdbinit
-- dbxrc renamed to .dbxrc
-- Mail locking overhaul, Michael Sperber
-- Info-visit-file can now be used non-interactively, Martin Buchholz
-- FAQ updates, Sandra Wambold
-- Document lisp-level error handling, Hrvoje Niksic
-- Windows changes, Kirill Katsnelson
-- Portable dumper ported to Windows, Kirill Katsnelson
-- idlwave-mode added, Carsten Dominik
-- Info changes, Yoshiki Hayashi and Didier Verna.
-- Again support BSD/OS 2.0
-- minibuf.* changes, Yoshiki Hayashi
-- hyper-apropos changes, Yoshiki Hayashi
-- buffers tab has its own face, Andy Piper
-- modeline scrolling changes, Didier Verna

to 21.2.26 "Millenium"
-- Fix unpredictable results, perhaps even crashes, if using the
   `return from debugger feature' and errors in `eval' or `funcall'.
-- fix for Tab widgets causing X errors in XMapWindow().

to 21.2.25 "Hephaestus"
-- the LATEST.IS.* file has been renamed to LATEST-IS-*.
-- the CVS tag to checkout the latest tarball is `r21-2-latest-beta'.
-- 3 crashes in mapcar1 have been fixed.
-- lwlib arg passing cleanup
-- yet more widget and tab fixes
-- yet another Tab sync
-- specifier copying fix for widgets
-- preparation for proper layouts
-- native widgets used for some custom widgets
-- (+ 1) is no longer incorrectly compiled
-- char-before no longer has performance penalty
-- xpm again works on Windows
-- native Windows fixes from Adrian Aichner
-- Mule fixes from Yoshiki Hayashi
-- properly detect Athena widgets headers and libs, preventing crashes
   from misdetection and from libraries and headers that don't match,
   from Daniel Pittman

to 21.2.24 "Hecate"
-- Tabs fixes from Andy Piper
-- Widget leak fixes from Andy Piper
-- (coding-system-list) deals properly with coding system aliases, Shenghuo ZHU
-- configure support for ESD sound rewritte, Martin Buchholz
-- directory separator fix from Mike Alexander
-- Windows process support cleanup, Adrian Aichner
-- NT now encapsulates fstat to get correct file mod time, Adrian Aichner

to 21.2.23 "Hebe"
-- MS-Windows selection fixes from Mike Alexander
-- MS-WIndows process handling fixes from Mike Alexander
-- Subwindow GC fix from Andy Piper
-- Various minor fixes from Andy Piper
-- Rewrite module configure support, Martin Buchholz
-- Various Windows fixes, Martin Buchholz, Adrian Aichner, Andy Piper
-- HP native compiler compilation fixes, Martin Buchholz
-- Workarounds for Cygnus compiler bugs, Martin Buchholz
-- Workarounds for Cygwin broken header files, Martin Buchholz
-- itimers work again, Kyle Jones
-- random code cleanup, Martin Buchholz
-- various redisplay fixes, Andy Piper, Jan Vroonhof
-- various fixes from Hrvoje Niksic, Yoshiki Hayashi

to 21.2.22 "Mercedes"
-- ESD Sound support from Robert Bihlmeyer
-- 10% faster redisplay from Jan Vroonhof
-- Fixes from Jeff Miller, Alexandre Oliva and Yoshiki Hayashi
-- "If you've got problems, read PROBLEMS!" from Robert Pluim
-- Completely revamped GPM support from William Perry
-- Lstream code now uses size_t, ssize_t consistently, Martin Buchholz
-- Fix `make install' if prefix != exec_prefix, Martin Buchholz
-- Fix compile warnings and C++ compilation, Martin Buchholz
-- Fix detection of coding: cookie in -*- first line.
-- More xim-xlib work by Kazuyuki Ienaga
-- Fix crash in abbrev.c (abbrev_location), Eric Darve

to 21.2.20 "Yoko"
-- UTF-8 & file-coding magic cookie fix from MORIOKA Tomohiko
-- bug fixes from Adrian Aichner, Sean MacLennan, and Jeff Miller
-- glyph widget support under X/Athena from Andy Piper
-- tab widget support under X (all variants) from Andy Piper
-- many gutter, redisplay & widget fixes from Andy Piper
-- mswindows mousewheel support from Mike Woolley
-- combo box support under X/Motif from Andy Piper
-- buffer tab grouping from Andy Piper
-- layout widget support from Andy Piper
-- partial display line scrolling support from Andy Piper
-- cleanup patches from Gleb Arshinov
-- hash table FSF API sync from Martin Buchholz
-- widget cleanup from Martin Buchholz
-- process-environment fix for nt from Julian Back
-- widget to frame fix from Jan Vroonhof
-- animated glyph support from Andy Piper
-- glyph redisplay improvements from Andy Piper
-- color cells allocation fix from Lee Kindness
-- recover file fix for windows nt
-- mingw install fix from Craig Lanning
-- recognize keypad keys under MS-Windows from Jonathan Harris
-- Switch gui dialogs to native widgets from Andy Piper
-- fixes from Yoshiki Hayashi and Norbert Koch

to 21.2.19 "Shinjuku"
-- various fixes from Gunnar Evermann
-- XIM fixes from Kazuyuki IENAGA
-- keymap fix from Katsumi Yamaoka
-- Microsoft build fixes from Adrian Aichner
-- documentation update from Adrian Aichner
-- rect.el rewrite from Didier Verna
-- custom comment fields from Didier Verna
-- various fixes from Karl Hegbloom
-- filling fix from Yoshiki Hayashi
-- miscellaneous changes from Jeff Miller and Didier Verna
-- configure hacking from Steve Baur
-- various fixes from Bob Weiner
-- Mule synching from MORIOKA Tomohiko
-- various fixes from Steve Baur
-- LDAP configure changes from Gregory Neil Shapiro
-- gutter implementation from Andy Piper
-- tab widgets in gutter from Andy Piper
-- Custom themes, API part. See etc/custom/theme-examples from Jan Vroonhof

to 21.2.18 "Toshima"
-- miscellaneous fixes from Steve Baur
-- miscellaneous fixes from Didier Verna
-- various bug fixes from Karl Hegbloom
-- miscellaneous fixes from Bob Weiner
-- fix for XIM server crashing and taking down XEmacs from Kazuyuki IENAGA
-- valid-image-instantiator-format-p tightened up by Andy Piper.
-- glyph widget support under X/Motif from Andy Piper
-- Make docdir configurable, update package searching rules from Michael
   Sperber
-- Fix for Japanese word/character movements from MORIOKA Tomohiko
-- lrecord struct header size fix from Olivier Galibert

to 21.2.17 "Chiyoda"
-- miscellaneous bug fixes from Steve Baur
-- font menu fix from Robert Pluim
-- ldap API update from Oscar Figueiredo
-- Fix thai-xtis charset width from MORIOKA Tomohiko
-- CCL engine fix from MORIOKA Tomohiko
-- mswindows build fixes from Norbert Koch
-- miscellaneous fixes from Andy Piper
-- automated tests for mswindows from Adrian Aichner
-- tree-view and tab-control widget glyph support from Andy Piper

to 21.2.16 "Sumida"
-- miscellaneous fixes from Hrvoje Niksic and Olivier Galibert
-- make selection more mswindows conformant.
-- Make customize use specifiers from Jan Vroonhof
-- Cyrillic CCL crash fix from MORIOKA Tomohiko
-- DEC OSF Build fix and miscellaneous Lisp fix from Steve Baur
-- raw-text coding system synch from MORIOKA Tomohiko

to 21.2.15 "Sakuragawa"
-- new self tests from Oscar Figueiredo and Hrvoje Niksic
-- Miscellaneous bug fixes from Yoshiki Hayashi, Jerry James, Hirokazu FUKUI,
   Hrvoje Niksic, MORIOKA Tomohiko
-- LDAP internationalization from Oscar Figueiredo
-- DEC OSF build fixes from Steve Baur
-- Documentation fixes from Mike McEwan, Vin Shelton and Gunnar Evermann
-- Build fixes from Jan Vroonhof
-- Miscellaneous fixes from Hrvoje Niksic
-- Documentation updates from Hrvoje Niksic and Albert Chin-A-Young
-- mule-charset.el synch with Mule from Steve Baur
-- miscellaneous build and cosmetic fixes from Steve Baur
-- font-menu for mswindows from Andy Piper
-- select rationalisation for window systems from Andy Piper
-- reinstate sheap adjustment + mingw32 fixes from Andy Piper

to 21.2.14 "Dionysos"
-- mingw32 port from Andy Piper
-- fix for Solaris build lossage from Hrvoje Niksic
-- THAI/Cyrillic-KOI8, Vietnamese, Ethiopic support from MORIOKA Tomohiko
-- miscellaneous bug fixes from Gunnar Evermann
-- Internal purespace cleanup from Olivier Galibert
-- documentation updates from Hrvoje Niksic
-- dump time tuning from Hrvoje Niksic
-- miscellaneous bug fixes from Giacomo Boffi
-- font hacking from Jan Vroonhof
-- Czech language support from David Sauer
-- `delete-key-deletes-forward' now defaults to t
-- `locate-file' update from Hrvoje Niksic
-- MS Windows build fixes from Adrian Aichner
-- LDAP updates from Oscar Figueiredo
-- miscellaneous bug fixes from Colin Rafferty and Kai Haberzettl
-- disable display of images in buffers by file format
-- miscellaneous Mule fixes from Olivier Galibert
-- documentation updates from Albert Chin-A-Young
-- documentation updates from Gunnar Evermann and Stephen Turnbull
-- MS Windows build fix from Norbert Koch
-- miscellaneous MS Windows fixes from Andy Piper
-- redisplay bug fixes from Jan Vroonhof
-- miscellaneous bug fixes from Robert Pluim, MORIOKA Tomohiko
-- many, many bug fixes and enhancements from Hrvoje Niksic and Olivier
   Galibert
-- miscellaneous bug fixes from Martin Buchholz
-- Miscellaneous MS Windows fixes from Philip Aston
-- lots of new tests from Hrvoje Niksic

to 21.2.13 "Demeter"
-- Build fixes from Martin Buchholz
-- experimental splash screen rewrite from Didier Verna
-- Various patches from Jan Vroonhof and Andy Piper
-- alist.el synched up with APEL 9.13 from MORIOKA Tomohiko
-- MS Window build fixes from Jonathan Harris
-- UCS-4/UTF-8 support from MORIOKA Tomohiko

to 21.2.12 "Clio"
-- event-stream unification for MS Windows from Andy Piper
-- Determine best visual to use to avoid flashing from IENAGA Kazuyuki
-- Fix for new Berkeley DB library from Paul Keusemann/Gregory Neil Shapiro
-- Various package-ui fixes from Jan Vroonhof
-- Fix for doubled font-locking during buffer reversion
-- KFM browsing support from Neal Becker
-- info fix from Didier Verna
-- Build bug fixes from Martin Buchholz
-- Various Documentation updates
-- X-Face support for MS Windows native build from Gleb Arshinov

to 21.2 beta11 "Calliope"
-- Dialog box fix from Jan Vroonhof
-- unified mswindows and tty event loops from Andy Piper
-- miscellaneous patches from Gleb Arshinov
-- miscellaneous patches from Charles Waldman and Adrian Aichner
-- Mule dump time files remerged from mule-base package
-- Documentation fixes from Jan Vroonhof
-- 24bit color image fix from Kazuo OISHI
-- various build fixes from Martin Buchholz

to 21.2 beta10 "Boreas"
-- package UI fix from Jan Vroonhof
-- MS Windows NT process fix from Gleb Arshinov

to 21.2 beta9 "Athena"
-- parameterize replace-match function from Didier Verna
-- X-Face support under mswindows from Andy Piper
-- doc fixes from Adrian Aichner
-- about patchlet from Marcus Thiessel
-- isearch doc fixes from Didier Verna
-- interlaced gif fix from Gunnar Evermann
-- isearch improvements from Didier Verna
-- eldap connection fix from William Perry
-- package-get site fix from Robert Pluim
-- loadable modules fix from Damon Lipparelli
-- ldap fixes from Oscar Figueiredo
-- loadable modules from J. Kean Johnston
-- runwhatever from Charles Wilson
-- redisplay fixes for glyphs from Andy Piper
-- progress gauge widgets implentation from Andy Piper
-- W3 works again due to font.el being fixed
-- Another mule xemacs crash fixed
-- Images in widgets, warning fixes and gui_item cleanup from Andy Piper
-- package admin fixes under mswindows from Charles Waldman
-- miscellaneous mswindows build fixes from Jonathan Harris
-- help-echo fix from Hrvoje Niksic
-- x font path support from Jim Radford
-- MSVC compile fixes from Damon Lipparelli

to 21.2 beta8 "Artemis"
-- A bunch of Mule fixes from Martin Buchholz

to 21.2 beta7 "Ares"
-- mswindows modeline crash fix from Jonathan Harris
-- picon glyph fix from Gunnar Evermann
-- widgets-in-buffers and subwindow support from Andy Piper
-- movemail pop support under mswindows from Fabrice Popineau
-- ldap fixes from Oscar Figueiredo
-- fns cleanup from Hrvoje Niksic
-- menubar fixes from Didier Verna
-- mswindows accelerator fix from Jonathan Harris
-- dired mule fix from Didier Verna
-- sound doc cleanup from Charles Waldman
-- new display table functionality from Hrvoje Niksic
-- minor cleanups
-- package fixes from Jan Vroonhof
-- subwindow support fixes from Martin Buchholz

to 21.2 beta6 "Apollo"
-- mswindows compile fixes from Martin Buchholz, Andy Piper, Greg
   Klanderman and Adrian Aichner
-- Synch with XEmacs 21.0.60
-- mega-patch fixes from Martin Buchholz
-- md5 fixes and testsuite from Hrvoje Niksic
-- database fix from Hrvoje Niksic

to 21.2 beta5 "Aphrodite"
-- synch with XEmacs 21.0.58
-- bytecode interpreter rewritten
-- byte compiler fixes
-- hash table implementation rewritten
-- basic lisp functions rewritten
-- spelling fixes
-- garbage collector tuned a little
-- various global code changes for consistency
-- automated test suite
-- major internals manual updates
-- lisp reference updates

to 21.2 beta4 "Aglaophonos"
-- isearch keymap fix from Katsumi Yamaoka
-- directory_files cleanup from Hrvoje Niksic
-- C implementation of base64 from Hrvoje Niksic
-- C implementation of `buffer-substring-no-properties' from Hrvoje Niksic
-- Experimental fix for spurious `file has changed on disk' message from
   Charles Waldman
-- Fix for etags.el hook calling from Malcolm Box
-- User-name-completion fix for MS Windows NT from Greg Klanderman

to 21.2 beta3 "Aglaia"
-- case sensitiveness improvements from Didier Verna
-- Bug fixes from 21.0
-- Word selection on mouse click on quotes from Hrvoje Niksic
-- WAVE support for NAS from Raymond Toy

to 21.2 beta2 "Aether"
-- Synched with 21.0-pre14 "Poitou"
-- isearch improvements from Hrvoje Niksic
-- bytecompiler fix from Martin Buccholz
-- shadow.el speedup from Martin Buchholz
-- clash detection update from Jan Vroonhof
-- Indirect buffers from Hrvoje Niksic
-- ~user completion cleanup from Greg Klanderman
-- New face property from Didier Verna
-- ~user completion and fixes from Greg Klanderman
-- casefiddle.c speedup from Martin Buchholz

to 21.2 beta1 "Aeolus"
-- Synch with 21.0-pre6
-- Removal of ancient obsolete symbols courtesy of Altrasoft
-- Fix version numbers

Fork at 21.0 pre5 "Zhong Wei"