Mercurial > hg > xemacs-beta
view CHANGES-beta @ 76:c0c698873ce1 r20-0b33
Import from CVS: tag r20-0b33
author | cvs |
---|---|
date | Mon, 13 Aug 2007 09:05:10 +0200 |
parents | 54cc21c15cbb |
children | c7528f8e288d |
line wrap: on
line source
-*- indented-text -*- to 20.0 beta33 -- 20k of new zippy quotes from mly -- By popular demand, `font-menu-this-frame-only-p' now defaults to nil. -- tm-7.100.2 -- Neal Becker's Rosetta Man patch reinstalled -- VM 5.97 -- Minimize displayed help windows to avoid wasted screen space -- Miscellaneous bug fixes -- Java fontlocking update from Bob Weiner -- pcl-cvs update from Neal Becker to 20.0 beta32 -- InfoDock man.el -- Fix long-standing race condition in timeout handling (courtesy of David Moore). -- next-line-add-newlines now defaults to nil -- tm-7.97 -- charset renames for Mule 2.4 and TM compatibility. -- ANSIfication of the code base is mostly completed. -- Random bug fixes. -- Default JPEG image loading is now old tempfile code, but should work again. -- Keysyms now use dashes instead of underscores for compatibility. -- Miscellaneous bug fixes courtesy of Christoph Wedler -- mic-paren.el courtesy of Mikael Sjdin -- lpr.el/ps-print.el - Allow dynamic expansion of lpr-switches/ps-lpr-switches. -- Lisp Bug fixes -- Install info files compressed (courtesy of Joseph J Nuspl) -- Default locking for Linux is now .lock locking to 20.0 beta31 -- EDT/TPU modes synched from GNU Emacs, should actually work for the first first time. -- Lots of files synched with GNU Emacs 19.34. -- Apropos mode enhancements. -- locate-library is now silent when called non-interactively. -- Non aggressive keyboard focus throwing is supported. -- Various enhancements from Lars Magne Ingebrigtsen. -- smtpmail.el added from GNU Emacs 19.34. -- man.el & man-xref.el added from GNU Emacs 19.35. -- crisp/brief emulation courtesy of Gary D. Foster. -- id-select.el courtesy of Bob Weiner. -- pretty-print.el courtesy of Guido Bosch -- vhdl-mode.el Version 2.73 courtesy of Rod Whitby. to 20.0 beta30 -- Syntax entry specification "e" has been removed. -- updated xemacs.1 man page for new argument list handling. -- updated internals document to reflect new DEFUN macro. -- (load-average) works on Solaris. Thanks to Hrvoje Niksic. -- Command line processing now order independent -- Command line like: xemacs file -eval '(munge-file)' now works. -- Now uses XmIm* functions for XIM input when available -- Major cleanup of configure.in - preparation for Autoconf 2 upgrade. -- `man' directory reorganized. -- The `dvi' and `info' targets now work in the man directory. -- texinfo 3.7 no longer comes with XEmacs. User must supply own makeinfo or TeX to rebuild info files or to print hardcopy. -- execvp has been encapsulated. The command line of executed commands now is converted using pathname-coding-system before the command is run. -- Use flag -fno-gnu-linker if using gcc with dynodump (i.e. on solaris) -- m4-mode 1.8 -- etags.c 11.78 -- ilisp 5.8 -- cperl-mode 1.28 -- cc-mode 4.322 -- elp 2.37 -- python-mode 2.83 -- load-warn-when-source-newer now defaults to t -- purespace messages from loadup.el now much more reasonable. -- Changed lispref documentation to refer to frame properties, not parameters. -- Synched up files.el: file-relative-name (Steven Baur's patch) -- Fix: shell history works if commands contain non-ASCII characters. -- Fix: shell commands can contain non-ASCII characters. -- Fix: dired on Non-ASCII filename now works -- Fix: repeat-complex-command fails when repeating M-x emacs-version -- tm 7.94 integrated - default in XEmacs/Mule - Japanese newsgroups now readable without .emacs modifications. -- Johan Vroman's iso-acc.el ported to XEmacs by Alexandre Oliva -- Made startup option processing more sensible - Eliminate most order dependencies - more compatible with FSF - Some additional flags (-V equivalent to -version, -flags == -help) -- Michael Sperber's psgml-html patch -- Makefile rule to create TAGS file now properly creates tags for DEFVAR_* macros. -- DEFUN macro has major facelift: - No need to specify both Ffoo and Sfoo - Arglist is more Lispy - no more K&R style function definitions. - DOC file creation modified to deal with new style DEFUN. -- X selection code Re-Mule-ized - Should interoperate with other X clients. -- beginnings of TM integration -- When regexp is [^CHARACTERS] and first character of string is non-ASCII character, XEmacs crashes. Fixed for real this time? -- fixed redundant, buggy calls to (message (format ...)) In particular (occur "%") now works. -- support for creating .i files (useful for debugging) in src/ -- make src/Makefile.in.in makefile-mode-friendly -- define and use macros XSTRING_LENGTH, XSTRING_DATA, with obvious meanings. -- eliminate calls to x_smash_bastardly_shell_position. The Xt shell widget core fields are no longer overwritten with values that Xt would not have put there itself. -- support for CDE drag and drop of data, not just files. -- XIM patch from Jareth Hein (but XIM still doesn't work for him) -- COMPREHENSIBLE puresize information when --with-debug specified -- if get_eof_char is called without a pty, should not call tcgetattr() -- Fix crash if delete-frame-hook selects the about-to-be-deleted frame, by calling delete-frame-hook at the beginning of delete-frame code. -- Fix run-time warnings detected by Sun WorkShop dbx rtc tool. -- possible fix for assertion failure in open-network-stream -- server-make-window-visible more portable -- locate-library now accpts both symbols and strings. -- buffer names in the buffer menus are no longer translated - they are put into the `suffix' part of the label. to 20.0 beta29 -- fast-lock.el 3.10.01 -- ksh-mode.el 2.9 -- mode-motion+.el 3.16 -- psgml-1a12 -- executable.el, imenu.el, sh-script.el and uniquify.el now included -- rfc1521 patches to VM from Jamie -- OffiX support added -- lots of 19.34 syncing, most by Steven Baur -- NetBSD on sparc platform fixes -- additional featurep checks on 'scrollbar and 'menubar -- configure changes to allow sunos4shr args to be picked up correctly to 20.0 beta28 -- gnus 5.2.40 -- etc 0.22 -- w3 3.0.12 -- reporter 3.3 -- psgml 1a11 -- cc-mode 4.315 -- hm--html-menus 5.0 -- other assorted fixes and changes -- python-mode 2.73 -- minor corrections to sample.emacs -- added localization hook for lisp/locale/LANG/locale-start.el -- face-complain-about-font now offers an Action Plan after whining. -- Editing of filenames encoded in pathname-coding-system now works. -- Characters in current locale displayed properly in frame title and icon name. -- Characters in current locale displayed properly in menubar. -- Resize frame, then (set-frame-properties (selected-frame) '(left 100)) would always move to (x=100, y=0) -- {de,en}code-coding-string rewritten - should work now. -- delete-frame-hook docstring warns not to select frame-to-be-deleted -- When regexp is [^CHARASTERS] and first character of string is non-ASCII character, XEmacs crashes. Oops ix! Fix undone. Problem still there. -- (XIM) ^G and friends no longer self-inserting -- (Mule) byte-compilation problems fixed -- describe-last-error fixed -- frame 'minibuffer property correctly computed. -- implementation of (set-charset-registry) -- (charset-dimension) now works -- Setting language environment to japanese does (set-charset-registry 'ascii "JISX0201") -- Fixed encode-coding-string, decode-coding-string -- face-complain-about-font now gives more useful warning. to 20.0 beta27 -- gnus 5.2.39 -- etc 0.20 -- w3 3.0.11 -- url 1.0.41 -- canna.el patch -- chinese font patch -- stringp nil error when starting sparcworks -- call7 and call8 had incorrect array sizes -- makefile mode Error in `pre-idle-hook' (setting hook to nil): (void-function makefile-space-face) -- Crashes when built on X11R5 and run on X11R6 fixed -- Lisp backtrace is now printed on all crashes, not just debug build -- XIM input now generates true events. As a result it works with isearch. -- 20.0/Mule can now byte-compile its own elisp files. -- LOTS of typos fixed. -- 20.0/Mule - Language Environment menu no longer shrinks to one element. -- 20.0/Mule - no more Vietnamese language build-time warnings. -- sunpro-init no longer opens /net/bin with possible hang at startup. -- switch-to-buffer-other-window reverted to old-style behaviour -- python-mode 2.72 -- auto-mode-alist regexps reorganized for efficiency -- interpreter-mode-alist regexps now look at entire first line. -- new (interactive) spec `i' can be used to skip arguments. -- dired works in Asian locales. -- (Mule) write-region now works. to 20.0 beta26 -- gnus 5.2.25 -- browse-url 0.38 -- viper 2.90 -- XEmacs web page entries on help menu now reference browse-url-browser-function -- problem with using dired-mode-font-lock-keywords fixed -- new variable `allow-deletion-of-last-visible-frame' -- NEED_LIBW handled -- glyphs-x.c should really build with older png libs now -- balloon-help crash fixed -- A patch for crash in multiple_change_finish_up which Lars hit. I don't know if it is fully correct but it should be safe and prevent the crash. -- some Unixware patches -- some additional SCO patches -- auto-show-mode is now off by default in edit-faces-mode -- incorrect echoing when hitting 'f1 in tty mode fixed -- png build problem fixed -- terminal.el env requirement removed -- gdbglobal doesn't turn on everywhere anymore -- The bug where window-displayed-height didn't always return the correct value is fixed. The same bug was responsible for shrink-window-if-larger-than-buffer sometimes failing to work correctly. -- The force option to delete-frame is back. You can no longer delete the last visible or iconic frame unless the second arg to delete-frame is non-nil. -- Darrell Kindred's patch fro the ^@ problem -- a number of random elisp changes from Jamie -- --with-cde flag is back -- revert-buffer no longer causes complete refontification in lazy-lock. -- some more options on Options menu, for Printing. to 20.0 beta25 -- w3 2.3.67 -- url 1.0.34 -- ediff 2.61 -- vm 5.96 -- viper 2.89 -- gnus 5.2.19 -- browse-url 0.36 -- corrected modeline overwriting being triggered by using ispell -- fixed crash in tty-mode with edit-faces (again) -- infinite loop when using surrogate minibuffer fixed -- corrected handling of buffer arg to call-process -- SCO 5 patches from J. Kean Johnston -- patch from Bill Perry to eliminate using temporary files when handling PNG files -- Sun-provided CDE-friendly icon now default XEmacs icon. -- canna support integrated (Thanks to Moroika Tomohiko). -- apropos.el sync'ed with FSF Emacs 19.31 - Fixes the `Nothing to follow here' problem. -- set-process-filter no longer crashes if the process is dead. -- x-compose.el now works again on Solaris. -- New function x-keysym-on-keyboard-p helps determine keyboard characteristics for key rebinding: x-keysym-on-keyboard-p: (KEYSYM &optional DEVICE) -- a built-in function. Return true if KEYSYM names a key on the keyboard of DEVICE. More precisely, return true if pressing a physical key on the keyboard of DEVICE without any modifier keys generates KEYSYM. Valid keysyms are listed in the files /usr/include/X11/keysymdef.h and in /usr/lib/X11/XKeysymDB, or whatever the equivalents are on your system. -- Sun key rebinding changed yet again to use function-key-map. Type 4 keyboards have r35 mapped to `next'. Type 5 keyboards already have `next', so map r35 to `kp_next'. -- (Mule) Some menubar items will be translated by default in a Japanese locale. -- Sun key rebinding changed again to use function-key-map. -- inheritance loops in face property specifications no longer cause XEmacs to crash. -- minibuffer-setup-hook no longer clobbered by read-file-name. -- extra icons in Info mode removed. -- XEmacs info top level sub-headers synched up with lower-level headers. -- gnuclient prompts you with a dialog box when asking questions. -- the yes/no dialog box now has sane options: yes, no, yes all, no all, and cancel. -- make-face-bold, make-face-italic, et al. do a better job than before -- they know about inheritors like [bold] and [italic], and will use one if their normal X frobbing isn't successful. -- better handling of bad menu filter functions. -- buffers-menu improvements. -- query-replace now disables case-folding if uppercase letters are in the search string, like isearch does. (To turn both of these off, set `search-caps-disable-folding' to non-nil.) -- C-h ? ? works. -- Chuck -- you need to re-byte-compile finder.el to fix C-h p under 20.0. It wouldn't hurt to recompile everything. -- weird bug with markers and standard-output fixed. -- save-options now saves to a file `.xemacs-options' instead of directly to .emacs. .emacs is set to load .xemacs-options. The file is loaded with `load-options-file', which will allow eventually for automatic updating of out-of-date options files. -- Pretty-much everything in that spawn-of-hell file terminfo.c is commented out now for most systems, since we didn't actually need any of it! to 20.0 beta24 -- gnus 5.2.12 -- filladapt 2.08 -- fixed padding problem in modeline -- fixed geometry problem with Athena scrollbar; it no longer has any border and isn't going to at least for 19.14 -- bug where save-places didn't work correctly with a file given on the command line is fixed -- The global ospeed is completely unused now if TERMIOS is defined. Before I actually remove the defines (which might fix those header conflicts) I want some confirmation that doing this doesn't cause problems in tty mode. This change fixes a crash being seen when running with the -nw flag on Irix 5.3 (binary built with gcc). -- minibuffer echoing now works properly with surrogate minibuffers -- A number of crashes which were reported when trying to use surrogate minibuffers are fixed. -- font-lock-add-colors now adds colors and only colors -- --exec-prefix and the other path altering flags should work NOTE: I have not fully tested it because I would have to do nothing other than run configure all day to do so. -- It should now work to use XEmacs as a login shell; note that if you start to stray from a default installation setup this may still be broken. -- possible fix for Vladimir's crash in Lstream_close(). to 20.0 beta23 -- gnus 5.2.10 -- w3 2.3.65 -- url 1.0.32 -- ispell.el 2.37 -- viper 2.88 -- fixed bug which was leaving modeline droppings next to the scrollbars -- hack from Jamie to make gdb popup a dialog box to answer y/n questions when using the toolbar -- patch from Bill Perry to eliminate using temporary files when handling JPEG's -- patch from Bill Perry to support 'pointer extent property -- corrected a bug where annotations in the left outside margin which were equal to the width of the margin would not be displayed -- Sun keybindings done like in 19.13 - true X keysym always works. -- ispell works - (accept-process-output) bug fixed. -- M-x manual-entry works on SysV with RosettaMan installed. -- process output no longer inserts gratuitious C-d's UNLESS line to be sent to process is longer than 256 characters. (This still needs to be fixed so that C-d's are only inserted if the tty is in canonical mode). -- More type casting fixes to remove compiler warnings. -- Random improvements to the Lisp Reference Manual. -- XIM XCreateIC now always specifies a `Spot Location'. -- If `sparcworks' is not on the PATH, but is in /opt/SUNWspro/bin, add /opt/SUNWspro/bin to exec-path, and run eos::start. to 20.0 beta22 -- w3 2.3.63 -- url 1.0.31 -- fixed crash in gif_instantiate when starting w3 in tty mode -- fixed crash caused by grayscale jpegs -- patch from Steven Baur to the psgml dtd catalog -- patches to improve Athena scrollbars -- fixes to delbackspace.el -- merged s&m/ files, config*, unex* (mostly), getloadavg.c up to FSF 19.31. This might fix Lynn's AIX problems. -- better Java font-lock keywords (e.g. tries real hard to fontify method names in their definitions). -- problems with compiling with --debug=no should be fixed. -- edit-faces in TTY core dump fixed. to 20.0 beta21 -- w3 2.3.61 -- url 1.0.29 -- oo-browser 2.9.12 (adds python support) -- fixed problem with display of right side toolbar -- removed fa-extras.el -- AIX configure patchs -- updated sysdep.el from Bill Perry -- delbackspace.el now uses the new key-translation-map, so it's less kludgy. -- vrml-mode.el gained some VRML 2.0 support. -- fixed crash in x_output_string triggered by balloon help; this almost certainly was causing a number of other reported crashes -- fix for "obfuscated and incorrect way of saying 'Solaris'" -- abort() in execute_internal_event() should be fixed -- gnuattach now opens a TTY on *scratch* if given no args. -- gnuattach now passes in the TERM type of the TTY it's run on. -- TTY routines in XEmacs now use filedescs directly instead of FILE *'s; should fix AIX gnuattach problem. -- VM is smart about whether to install its toolbar on the selected frame or current buffer. -- new function `set-device-class' (you can say that your TTY device is color even if it's not apparent from the TERM type) -- selection/unselection of devices/consoles is "idempowered". -- added option for sample.emacs to the Help menu. to 20.0 beta20 -- w3 2.3.54 -- url 1.0.23 -- viper 2.87 -- ediff 2.60 -- more NEWS file updating -- Gnus toolbar is back -- browse-url functions now autoload -- patch from Darrell Kindred to fix auto-show problem with (set-specifier left-margin-width 10) -- patch from Darrell Kindred to fix isearch buglet -- patch for bad paste of rectangular regions -- fixed crash when starting w3 in TTY mode -- memoize_extent_face_internal() crashes fixed. -- paths.el recomputes salient paths at run-time. -- new function `running-temacs-p'. -- missing functions set-face-strikethru-p, face-strikethru-p added. -- -*- Mode: foo -*- with capital "Mode" wasn't recognized but now is. (RMS lossage.) -- Obsolete make-cursor added back. -- sample.emacs updated to use new pointer stuff. -- multi-device TTY after X, gnuattach should work properly. -- gnuattach has manpage documentation. -- XEmacs in TTY mode now correctly restores all terminal settings when exiting. to 20.0 beta19 -- w3 2.3.52 -- url 1.0.21 -- func-menu 2.43 -- pcl-cvs autoloads corrected -- --extra-verbose now implies --verbose as well -- crash in x_get_gc when called from x_output_string should be fixed -- The configure.in code to detect h_errno and sigsetjmp was broken, unless your compiler supports nested functions (as gcc does). AC_COMPILE_CHECK takes a FUNCTION BODY, not a FUNCITON, as one of the arguments. I have some trepidation on making these changes as there are some comments in solaris header files about disabling sigsetjmp, but at least the configure test now works - and XEmacs still seems to, too. -- Sun support in configure.in has been rewritten. SunOS 4.1.1 through 4.1.4 has been tested. The configure code for suns has been greatly simplified. -- Xmu detection should now work on SunOS4. to 20.0 beta18 -- pcl-cvs 1.7 ; please test -- w3 2.3.43 -- url 1.0.20 -- ediff 2.59 (again; this should have a higher rev) -- follow 1.6 -- config.guess and config.sub updating; may cause some configuration problems -- dynamic or lack thereof lazy-lock bug fixed -- word-search-{forward,backward} crash fixed -- easymenu.el patch from Per Abrahamsen -- ClearCase VC support from Rod Whitby -- lib-complete now dumped; improved find-library -- make-x-device patch for TTY mode from Bill Perry -- extent-faces-as-list lossage patch from Bill Perry -- multiple definition cleanup -- mailcrypt update for sgnus -- new function isearch-toggle-case-fold -- new function device-sound-enabled-p -- background.el lossage fixed -- find-dired lossage fixed -- if XEmacs cannot deduce a bold-italic font from the default, try copying the bold face and doing make-face-italic - if that fails, try copying the italic face and doing make-face-bold. With the XResources in the bug report, I get the correct fonts now - please try. -- default-popup-menu now intelligently greys out its menu items -- don't put up the load .emacs button in the menubar if the file doesn't exist -- actually let the 'Frame-local font menu' work! The call to (set-face-font 'default ...) was not specifying the frame as a locale, so all changes to that face were global. -- more bugs fixed, including some for core dumps. If there are any remaining core dumps in b18, please yell so that they get fixed. -- `pointer' face works now. -- `colorize-image-instance' changed incompatibly (previously it did bad things). I don't think this matters because no one seems to use this function anyway. -- browse-url 0.30 (includes Lynx support) -- updated f90.el -- cperl-mode (although not enabled by default) -- skeleton.el -- improved Linux native sound support -- updated PROBLEMS (synched with 19.30) -- CDE autodetected. -- initial unification of browser-sending support. -- fixes to focus handling -- should fix "delay noticing focus change after VM invoked" -- uses ncurses if available -- better terminal support. -- if you have color xterm and set your TERM to xterm-color, XEmacs will use color on TTY's (at least under Linux). Under linux, TERM=linux or TERM=ansi also has this effect. (In general, any terminal type that defines color capabilities in terminfo.) to 20.0 beta17 -- w3 2.3.42 -- url 1.0.19 -- mh-e 5.0.2 -- XIM work from Martin -- electric modes synched up with FSF 19.30(.97). -- func-menu 2.41. -- no cursor blink at eol fixed -- lots more bugs fixed, see the Web page. -- more TTY colors. -- new last-win and next-win icons. -- VRML mode (I wrote it). -- SPC does its previous thingie in the minibuffer. -- curmudgeon mode is removed. to 20.0 beta16 -- w3 2.3.39 -- url 1.0.17 -- curmudgeon-mode: Just so all you curmudgeons will shut up. `enable-curmudgeon-mode' sets all the old minibuffer, etc. behavior that you're used to. You can also give a particular category for curmudgeonization. -- func-menu 2.38. -- enriched.el, face-menu.el from Michael Sperber. -- If you're in a help buffer, you can exit using q and the previous window config is restored. Help buffers are now selected by default to make this easier (but you can get the old behavior using curmudgeon mode). -- `eq' now works on face properties even if they're lists -- the lists are "memoized". -- numerous bugs fixed -- see the Web page. to 20.0 beta15 READ THIS FIRST: -- emacs-version for 20.0 now reports 20.0, not 19.20. This is gonna break some packages that do incorrect version tests. Both 19.14 and 20.0 now include the function `emacs-version>=' from emacs-vers.el, which is a correct version test function. If you want to use this (highly recommended!), put code in your file like (or (fboundp 'emacs-version>=) [copy definition of emacs-version>= from version.el]) -- Byte code emitted by XEmacs 20.0 is NOT, repeat NOT, downward compatible. Byte code compiled in any Emacs 19 is upwardly compatible to v20. (For the most part, that is ...) However, you can force v19 compatibility under XEmacs 20 by setting `byte-compile-emacs19-compatibility' to non-nil. -- (This latter change is the result of a better solution to the "char-int confoundance syndrome" problem, although it was planned anyway.) USER-VISIBLE CHANGES: -- w3 2.3.36 -- url 1.0.16 -- viper 2.86 -- ediff 2.59 -- cc-mode 4.282 -- func-menu 2.37 -- mailcrypt 3.4 (2.x has been removed) -- The appropriate function-key and arrow-key definitions should now be set up automatically in TTY mode, for a number of different terminal types. Please review the terminals in lisp/term/ and see if there's anything wrong. Also, feel free to supply new terminal definition files. -- blink-cursor-mode. This gets you the blinking cursor that lots of people have been wanting for awhile. There is a menubar entry for this. NOTE: There is currently a redisplay bug whereby the cursor won't blink if it's at the end of the line. Hopefully Chuck will fix this soon. -- wing-psgml-mode: A "grand unified mode" for HTML. I started out with PSGML, which is a way cool and powerful mode for editing SGML, but extremely un-user-friendly in its current form. I combined it with some setup stuff from Alastair Burt and took some stuff (the template stuff) from the hm--html-menus package. -- improved file-dialog-box; some help from Rich Williams here. -- improved completion-list-mode. (This is the mode for the lists of completions.) Hit SPC in the minibuffer and you'll end up in the completion list buffer, and can move around and select things in a sensible fashion. This should be a friendliness improvement for TTY mode and such. -- improved edit-faces. It uses the new list-mode also and has other new user-friendly features. -- auto-show mode is now dumped and is enabled by default. This will automatically scroll the window horizontally as necessary to keep point in view. (buff-menu is no longer dumped, so there's a net decrease in the puresize.) -- There is a menubar entry for Bookmarks. -- `show-message-log' and the associated menubar entry no longer exist. Instead, use `view-lossage' (C-h l). There is now a menubar entry for this under Help. -- etags is merged with FSF 19.30 (adding Perl support, among other things), and some Mly-induced breakage that resulted in pathologically long relative filenames in the TAGS file has been fixed. -- tcl.el 1.50. -- annoying VM auto-raise of frame is gone. -- I fixed a number of bugs with this-command-keys and C-g. e.g. the C-x ? C-x C-h bug is finally gone. If you see any more, please pipe up and I will try to fix them. (A lot of the event code is rotting, though, so not everything can be fixed ...) Also, if you notice any weird behavior, *please* speak up! BUILD-LEVEL CHANGES: -- When XEMACS_DEBUG is defined and XEmacs is dumping, the number of bytes of purespace used by each loaded file is displayed. -- Linux no longer defines BROKEN_SIGIO. -- Linux binutils-2.6.0.10 breakage is no longer. -- fixes for building under SunOS. -- configuring without database support now works. -- you can fix up the autoloads using `make autoloads' in the top level directory. LISP-LEVEL CHANGES: -- Hyperbole is still broken, sigh. -- function-key-map and key-translation-map are now properly implemented. -- keyboard-translate-table now lets you translate keysyms, e.g. to fix the grievous damage Sun did to their X keyboards. See the function `keyboard-translate'. -- The function `window-height' has been changed to return a different value when a horizontal scrollbar is present. The new definition makes window-height ``mathematically tractable'': Its value always reflects the window geometry, and will not change if you turn off or on the modeline or horizontal scrollbar. Also, now, when there is only one window, frame-height always equals window-height. -- The new function `window-displayed-height' returns the actual number of text lines currently visible (making proper allowances for blank space at the end of a buffer). You should use this instead of the standard kludge `(1- (window-height))'. -- Hash tables can now do their comparisons with `equal' instead of `eq'. See `make-hashtable'. -- The `face' property of extents and text properties can now be a list. -- derived.el has been fixed up and is now dumped. -- cl.el is now dumped. This includes the most basic of the Common Lisp functionality; the rest is autoloaded. (And with the lazy byte-code loading, it will come in only as needed.) Accordingly, I removed the (usually less powerful) XEmacs versions of `intersection', `union', etc., `delete-if', `delete-if-not', `push', `pop', `c[ad][ad][ad]?[ad]?r', etc. This should clear up any remaining problems with ediff and such. Note that the increase in purespace from doing this is actually quite small -- about 15K. -- At least one function (`display-completion-list') has been rewritten to take Common Lisp key-style arguments. This provides a sensible alternative to having zillions of optional arguments in an unrememberable order. Other packages might consider doing the same. -- completion-list-mode is actually defined using `define-derived-mode', as a sub-mode of list-mode. edit-faces defines another sub-mode of list-mode. -- some patches from Darrell Kindred. -- new specifier `text-cursor-visible-p' controls whether the cursor is visible. -- new face `text-cursor' controls the colors of the text cursor. -- New file `gui.el' defining some functions useful for GUI stuff, e.g. creating dialog frames and buttons. -- The function `extent-at' now takes an argument AT-FLAG controlling what it means for an extent to be "at" a position. `get-char-property' and `get-text-property' also take that argument. -- `display-completion-list' has been changed to take key-type optional arguments. There are keys for controlling the activation callback, the help string displayed, the window width, and other things. -- New text-property functions `text-property-bounds' and `next-text-property-bounds' facilitate looking for stretches of specially-marked text. This supersedes the common, error-prone loops involving `next-single-property-change', `map-extents', etc. (I thought long and hard about the end cases.) -- `frame-visible-p' now actually queries the window system, so it is always accurate without the need for weird kludges like `accept-process-output'. MISC CHANGES: -- Glyph and keymap lispref documentation should now be accurate and up-to-date. -- XEmacs uses sigsetjmp(foo, 0) when possible; this avoids lots of sigprocmask() system calls that were happening. to 20.0 beta14 -- w3 2.3.32 -- XEmacs has a pseudo-file-dialog-box that gets invoked when you choose a menu entry that prompts for a filename. The code that implements it is in `mouse-read-file-name-1' in minibuf.el. It's a pretty cheesy-ass function but it gets the job done. It clearly needs some work; beta testers out there are encouraged to help here. (hint, hint) -- there were some missing UNGCPRO's that might have led to weird crashes. -- Much improved xemacs-internals. More is coming. -- lots of improvements to the Lispref documentation, e.g. the general section on objects is now actually more or less correct. -- "cursor glyphs" and "cursor image instances" now use the term "pointer" instead of "cursor". -- new profiling code. See `start-profiling', `stop-profiling', `clear-profiling', `pretty-print-profiling-info', etc. This uses a SIGPROF so it's only as accurate as your system timer (100Hz under Linux on the x86; may be different on other systems). -- I have tried hard to minimize the amount of allocation that happens as a result of normal activities. For example, `save-window-excursion' and `save-excursion' no longer result in any allocation in most circumstances. -- New variable `debug-allocation'. If you set this to non-zero, you will get a record on stderr of every time that any allocation occurs, and a short backtrace will accompany it (controlled by `debug-allocation-backtrace-length'). Normally, set this to 1; if you set this greater than 1, you'll also see the "noseeum" allocations that happen internally and are later undone (thus causing no net allocation). -- byte-code objects print more sanely. They also have an "annotation" field indicating where they came from. -- problem with lazy-lock sucking away idle time should be gone. -- problem with mouse highlight not appearing may be gone. -- problem with "interactive `e'" incorrect is fixed. -- you can set and access all specifier and glyph variables using frame properties. to 20.0 beta13 -- mode-motion+.el 3.15 -- hm--html-menus 4.16 -- ediff 2.54 -- viper 2.85 -- w3 2.3.30 -- url 1.0.13 -- nil is once again a valid color instantiator -- 'make install' in a clean workspace should now work correctly. -- Fixed a bug where using proportional fonts for the default face resulted in an extra-wide frame. -- Fixed wrong-type-argument error when using 'delete window above' from modeline menu. -- Fixed error when loading nroff-mode. -- Fixed crash caused by this: (setq toolbar-file-icon '(blah)), then C-x b foo RET -- Error signaled if you try to create a frame with a `.' in the name. -- frame size changes which occur while a tty-mode XEmacs is suspended are now handled. -- super-apropos is now apropos-documentation ; Help menu has been changed -- tooltalk patch to allow setting of message disposition attribute (from Hans Muller) -- user-mail-address patch from Russell Ritchie -- DEC OSF 4.0 patch from Manoj Srivastava -- new specifiers default-toolbar-height, default-toolbar-width, default-toolbar-visible-p, and {top,bottom,left,right}-toolbar-visible-p. The new default specifiers work like default-toolbar: for whichever of the four positions is the default-toolbar-position, the corresponding specifiers foo-toolbar, foo-toolbar-{height,width}, foo-toolbar-visible-p inherit from the appropriate defaults if no value is given. I also redid the toolbar size-handling code. This appears to fix the weird problems Kyle noticed with VM and the prev/next window config buttons, and might have fixed that elusive VM phantom toolbar bug. to 20.0 beta12 -- gnus 5.0.15 -- cc-mode 4.281 -- now works in TTY mode, yay. -- removed ill-conceived FSF Emacs post-command-idle-hook (added to XEmacs in an earlier beta). Replaced it with pre-idle-hook. lazy-lock now uses this. -- added frame-modified-tick for use by lazy-lock. -- cursor overhaul is here. Cursors are now specifiers. Should make them work properly on multiple devices. Not working quite yet: colored cursors. I'll get to these. -- various fixes, e.g. to font-lock. -- cc-mode 4.280 -- dialog boxes work again. (e.g. Save-some-buffers from the File menu works and uses the new-improved map-ynp stuff.) -- I changed `set-specifier' so that it works more sensibly (like `set-face-property' -- it takes a separate LOCALE and TAG-SET argument, although the old way of specifying things still works) and rewrote the incomprehensible gibberish that masqueraded as its documentation so that it actually makes sense now, even to someone who's not especially familiar with specifiers. to 20.0 beta11 -- follow.el 1.5 -- oo-browser 2.9.11 -- hyperbole 4.01 -- w3 2.3.28 -- pretty much all reported bugs for the last betas should be fixed. -- event crash from "M-x followed by mouse click" fixed. -- fixed a nastily subtle bug in `kill-all-local-variables' that has been around since mly's symbol rewrite some two years ago. This bug could potentially have resulted in all sorts of inconsistent and difficult-to-track behavioral problems. -- fixed another nastily subtle bug that had to do with extent parents/children. This feature should finally work correctly now, because it's actually being used (in the modeline). -- exported weak list interface (new functions `weak-list-p', `make-weak-list', `weak-list-type', `weak-list-list', `set-weak-list-list') so I could test it -- it's used in extents to fix that nastily subtle bug just mentioned. -- I removed the disgusting "feature" of being able to use `elt', `concat', `length', etc. on compiled-function objects, and fixed the small number of places that relied on this. However, if you see an error of the sort As of 19.14, `foobar' no longer works with compiled-function objects then I missed a place. Note that there are accessors `compiled-function-*' for properly accessing the contents of a compiled-function object. These accessors have been around since at least 19.8, so this is not an overly bold change to make. NB: Chuck says the cruddy `aref' stuff is going back into 19.14, but will disappear for good in 19.15. -- you can now dump faces into the dumped XEmacs. -- modeline changes: -- The (GLYPH . KEYMAP) and (FACE . FOO) modeline specs have gone away. In place of this, use (EXTENT . FOO). The face, keymap, and help-echo properties of the extent are noticed. Nested keymaps are handled correctly, but not nested faces as yet. See `modeline-format' and `generated-modeline-string' for details about how this all works. It's way cool. -- colored sections of the modeline generally indicate that you can "do something" with button2 or button3. button2 does something immediately while button3 brings up a menu. (Clicking button2 on a non-colored section of the modeline does nothing, while clicking button3 there brings up the standard modeline menu.) -- clicking button2 on the "read-only" marker toggles read-only status. -- clicking button2 on the right half of the buffer ID (the part that says " foobar.c") cycles to the next buffer. -- clicking button2 on the left half of the buffer ID (the part that says "XEmacs:") cycles to the previous buffer. -- clicking button3 anywhere on the buffer ID brings up a Buffers menu. -- clicking button2 on the ID strings of certain minor modes turns them off (such modes are displayed in green instead of red). ("Certain minor modes" means minor modes that correctly call `add-minor-mode' to announce themselves instead of just smashing minor-mode-alist directly. I've fixed some modes to do this.) -- clicking button3 on any mode ID string brings up a menu that lets you toggle certain minor modes. (#### Should also let you change the major mode. How do you get a list of all major modes that exist, sans the uninteresting ones?) -- clicking button2 on the "Narrow" string of a narrowed buffer widens the buffer. -- help-echo is given for all button2 actions. -- save-options wraps its outputted forms in (if (featurep 'foo)) to make sure that your .emacs will load OK in a differently-featured XEmacs from what you saved the options in. -- new function `set-face-parent' for properly making one face inherit all attributes from another. -- `set-extent-endpoints' can be used to move an extent from one buffer to another. -- semi-new function `event-glyph' returns the glyph underneath an extent. -- fixed bug in `recover-session' ... tsk tsk beta testers. -- new function `mapc' -- like mapcar but doesn't accumulate results. -- switched back to newer version of paragraphs.el; corrected filladapt.el to mesh properly with it. -- now autodetects -lgdbm as well as -ldbm, and uses the appropriate one. The --with-database option takes a comma-separated list of one or more of "dbm", "gnudbm", and "berkdb", or "no" to disable. -- autodetects png, both with -lz and -lgz. You can explicitly call for png with -lgz using --with-png=gnuz. -- autodetects libXmu absence. -- configure option for NO_UNION_TYPE enabling/disabling provided. It's called --use-union-type. WARNING: GCC (esp. 2.6.0, 2.6.3, 2.7.0) will probably fuck up and generate incorrect code if you use this option. -- finally repaired the grievous damage that is `frame-parameters' -- use `frame-property', `frame-properties', `set-frame-property', and `set-frame-properties' instead. `frame-parameters' and `modify-frame-parameters' are still supported but obsolete. "Frame properties" are not only a different interface but actually let you store arbitrary properties along with a frame, and retrieve them later. `frame-property' is much more efficient than `frame-parameters' because it is non-consing. -- new functions `alist-to-plist', `plist-to-alist', `destructive-alist-to-plist', and `destructive-plist-to-alist' to make it easier for you to convert between alists and plists, such as you might do with frame properties/parameters. -- A whole host of new functions for working with plists. There is also a parallel set of these functions for "lax plists", which are plists where comparison between keys is done with `equal' instead of `eq'. (Frame property plists are this way because the keys can be strings.) -- The monstrous spawn-of-hell function `display-buffer' has been moved into Lisp, so you can play around with it if you want to. -- New functions `push-window-configuration', `pop-window-configuration', `unpop-window-configuration'. The latter two implement a Netscape-like forward/back movement through window configurations. `display-buffer' automatically pushes a window config if anything changes as a result of the call, so you can easily undo the results of asking for help and such with just a mouse click. PLEASE someone come up with better icons. I just stole the Info arrows. -- The dreaded FSF dynamic byte-compile format is here. It is *NOT* repeat *NOT* enabled by default for 19.14, so it's not gonna break anything. It *IS* yes that's right *IS* the default for 20.0. (Both kinds of dynamic byte-compiling are the default for 20.0.) Therefore, files you compile using 20.0 won't be readable under versions before 19.14 unless you set `byte-compile-dynamic' and `byte-compile-dynamic-docstrings' to nil before compiling. Note that 19.14 will recognize and correctly read dynamic byte-compiled files (whether compiled by 20.0, 19.14, or FSF 19.29 or above), even though it won't generate them by default. (You have to set one or both of those variables just mentioned to non-nil if you want this.) to 20.0 beta10 -- cc-mode 4.273 (includes java-mode from Eduardo) -- edebug 3.5 -- first line display problem on ttys fixed -- problem with cursor position after exiting tty mode fixed -- cheap fix for the filladapt problem; completely backed out the sync of paragraphs.el with 19.30. One of the changes in forward-paragraph is causing the problem. -- Faces can now be embedded in the modeline. Add a cons where the car is a face object and the cdr will be evaluated as usual but the results of it will be displayed in the given face. -- Glyphs can now be embedded in the modeline, along with a keymap to make them active. For a glyph which just displays you can insert just the glyph. To include a keymap, add a cons with the car as the glyph object and the cdr as the keymap object. -- cut redisplay's memory consumption by 1/3 -- fixed a memory leak in the scrollbar code -- font-lock basically synched with 19.30. LISTEN UP: I changed the way font-lock faces are initialized. It now takes advantage of the specifier stuff added in 19.12, and sets up color defaults for color machines and non-color defaults for non-color machines. The defaults are added with `append', which means that if you add your own values, they'll override the defaults regardless of when you do it. SO: Please try temporarily disabling all your font-lock customizations and comment on what you think of the new defaults. -- major DUH factor. The cause of the 10%-CPU-usage-while-XEmacs-is-idle was that the "quarter-second timer" was actually set to fire 1000 times per second. I think I must have changed this at one point to debug something, and never set it back. Oops ... If you set `debug-emacs-events' to non-zero on a Linux or IRIX machine, you'll now see blank eval events going by at a reasonable rate (4 times per second) instead of spewing out like water from a firehose. -- yet more synching with FSF 19.30. -- Lots of modes have gained menus. -- recover-session (recovers all auto-saved files) should work. Not really tested. -- latest apropos.el from 19.30. Implements some of what Hyper-Apropos does. Maybe we should junk apropos.el or integrate the two. -- `display-buffer' synched with FSF 19.30. This gives you the following wondrous cruft: -- unsplittable frames -- pop-up-frames, pop-up-frame-function -- special-display-buffer-names, special-display-regexps, special-display-function -- same-window-buffer-names, same-window-regexps -- finally! C-h k followed by a toolbar button press correctly reports the binding of the toolbar button. -- fixed problems with toolbar buttons remaining activated or C-g being pressed during minibuffer prompting of (e.g.) toolbar Replace or Open -- fixed "Error setting GC pointer" problems. -- text-property problems reported by Alastair Burt fixed. -- ediff minibuffer weirdness fixed. Surrogate minibuffers are working. -- ~ has electric behavior like / in minibuffer. Both of these can be inhibited by setting `minibuffer-electric-file-name-behavior' to nil. -- minibuffer completion lists are put into a special mode. left, right move to the next/previous completion. enter selects the completion. button2 selects, as always, but will always be accurate as to the completion -- no regexp-based guesswork, as before. -- the kludgy completion-tracking behavior that looks for completions under the mouse has been disabled. If you want it back, set `minibuffer-smart-completion-tracking-behavior'. This does *not* affect the normal ability to click on a completion in the *Completions* buffer. Turning this off should also fix the obnoxious "mouse motion causes ange-ftp action" bug. -- ported latest map-ynp.el. Used by `save-some-buffers'. -- Bill Perry's database and strikethru patches. to 20.0 beta9 -- w3 2.3.26 -- crash caused by corrupting toolbar icon specs is fixed -- no one complained, so I removed `local-pre-command-hook' and `local-post-command-hook'. -- follow-mode 1.5 beta (01-08-96); this lets you turn two side-by-side windows into one twice-as-long "virtual buffer". -- more synching with FSF 19.30. -- ange-ftp should work. -- new configure option --with-term, for support for TERM (Linux serial-port multiplexer), for those who care. The support was already present in XEmacs, just no configure option. -- jpeg code now just includes "jpeglib.h" instead of "jpeg/jpeglib.h", and configure autodetects likewise. -- new variable debug-emacs-events. Set to non-zero to have all events seen by XEmacs output on stderr. (From this, I know what's going on -- it's the 1/4 second timers for when SIGIO and/or SIGCHLD are broken. It can be fixed, but not until the next beta ...) -- overriding-terminal-local-map and other oddities from FSF. -- added some of the necessary C support for lazy-lock v2. -- ange-ftp works around a Linux FTP problem where it outputs escape sequences to highlight the ftp prompt, which messes things up. -- I changed a couple ange-ftp defaults: -- ange-ftp-generate-anonymous-password is t. I see no reason why you should have to type in a password here. -- ange-ftp-default-user is "anonymous". This one is more debatable, but I think it's a lot more logical (more like ncftp, too) and follows the Principle of Least Surprise. Differing opinions (except from Kyle Jones :) are welcome. -- Info menu now properly disappears when you exit Info. -- new functions frame-leftmost-window, frame-rightmost-window. -- next-frame and previous-frame have been expanded and unkludgified to allow you more control over which frames are considered. -- Bill Perry's GIF and PNG patches are included. -- Various patches for the DEC Alpha and other beta-list patches are in place. -- function to access the raw window tree have been added: window-first-hchild, window-first-vchild, window-next-child, window-previous-child, window-parent. These let you implement frame-leftmost-window and lots of similar functions. -- XEmacs should be more robust about dying properly when crashes occur. -- you can compile with Epoch support. (Actually, you could in the previous beta, too.) The main thing this gets you is direct access to some X events and objects (e.g. properties and property-notify events). -- you can set initial-frame-alist in your .emacs, and XEmacs will notice this and change the initial frame accordingly. -- major revamping of the multi-device support: -- there is a new type of object called a "console". A console groups together devices that have the same keyboard/mouse. A "device" now corresponds to an X "Screen", while a "console" corresponds to an X "display". You don't need to explicitly create a console; it's created as necessary when you create a device. -- device-local variables have become console-local variables. -- "device types" are now "console types", although functions that speak of "device types" and "frame types" are defined as aliases. -- devices are no longer permanent objects, but remain around only so long as there are frames on the device. Consoles behave similarly. (#### not implemented yet; wait for next beta) -- Devices and consoles have a generalized concept of a "connection", which describes what they are connected to (e.g. a DISPLAY for an X console, a tty name for a TTY console). Calling `make-device' on an existing connection returns an existing device and/or console rather than creating a new one. The code is also quite smart about determining whether a connection refers to an existing device or console; e.g. if your machine name is "nene.666.com" alias "wing.vip.best.com" address 204.156.158.101, then all of the following display specs are treated as equivalent: unix:0 :0.0 localhost:0 nene:0 nene.666.com:0.0 wing.vip.best.com:0 204.156.158.101:0 -- To retrieve a device or console's connection, use `device-connection' or `console-connection'. 'device-x-display' and 'device-tty-tty' are no more. -- 'device-tty-terminal-type' renamed to `console-tty-terminal-type'. -- To search for a console or device by connection, use `find-console', `find-device', `get-console', or `get-device'. to 20.0 beta8 -- w3 2.3.25 -- url 1.0.12 -- viper 2.85 -- func-menu 2.35 -- SCO patches from Robert Lipe -- XEmacs has a man page, finally. -- lots of updates to the lispref docs. -- s/, m/, and configure files synched with FSF 19.30. -- extents-over-strings complete. Extent replicas are no more. You can get the same functionality by setting the `replicating' property on an extent. -- describe-mode puts major modes first (from Stig) -- device-local variables are here. A few variables are currently device- local; eventually the whole command builder will be this way. New function `symbol-value-in-device'. Functions `device-function-key-map' and `set-device-function-key-map' have been removed. `function-key-map' is instead a device-local variable, with a default `default-function-key-map'. -- XEmacs now preloads all code at dump time (except for some terminal- or X-server-specific files, for which it's not fatal if they can't be found). Thus, you can delete the lisp directory if you really really want to. -- `open-dribble-file' works. -- Info has a pulldown menu. -- function `extent-descendants'. -- you should be able to compile without scrollbars, menubars, and/or dialog boxes. This has been somewhat tested but may not work with all possible configurations. More testing would be appreciated. -- there are better feature-tests available: to check for the presence of menubars, scrollbars, dialogs, and/or toolbars, use `featurep' with `menubar', `scrollbar', `dialog', or `toolbar'. There are also features `lucid-menubars', `athena-scrollbars', `motif-dialogs', etc. etc. for whatever configuration you compiled in. -- SPARCworks CYA message is only displayed if (featurep 'sparcworks). -- lots of other stuff merged with FSF 19.30. Change list: -- Key changes: -- C-x ESC -> C-x ESC ESC -- ESC ESC -> ESC : -- ESC ESC ESC is "abort anything" (keyboard-escape-quit). -- indirect buffers. These are buffers that share text with another buffer but have their own major mode, extents, buffer-local variables, etc. Create with `make-indirect-buffer'. See also `buffer-base-buffer', `buffer-indirect-children'. (Not yet finished implementing.) -- new function `set-buffer-major-mode'. -- `buffer-invisibility-spec' controls whether the `invisible' property is applicable. -- `inhibit-read-only' can be a list of property values; similar to `buffer-invisibility-spec'. -- new "file format" concept. See `buffer-file-format', `format-alist', `format-decode', `format-encode', `insert-file-contents-literally', etc. -- `call-process' can have a separate stderr specified. -- Junky variables `self-insert-face' and `self-insert-face-command'. -- `write-region' can take a sixth argument LOCKNAME (a lock file). -- new function `find-alternate-file-other-window'. -- improved margin functions -- `current-left-margin', etc. -- newlines can be "hard" or "soft" -- I guess this affects filling, paragraphs, etc. See `use-hard-newlines'. -- lots and lots of filling / justification / paragraph changes. -- `shell-command' and related can take optional output buffer specification. -- `what-line' prints more information. -- new functions `file-writable-p', `file-regular-p'. -- new function `active-minibuffer-window'. -- new function `cancel-kbd-macro-events'. -- new functions `run-hook-with-args-until-success', new functions `run-hook-with-args-until-failure'. -- generalized facility for local vs. global hooks. See `make-local-hook', `add-hook'. -- signal-process can take a symbolic name for the signal. to 20.0 beta7 -- Gnus 5.0.13 -- W3 2.3.24 -- url 1.0.11 -- viper 2.84 -- ediff 2.51 -- added .f90 to auto-mode-alist -- fixed problem with echo area redisplaying during macro execution -- first version of "gnuattach", for viewing a file in the current TTY frame. Works like gnuclient. I did a "good enough" implementation because I don't understand fully how gnuserv works. Someone else might want to take a look at it. -- fixed problems with bad cc-mode indentation -- fixed ^G problems, likely fix for "XEmacs consumes too much CPU" -- undo in the minibuffer. -- problems with tight loop in sys_readdir() should be fixed. -- char-tables are now readable; Bill Perry's eval-when-compile problem should be fixed. -- the unified range table code is now defensive about getting itself misaligned, so it should work no matter what tricks realloc() plays. This should fix the assertion failure, line 621 of rangetab.c. -- next-window, previous-window, next-frame, previous-frame, other-window, get-lru-window, etc. extended to take a device argument that allows you to restrict which devices it includes (normally all devices). Some functions that incorrectly ignored frames on different devices (e.g. C-x 0) are fixed. -- start-open, end-open, start-closed, end-closed now work correctly w.r.t. text properties. (This is apparently required by GNUS 5.) -- implementation of extents over strings is close to being done. You can now go ahead and create extents over strings but they aren't yet properly copied from string to string or between strings and buffers. -- new function `extent-list'. to 20.0 beta6 -- Gnus 5.0.12 -- w3 2.3.18 -- viper 2.82 -- ediff 2.49 -- lazy-lock 1.14 -- func-menu 2.34 -- mode-motion+ 3.14 -- patch from Bill Perry fro tty_valid_color_name_p -- mode-motion patch from Michael Sperber to eliminate "evil ftp activity" -- we check for interrupted system calls in opendir(), readdir(), closedir(); this should eliminate the "interrupted-system-call" errors people have been seeing with completion. -- GIF support! Since there appears to be no standard GIF library, and since the code I found (giflib-2.2 from the Linux archives) is quite small, I just put it in the XEmacs src directory. NOTE: If you encounter problems with certain GIFs (e.g. interlaced), let me know and I'll enable some currently dormant code. NOTE: For the moment, GIF support is enabled everywhere because it requires no special libraries or machine-dependent features. You can disable it using --with-gif=no. -- JPEG support! Compile with --with-jpeg (or just let it be autodetected). You need to obtain the standard JPEG library (libjpeg) from the Independent JPEG Group. One source is ftp.uu.net:/graphics. Compiled Linux libraries (not the most recent version, but they work fine) are available at sunsite.unc.edu:/libs/graphics. You have to specify the location of the libraries and include files using --site-libraries and --site-includes. Note that the include files are presumed to be in a subdirectory "jpeg" of the --site-includes directory. -- Lstreams free their buffers when they are closed rather than when they are GC'd. This should avoid the memory bloatage noticed when you repeatedly insert a lot of files, and should render unnecessary the patch that Darrell Kindred submitted. -- patch for possibly deadly Mule problem -- XEmacs behaves reasonably in the presence of a bogus app-defaults file -- configure debugging: if you specify --extra-verbose, then any error messages from compilation and preprocessor feature tests will be output. This is especially useful if your feature tests are failing for no obvious reason. #### Suggestions for a better name than --extra-verbose are welcome. -- warning messages will get generated if there is a problem displaying an image, rather than just nothing happening at all. -- You can disable toolbar support by specifying --with-toolbars=no. This should reduce the code size a bit. -- You can disable TTY support by specifying --with-tty=no. This should reduce the code size a bit. -- The oddly named "dont-have-xmu=yes" option is now "with-xmu=no". -- loaddefs and keydefs are now compiled like other Lisp files. -- You should get more accurate errors for many types of mistakes with set-face-* functions. to 20.0 beta5 -- Gnus 5.0.7 -- w3 2.3.4 -- url 1.0.3 -- patches from John Hughes <john@atlantech.com> to make 8-bit TTY input and TTY function keys work better. You may get undefined references to _sobuf; if so, change the glump around line 1404 of sysdep.c. (for 19.14.) -- configure autodetects the sun_len member in struct sockaddr_un. (for 19.14.) -- likely fix for regex crashes on some systems. (for 19.14.) -- fixed problems with skip-syntax-forward. (for 19.14.) -- TTY color should behave better. (for 19.14.) Try this under TTY XEmacs and you'll see what I mean: (set-face-foreground 'default "magenta") (set-face-background 'default "cyan") to 20.0 beta4 -- cutting and pasting of extended text to/from other applications works properly: the text is correctly converted to/from Compound Text format. -- Short-form fonts like 6x13 should work under Mule. -- New configure option --with-mocklisp for Mocklisp support. (for 19.14.) -- TTY support should now be working properly under Mule. If you are running under kterm, you should see the Japanese characters in the tutorial properly. -- TTY colors! New functions `register-tty-color', `unregister-tty-color', `find-tty-color', and `tty-color-list' for specifying the valid TTY colors. Of course, you need a terminal that is capable of handling ANSI color sequences, e.g. Color XTerm or the Linux console. The standard ANSI colors (black, red, green, yellow, blue, cyan, magenta, and white) are registered by default so you can just go ahead and use them. (for 19.14.) -- Netscape begone! XEmacs *really* handles colors properly given a full colormap. (for 19.14) to 20.0 beta3 -- new version of f90.el; .f90 files now invoke f90-mode -- hm--html-menus 4.15 -- w3 2.3.2 -- url 1.0.1 -- Japanese input (Hiragana, Katakana, Kanji) is working under Mule. The SKK input method has been ported and should be available on the ftp site. WE NEED BETA TESTERS. WE NEED BETA TESTERS. WE NEED BETA TESTERS. WE NEED BETA TESTERS. WE NEED BETA TESTERS. WE NEED BETA TESTERS. WE NEED BETA TESTERS. WE NEED BETA TESTERS. WE NEED BETA TESTERS. Tell all your Japanese-speaking friends. Where are all the Japanese-speaking people when we need them? Actually, with a little work, someone should be able to get Quail working, which allows for input of all sorts of languages. -- new function `current-process-time' for retrieving the user, system, and real times of the currently running XEmacs process. (for 19.14 probably.) -- Here's a cool new demo that works under Mule: Load the file `mule-doc/demo'. This has "hello" written in a zillion different languages / charsets. Astute observers will notice two problems: (1) Half of the Thai characters don't show up. That's because composite characters still aren't displayed properly. (2) The Arabic and Hebrew characters go backwards from the way they should. (Guess why?) -- error-handling behavior in Mule decoding (e.g. unknown charset) should be much better. The goal here is that there should never be any information lossage when a file is read in, decoded, encoded again, and written out. If escape sequences get transformed into some other equivalent escape sequence, that is OK; but if they get eaten, that is not OK. -- translation tables are handled consistently (note, I didn't say "correctly") under Mule. Doing them correctly is very difficult so I'm punting for now. Basically, under Mule, `upcase' and `downcase' (and related) work correctly with translation tables but the string/buffer-searching routines will ignore translations that map to or from a character not in the seven-bit ASCII range -- thus `case-fold-search' will not correctly conflate a-umlaut and A-umlaut. This sucks, but it's better than the alternative (weird results and possible crashes). -- regex searches/matches should work properly with extended chars under Mule. -- fixed bad definition of xemacs-color-device in ps-print.el. (for 19.14.) -- fixed problems with command-line options -T, -wn, etc. not working. (for 19.14.) -- Options sub-menu provided under Mule for setting the current language environment. -- fixed some problems with nested GCPRO's, that could have lead to weird crashes. (for 19.14.) -- Things should *finally* work OK on the Alpha machines. (Hopefully? Please?) (for 19.14.) -- Tooltalk warning is now a real warning (class `tooltalk'), so you can suppress it. -- selections should work again. (for 19.14.) -- syntax tables work under Mule. NOTE: Syntax tables are *NOT* vectors any more but are their own abstract `char-table' type. As such, some (broken) code is going to break. (Typical error: "wrong type argument: sequencep, #<syntax-char-table ...>".) I've already had to patch cc-mode, font-lock, mail-abbrevs, and symbol-syntax, and edebug, mim-syntax, and paren still need to be changed. This is an unavoidable result of RMS non-abstracted brokenness. Yuck Yuck Yuck Yuck! -- syntax table lookup should be faster (at least under non-Mule). This could be a big win for scan-lists etc., and thus for cc-mode. -- fixed version of set-text-properties. (for 19.14.) -- fixes to display-warning-buffer to avoid problems when the warning buffer is deleted. (for 19.14.) -- If a font can't be instantiated, you should now only get one warning instead of a trillion of them. -- new Common-Lisp function `subseq', a generalization of `substring'. to 20.0 beta2 -- new functions `function-min-args' and `function-max-args' for determining the number of allowed arguments in a function (of any sort accepted by funcall). (possibly for 19.14.) -- no more crashes under Mule if it can't find an acceptable font; you just get a warning instead and a '~' character. -- new variable `disable-auto-save-when-buffer-shrinks', providing you with a way to turn off this widely-hated behavior. (for 19.14.) -- new Common Lisp function `reduce'. -- I added some defines that should eliminate zillions of "warning, incompatible pointer type" warnings for the memset(), memcpy(), memcmp() functions in SunOS 4.x. (for 19.14.) -- composite characters are partially working under Mule. They are correctly handled internally, but are not yet displayed properly: you just get the familiar '~'. -- processes should now correctly do flushing of long PTY lines, which they never did since the Lstream process rewrite sometime during the 19.12 beta cycle. -- processes should be working better under Mule (at least there will be no loss of data, which was a possibility before). More work still to come in the area of handling encoding/decoding. -- fixes to font-lock that should make it go *much* faster (esp. in lazy-lock) when moving backwards or jumping to an arbitrary point in the buffer. Files like emacsfns.h are still problematic but should be better than before. (for 19.14.) to 20.0 beta1 -- ediff 2.44 -- hyperbole 3.19.08 -- oobr 2.9.9 -- I_SETSIG failed messages under Solaris should be gone -- add-submenu bug that affected func-menu fixed -- edebug no longer chokes on condition-cases -- redisplay under Mule should be significantly faster -- redisplay problem with overlay-arrows fixed -- range tables now print readably, using the new Common-Lisp-compatible #s() syntax (this is the generalized structure syntax). It would be possible to make other unreadable Lisp objects be readable using a similar format. I am not sure which objects are good candidates, though -- suggestions? to 19.14 beta2 -- w3 2.2.17 -- mailcrypt 3.4 is now the default -- new version of icomplete.el from David Hughes -- characters are now their own separate Lisp object type; this is The Way It Should Have Always Been. This change is necessary for byte-code portability under Mule and follows the Common Lisp model of not needlessly confounding separate types, as is (unfortunately) the fashion under E-Lisp. Characters print as characters using the evil yucky GNU Emacs character syntax (e.g. ?a) rather than as integers; this is the essence of the byte-code portability. In deference to existing E-Lisp code, the following concessions are made: -- characters are represented directly; `eq' works on them. (Yuck! This may be a problem if I ever want to add additional information to characters.) -- the comparison functions (<, =, etc) and arithmetic functions (+, -, etc) accept characters and silently convert them to integers. (This is semi-hateful but necessary for compatibility.) -- functions that properly accept characters (e.g. char-to-string) also accept integers and silently convert them to characters. I have provided new character primitives `char<', `char=', etc. that are the proper way of comparing characters. -- The function `eq' has been infected with a heretofore-unknown virus known as the "char-int confoundance disease". The CDC has been warned, but in this case the cure (require that all existing .elc files in the whole world be re-byte-compiled) is a lot worse than the disease. Their recommendation is to use the new function `really-eq' if you really need to distinguish between chars and ints. Be warned, however, that this will run slower in byte-compiled code because there is no opcode for `really-eq'. -- Similar infections have happened to `equal' (with a corresponding `really-equal') and to the functions `memq', `delq', `assq', `rassq', `remassq', `remrassq' and corresponding `equal' equivalents. The functions `puthash' and `put-range-table' have not been affected, however, because I don't think there will be much of a compatibility problem here. -- BETA TESTERS LISTEN UP: The above changes have the potential of causing weird lossage in existing packages. Therefore, PLEASE PLEASE do the following for as many different packages as you can: (1) try it out to make sure there's no obviously strange behavior (a good example would be the error "wrong type argument: integerp, ?B") or not-so-obviously strange behavior, like prefix arguments not working (yes, this did happen). (2) re-byte-compile all the files in the package (3) repeat step #1. Look especially hard this time because the errors are more likely to occur this time. -- typecheck error-checking has been added for integers and for chars. You may hit some aborts. -- XEmacs/Mule now performs automatic detection, encoding, and decoding of files upon input and output. (Although the detection system definitely has room for improvement.) -- XEmacs/Mule is still untested w.r.t. subprocesses and TTY support and thus is likely to fail with both. -- XEmacs/Mule now byte-compiles files properly. (Well, it appears to ... extensive testing has not yet been done.) WARNING WARNING WARNING: (a) You cannot compile files with extended characters in them (e.g. lisp/mule/japanese-hooks.el) using a version of XEmacs not compiled with Mule. (b) If you compile such a file using XEmacs/Mule and attempt to load it into a version of XEmacs not compiled with Mule, you will get extremely random and undesirable results even if you don't get a read error. The reason for this is that a special encoding is used to allow arbitrary binary characters to co-exist with the control characters used to change the encoding state. Normal E-Lisp files compiled under XEmacs/Mule should work under a non-Mule XEmacs because the special encoding will not be used in this case. At some point I would like to remove these gotchas but this will require adding some smarts to the non-Mule XEmacs to be able to at least partially handle the special encodings used. -- Here is a cool test of XEmacs/Mule: type 'C-h T' (capital T) and you can get an Emacs tutorial in the language of your choice (currently limited to Japanese, Korean, and Thai). Astute testers will notice that the Thai one doesn't work yet; that requires support for composite characters, which doesn't currently exist. -- a change has been made to the handling of markers that should eliminate those 15-second GC pauses that some of you may have been seeing while processing the output of M-x grep, etc. to 19.14 beta1 -- w3 2.2.16 -- mailcrypt 3.4beta -- preliminary Mule support is provided. This will get better over the next month or so. All of the basics except for input method support are there, although it's still somewhat slow and some of the parts may not fit together perfectly. Here's a demonstration you can do when Mule support is enabled: -- load the file etc/mule/TUTORIAL.jp -- evaluate (decode-coding-region 1 (point-max) 'ctext) In order for this to work, you have to have the proper Japanese fonts installed (see below), or XEmacs will abort. (This will be fixed.) Soon, the decoding will happen automatically upon loading. Note also: IT MIGHT NOT CURRENTLY WORK TO BYTE-COMPILE FILES UNDER XEmacs/Mule. You may get bogus results. Therefore, for the time being do *not* do `make all-elc' using the built XEmacs/Mule. This should be fixed by beta2, along with the rest of the file- handling stuff. Note finally: You may get read errors trying to byte-compile the Mule files under the non-Mule Xemacs. I have not yet come up with a general solution to this problem. (I'm not convinced such a solution even exists; byte-compiling could cause arbitrary code to be executed, which will surely fail if the code uses Mule- specific features.) -- We now may have the world's largest collection of FTP-able international X11 fonts. Look in cs.uiuc.edu:/pub/xemacs/beta/fonts. See the README file for directions on installing the fonts. There is also the potential for generating loads and loads more of these fonts, by converting MetaFont fonts. -- It is now possible to build simultaneously in the source directories and in a separate build location, provided you have GNU make and supply the `--with-gnu-make' option to configure. -- Support for bit vectors is now provided. Bit vectors are like regular vectors except that the only allowed values for elements are 0 and 1, and they are stored internally using bit fields instead of arrays of 32-bit values, making them much less heavyweight. New primitives for working with bit vectors are `bit-vector', `make-bit-vector', `bit-vector-p', and `bvconcat' (equivalents of `vector', `make-vector', `vectorp' and `vconcat'). All other vector primitives should work fine with bit vectors. -- new specifier functions `specifier-matching-instance', `specifier-matching-instance-from-inst-list', and `valid-specifier-matchspec-p', for working with fonts in XEmacs/Mule. These same functions could be used to provide much more flexible handling of display tables and the like, and this work may get done if there is demand for it. -- The handling of PURESIZE has been fixed up. There is no longer special stuff needed in m/alpha.h. Alpha users may need to tweak with puresize.h. -- You can now build statically on Linux. Doing this will allow you to get proper backtraces. (Shared libraries are typically built -fomit-frame-pointer, which screws everything up.) -- I have removed almost all of the MAC_* stuff and replaced it with inline functions. configure attempts to detect whether your compiler supports `inline'. However, if your compiler does support it but is not GCC, you should look at how I've done things and see if it meshes with your compiler. Basically, GCC has a nice feature where you can declare a function `extern inline' and stick it in a header file. This will cause the inline declaration to be used if the function can be inlined, and an external reference to be generated otherwise. Then, you define the function just `inline' in one single file (inline.c). This is superior to the method of declaring all inline functions as `static inline', which could leave a separate copy of each function in lots of source files. However, I'm not sure if non-GCC compilers support this. Please read your compiler's documentation and fix up the definition of INLINE in config.h.in accordingly. Also, there may be functions that would really benefit from inlining, which you can sometimes specify as an option to your compiler. We will have Quantify information on this. -- XEmacs now uses the v19 regex routines instead of the v18 regex routines. Speed should not be significantly different due to the non-Posix-backtracking default. If you want the full Posix backtracking, use the functions `posix-looking-at', `posix-string-match', etc. (Be warned that this may be significantly slower.) Note also that the fishy problems may be forever banished. NOTE: The v19 regex routines do reallocs using rel-alloc if it is available; God only knows why. If you notice some weird hiccups in the regex routines, this is a likely culprit. Someone might want to try putting '#undef REL_ALLOC' at the top of regex.c or something. RMS also claims that much of the stuff that's going on here (recording backtracking points) is only necessary for full Posix backtracking, and thus we should be able to disable it in the normal (non-Posix) case. -- XEmacs now caches compiled regexps. This may speed up regex searching. -- `replace-match' now takes a fourth argument STRING that allows for replacement in a string instead of a buffer. -- new functions `upcase-initials' and `upcase-initials-region' from FSF Emacs 19.29. -- match data is automatically saved and restored while a process filter or sentinel is running. -- new type "char-table". A char table is for indexing characters and is intended to be an extension/generalization of syntax tables, display tables, case tables, category tables (a new kind of beast allowing classifications of characters into categories for regexp lookup, useful esp. for Mule), etc. You can set values for an entire charset and for individual rows of a charset. Adding and looking up values occurs in constant time. -- new type "range-table". A range table efficiently indexes ranges of integers to values. -- new modeline spec '%C'; displays a mnemonic string for the file-coding-system, under Mule. -- new function `device-on-window-system-p'; clean way of determining whether mouse, glyph, etc. support is likely to be available on this device. #### We really need individual feature-test functions. -- new dialog-box functions `get-dialog-box-response' (like the misnamed `x-popup-dialog' FSFmacs function), `message-box' (like the FSFmacs function), and `message-or-box' (like the FSFmacs function).