Emacs 21 Antinews
*****************

For those users who live backwards in time, here is information about downgrading to Emacs version 21.4.  We hope you will enjoy the greater simplicity that results from the absence of many Emacs EMACSVER features.

  * The buffer position and line number are now displayed at the end of the mode line, where they can be more easily seen.

  * The mode line of the selected window is no longer displayed with a special face.  All mode lines are created equal.  Meanwhile, you can use the variable mode-line-inverse-video to control whether mode lines are highlighted at all---nil means don't highlight them.

  * Clicking on a link with the left mouse button (mouse-1) will always set point at the position clicked, instead of following the link.  If you want to follow the link, use the middle mouse button (mouse-2).

  * Emacs is tired of X droppings.  If you drop a file or a piece of text onto an Emacs window, nothing will happen.

  * On an xterm, even if you enable Xterm Mouse mode, Emacs provides a more convincing simulation of a text terminal by not responding to mouse clicks on the mode line, header line, or display margin.

  * For simplicity, windows always have fringes.  We wouldn't want to in-fringe anyone's windows.  Likewise, horizontal scrolling always works in the same automatic way.

  * The horizontal-bar cursor shape has been removed.

  * If command line arguments are given, Emacs will not display a splash screen, so that you can immediately get on with your editing.  The command-line option --no-splash is therefore obsolete, and has been removed.

  * The command line options --color, --fullwidth, --fullheight, --fullscreen, --no-blinking-cursor, --no-desktop, and -Q have also been removed.

  * The --geometry option applies only to the initial frame, and the -f option will not read arguments for interactive functions.

  * We have standardized on one location for the user init file: the file named .emacs in your home directory.  Emacs will not look for the init file in ~/.emacs.d/init.el.  Similarly, don't try putting .emacs_SHELL in ~/.emacs.d; Emacs won't find it.

  * Emacs will not read ~/.abbrev_defs automatically.  If you want to load abbrev definitions from a file, you must always do so explicitly.

  * When you are logged in as root, all files now give you writable buffers, reflecting the fact that you can write any files.

  * The maximum size of buffers and integer variables has been halved.  On 32-bit machines, the maximum buffer size is now 128 megabytes.

  * An unquoted $ in a file name is now an error, if the following name is not recognized as an environment variable.  Thus, the file name foo$bar would probably be an error.  Meanwhile, the setenv command does not expand $ at all.

  * If a single command accumulates too much undo information, Emacs never discards it.  If Emacs runs out of memory as a result, it will handle this by crashing.

  * Many commands have been removed from the menus or rearranged.

  * The C-h (help) subcommands have been rearranged---especially those that display specific files.  Type C-h C-h to see a list of these commands; that will show you what is different.

  * The C-h v and C-h f commands no longer show a hyperlink to the C source code, even if it is available.  If you want to find the source code, grep for it.

  * The apropos commands will not accept a list of words to match, in order to encourage you to be more specific.  Also, the user option apropos-sort-by-scores has been removed.

  * The minibuffer prompt is now displayed using the default face. The colon is enough to show you what part is the prompt.

  * Minibuffer completion commands always complete the entire minibuffer contents, just as if you had typed them at the end of the minibuffer, no matter where point is actually located.

  * The command backward-kill-sexp is now bound to C-M-delete and C-M-backspace.  Be careful when using these key sequences! It may shut down your X server, or reboot your operating system.

  * Commands to set the mark at a place away from point, including M-@, M-h, etc., don't do anything special when you repeat them.  In most cases, typing these commands multiple times is equivalent to typing them once.  M-h ignores numeric arguments.

  * The user option set-mark-command-repeat-pop has been removed.

  * C-SPC C-SPC has no special meaning--it just sets the mark twice.  Neither does C-u C-x C-x, which simply exchanges point and mark like C-x C-x.

  * The function sentence-end has been eliminated in favor of a more straightforward approach: directly setting the variable sentence-end.  For example, to end each sentence with a single space, use

          (setq sentence-end "[.?!][]\"')}]*\\($\\|[ \t]\\)[ \t\n]*")

  * The variable fill-nobreak-predicate is no longer customizable, and it can only hold a single function.

  * Nobreak spaces and hyphens are displayed just like normal characters, and the user option nobreak-char-display has been removed.

  * C-w in an incremental search always grabs an entire word into the search string.  More precisely, it grabs text through the next end of a word.

  * Yanking now preserves all text properties that were in the killed text.  The variable yank-excluded-properties has been removed.

  * Occur mode, Info mode, and Comint-derived modes now control fontification in their own way, and M-x font-lock-mode has nothing to do with it.  To control fontification in Info mode, use the variable Info-fontify.

  * The Grep package has been merged with Compilation mode.  Many grep-specific commands and user options have thus been eliminated. Also, M-x grep never tries the GNU grep -H option, and instead silently appends /dev/null to the command line.

  * In Dired's ! command, * and ? now cause substitution of the file names wherever they appear---not only when they are surrounded by whitespace.

  * When a file is managed with version control, the command C-x C-q (whose general meaning is to make a buffer read-only or writable) now does so by checking the file in or out.  Checking the file out makes the buffer writable; checking it in makes the buffer read-only.

     You can still use C-x v v to do these operations if you wish; its meaning is unchanged.  If you want to control the buffer's read-only flag without performing any version control operation, use M-x toggle-read-only.

  * SGML mode does not handle XML syntax, and does not have indentation support.

  * Many Info mode commands have been removed.  Incremental search in Info searches only the current node.

  * Many etags features for customizing parsing using regexps have been removed.

  * The Emacs server now runs a small C program called emacsserver, rather than trying to handle everything in Emacs Lisp.  Now there can only be one Emacs server running at a time.  The server-mode command and server-name user option have been eliminated.

  * The emacsclient program no longer accepts the --eval and --display command line options.

  * The command quail-show-key, for showing how to input a character, has been removed.

  * The default value of keyboard-coding-system is always nil, regardless of your locale settings.  If you want some other value, set it yourself.

  * Unicode support and unification between Latin-N character sets have been removed.  Cutting and pasting X selections does not support ``extended segments'', so there are certain coding systems it cannot handle.

  * The input methods for Emacs are included in a separate distribution called ``Leim.''  To use this, you must extract the Leim tar file on top of the Emacs distribution, into the same directory, before you build Emacs.

  * The following input methods have been eliminated: belarusian, bulgarian-bds, bulgarian-phonetic, chinese-sisheng, croatian, dutch, georgian, latin-alt-postfix, latin-postfix, latin-prefix, latvian-keyboard, lithuanian-numeric, lithuanian-keyboard, malayalam-inscript, rfc1345, russian-computer, sgml, slovenian, tamil-inscript ucs, ukrainian-computer, vietnamese-telex, and welsh.

  * The following language environments have been eliminated: Belarusian, Bulgarian, Chinese-EUC-TW, Croatian, French, Georgian, Italian, Latin-6, Latin-7, Latvian, Lithuanian, Malayalam, Russian, Russian, Slovenian, Swedish, Tajik, Tamil, UTF-8, Ukrainian, Ukrainian, Welsh, and Windows-1255.

  * The code-pages library, which contained various 8-bit coding systems, has been removed.

  * The Kmacro package has been replaced with a simple and elegant keyboard macro system.  Use C-x ( to start a new keyboard macro, C-x ) to end the macro, and C-x e to execute the last macro.  Use M-x name-last-kbd-macro to name the most recently defined macro.

  * Emacs no longer displays your breakpoints in the source buffer, so you have to remember where you left them.  It can be difficult to inspect the state of your debugged program from the command line, so Emacs tries to demonstrate this in the GUD buffer.

  * The Calc, CUA, Ibuffer, Ido, Password, Printing, Reveal, Ruler-mode, SES, Table, Tramp, and URL packages have been removed. The Benchmark, Cfengine, Conf, Dns, Flymake, Python, Thumbs, and Wdired modes have also been removed.

  * The Emacs Lisp Reference Manual and the Introduction to Programming in Emacs Lisp are now distributed separately, not in the Emacs distribution.

  * On MS Windows, there is no longer any support for tooltips, images, sound, different mouse pointer shapes, or pointing devices with more than 3 buttons.  If you want these features, consider switching to another operating system.  But even if you don't want these features, you should still switch---for freedom's sake.

  * Emacs will not use Unicode for clipboard operations on MS Windows.

  * To keep up with decreasing computer memory capacity and disk space, many other functions and files have been eliminated in Emacs 21.4.