@c This is part of the Emacs manual.@c Copyright (C) 1997, 1999, 2000 Free Software Foundation, Inc.@c See file emacs.texi for copying conditions.@node Antinews, Mac OS, Command Arguments, Top@appendix Emacs 20 Antinews For those users who live backwards in time, here is information aboutdowngrading to Emacs version 20. We hope you will enjoy the greatersimplicity that results from the absence of many Emacs 21 features.@itemize @bullet@itemThe display engine has been greatly simplified by eliminating supportfor variable-size characters and other non-text display features. Thisavoids the complexity of display layout in Emacs 21. To wit:@itemize @minus@itemVariable-size characters are not supported in Emacs 20. You cannot usefonts which contain oversized characters, and using italics fonts canresults in illegible display. However, text which uses variable-sizefonts is unreadable anyway. With all characters in a frame layed out ona regular grid, each character having the same height and width, text ismuch easier to read.@itemEmacs does not display images, or play sounds. It just displays text,as you would expect from a @strong{text} editor.@itemSpecification of the font for a face now uses an XLFD font name, forcompatibility with other X applications. This means that fontattributes cannot be merged when combining faces; however, experienceshows that mergers are bad economics. Face inheritance has also beenremoved, so no one can accumulate ``too much face''.@itemSeveral face appearance attributes such as 3D appearence,strike-through, and overline, have been eliminated.@itemEmacs now provides its own ``lean and mean'' scroll bars instead usingthose from the X toolkit. Toggle buttons and radio buttons in menus nowlook just like any other menu item, which simplifies them, and preventsthem from standing out and distracting your attention from the othermenu items.@itemThere are no toolbars and no tooltips; in particular, @acronym{GUD}mode cannot display variable values in a tooltip when you click onthat variable's name. Instead, Emacs 20 provides a direct interface tothe debugger, so that you can type appropriate debugger commands, suchas @kbd{display foo} and @kbd{print bar}. As these commands useexplicit words, their meaning is more self-evident.@itemColors are not available on character terminals. If you @emph{must}have colors, but cannot afford running X, you can now use the MS-DOGversion of Emacs inside a DOS emulator.@itemThe mode line is not mouse-sensitive, since it is meant only todisplay information. Use keyboard commands to switch between buffers,toggle read-only and modified status, switch minor modes on and off,etc.@itemThe support for ``wheeled'' mice under X has been removed, becauseof their slow scroll rate, and because you will find less and less ofthese mice as you go back in time. Instead Emacs 20 provides the@kbd{C-v} and @kbd{M-v} keys for scrolling. (You can also use thescroll bar, but be advised that it, too, may be absent in yet earlierEmacs versions.)@itemBusy-cursor display is gone, as it was found to be too hard to draw ondisplays whose resolution is getting lower and lower. This means thatyou get the standard kind of cursor blinking that your terminalprovides.@itemSome aspects of Emacs appearance, such as the colors of the scroll barand the menus, can only be controlled via X resources. Since colorsaren't supported except on X, it doesn't make any sense doing this inany way but the X way. For those users who aren't privy to X arcana,we've provided good default colors that should make everybody happy.@itemThe variable @code{show-trailing-whitespace} has no special meaning, sotrailing whitespace on a line is now always displayed correctly: asempty space. To see if a line ends with spaces or TABs, type @kbd{C-e}on that line. Likewise, empty lines at the end of the buffer are notmarked in any way; use @kbd{M->} to see where the end of the buffer is.@itemThe spacing between text lines on the display now always follows thefont design and the rules of your window manager. This provides forpredictable appearance of the displayed text.@end itemize@itemEmacs 20 has simpler support for multi-lingual editing. While not asradical a simplification as Emacs 19 was, it goes a long way towardeliminating some of the annoying features:@itemize @minus@itemTranslations of the Emacs reference cards to other languages are nolonger part of the distribution, because in the past we expectcomputer users to speak English.@itemTo avoid extra confusion, many language environments have beeneliminated. For example, @samp{Polish} and @samp{Celtic} (Latin-8)environments are not supported. The Latin-9 environment is gone,too, because you won't need the Euro sign in the past.@itemEmacs 20 always asks you which coding system to use when saving a buffer, unless it can use the same one that it used to read the buffer.It does not try to see if the preferred coding system is suitable.@itemCommands which provide detailed information about character sets andcoding systems, such as @code{list-charset-chars},@code{describe-character-set}, and the @kbd{C-u C-x =} key-sequence,no longer exist. The less said about non-@sc{ascii} characters, thebetter.@itemThe terminal coding system cannot be set to something CCL-based, sokeyboards which produce @code{KOI8} and DOS/Windows codepage codescannot be supported directly. Instead, you should use one of the inputmethods provided in the Leim package.@end itemize@itemAs you move back through time, some systems will become unimportant orenter the vaporware phase, so Emacs 20 does not support them:@itemize @minus@itemEmacs 20 cannot be built on GNU/Linux systems running on IA64 machines,and you cannot build a 64-bit Emacs on Solaris or Irix even though thereare still 64-bit versions of those OSes.@itemLynxOS is also not supported, and neither is the Macintosh, though theystill exist.@end itemize@itemThe arrangement of menu bar items differs from most other @acronym{GUI}programs. We think that uniformity of look-and-feel is boring, and thatEmacs' unique features require its unique menu-bar configuration.@itemYou cannot save the options that you set from the @samp{Options}menu-bar menu; instead, you need to set all the options again each timeyou start a new session. However, if you follow the recommendedpractice and keep a single Emacs session running until you log out,you won't have to set the options very often.@itemEmacs 20 does not pop up a buffer with error messages when an error issignaled during loading of the user's init file. Instead, it simplyannounces the fact that an error happened. To know where in the initfile was that, insert @code{(message "foo")} lines judiciously into thefile and look for those messages in the @samp{*Messages*} buffer.@itemSome commands no longer treat Transient Mark mode specially. Forexample, @code{ispell} doesn't spell-check the region when TransientMark mode is in effect and the mark is active; instead, it checks thecurrent buffer. (Transient Mark mode is alien to the spirit of Emacs,so we are planning to remove it altogether in an earlier version.)@item@kbd{C-down-mouse-3} does not show what would be in the menu barwhen the menu bar is not displayed.@itemFor uniformity, @key{delete} function key in Emacs 20 works exactly likethe @key{DEL} key, on both text-only terminals and window systems---italways deletes backward. This eliminates the inconsistency of Emacs 21,where the key labeled @key{delete} deletes forward when you are using awindow system, and backward on a text-only terminals.@itemThe ability to place backup files in special subdirectories (controlledby @code{backup-directory-alist}) has been eliminated. This makesfinding your backup files much easier: they are always in the samedirectory as the original files.@itemEmacs no longer refuses to load Lisp files compiled by incompatibleversions of Emacs, which may contain invalid byte-code. Instead,Emacs now dumps core when it encounters such byte-code. However, thisis a rare occurrence, and it won't happen at all when all Emacsversions merge together, in the distant past.@itemThe @kbd{C-x 5 1} command has been eliminated. If you want to deleteall the frames but the current one, delete them one by one instead.@itemCC Mode now enforces identical values for some customizable options,such as indentation style, for better consistency. In particular, ifyou select an indentation style for Java, the same style is usedfor C and C@t{++} buffer as well.@itemIsearch does not highlight other possible matches; it shows only thecurrent match, to avoid distracting your attention. @kbd{mouse-2} inthe echo area during incremental search now signals an error, instead ofinserting the current selection into the search string. But you canaccomplish more or less the same job by typing @kbd{M-y}.@itemThe ability to specify a port number when editing remote files with@code{ange-ftp} was removed. Instead, Emacs 20 provides undocumentedfeatures in the function @code{ange-ftp-normal-login} (@cite{Use thesource, Luke!}) to specify the port.@itemEmacs 20 does not check for changing time stamps of remote files, sincethe old FTP programs you will encounter in the past could not providethe time stamp anyway. Windows-style FTP clients which output the@samp{^M} character at the end of each line get special handling from@code{ange-ftp} in Emacs 20, with unexpected results that should makeyour life more interesting.@itemMany complicated display features, including highlighting ofmouse-sensitive text regions and popping up help strings for menu items,don't work in the MS-DOS version. Spelling doesn't work on MS-DOS,and Eshell doesn't exist, so there's no workable shell-mode, either.This fits the spirit of MS-DOS, which resembles a dumb characterterminal.@itemThe @code{woman} package has been removed, so Emacs users on non-Posixsystems will need @emph{a real man} to read manual pages. (Users whoare not macho can read the Info documentation instead.)@item@code{recentf} has been removed, because we figure that you can rememberthe names of the files you edit frequently. With decreasing disk size,you should have fewer files anyway, so you won't notice the absence ofthis feature.@itemThe @code{field} property does not exist in Emasc 20, so variouspackages that run subsidiary programs in Emacs buffers cannot in generaldistinguish which text was user input and which was output from thesubprocess. If you need to try to do this nonetheless, Emacs 20provides a variable @code{comint-prompt-regexp}, which lets you try todistinguish input by recognizing prompt strings.@itemWe have eliminated the special major modes for Delphi sources,PostScript files, context diffs, and @file{TODO} files. Use FundamentalMode instead.@itemMany additional packages that unnecessarily complicate your life inEmacs 21 are absent in Emacs 20. You cannot browse C@t{++} classes withEbrowse, access @acronym{SQL} data bases, access @acronym{LDAP} andother directory servers, or mix shell commands and Lisp functions usingEshell.@itemTo keep up with decreasing computer memory capacity and disk space, manyother functions and files have been eliminated in Emacs 20.@end itemize