@c This is part of the Emacs manual.
@c Copyright (C) 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
@c See file emacs.texi for copying conditions.

@node Antinews, Mac OS, X Resources, Top
@appendix 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 @value{EMACSVER}
features.

@itemize @bullet

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

@item
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 @code{mode-line-inverse-video} to control whether
mode lines are highlighted at all---@code{nil} means don't highlight
them.

@item
Clicking on a link with the left mouse button (@kbd{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
(@kbd{mouse-2}).

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

@item
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.

@item
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.

@item
The horizontal-bar cursor shape has been removed.

@item
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 @samp{--no-splash} is therefore obsolete, and has
been removed.

@item
These command line options have also been removed: @samp{--color},
@samp{--fullwidth}, @samp{--fullheight}, @samp{--fullscreen},
@samp{--no-blinking-cursor}, @samp{--no-desktop}, and @samp{-Q}.

@item
The @samp{--geometry} option applies only to the initial frame, and
the @samp{-f} option will not read arguments for interactive
functions.

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

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

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

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

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

@item
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.

@item
Many commands have been removed from the menus or rearranged.

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

@item
The @kbd{C-h v} and @kbd{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.

@item
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
@code{apropos-sort-by-scores} has been removed.

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

@item
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.

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

@item
Commands to set the mark at a place away from point, including
@kbd{M-@@}, @kbd{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.  @kbd{M-h} ignores numeric arguments.

@item
The user option @code{set-mark-command-repeat-pop} has been removed.

@item
@kbd{C-@key{SPC} C-@key{SPC}} has no special meaning--it just sets the
mark twice.  Neither does @kbd{C-u C-x C-x}, which simply exchanges
point and mark like @kbd{C-x C-x}.

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

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

@item
The variable @code{fill-nobreak-predicate} is no longer customizable,
and it can only hold a single function.

@item
Nobreak spaces and hyphens are displayed just like normal characters,
and the user option @code{nobreak-char-display} has been removed.

@item
@kbd{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.

@item
Yanking now preserves all text properties that were in the killed
text.  The variable @code{yank-excluded-properties} has been removed.

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

@item
@samp{M-x shell} is now completely standard in regard to scrolling
behavior.  It no longer has the option of scrolling the input line to
the bottom of the window the way a text terminal running a shell does.

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

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

@item
When a file is managed with version control, the command @kbd{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 @kbd{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 @kbd{M-x toggle-read-only}.

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

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

@item
Many @code{etags} features for customizing parsing using regexps
have been removed.

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

@item
The @file{emacsclient} program no longer accepts the @samp{--eval},
@samp{--display} and @samp{--server-file} command line options, and
can only establish local connections using Unix domain sockets.

@item
The command @code{quail-show-key}, for showing how to input a
character, has been removed.

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

@item
Unicode support and unification between Latin-@var{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.

@item
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.

@item
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.

@item
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.

@item
The @code{code-pages} library, which contained various 8-bit coding
systems, has been removed.

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

@item
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.

@item
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.

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

@item
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.

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

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

@ignore
   arch-tag: 32932bd9-46f5-41b2-8a0e-fb0cc4caeb29
@end ignore
