2 @c This is part of the GNU Emacs Lisp Reference Manual.
3 @c Copyright (C) 1999, 2002, 2003, 2004, 2005,
4 @c 2006, 2007, 2008, 2009 Free Software Foundation, Inc.
5 @c See the file elisp.texi for copying conditions.
7 @c This node must have no pointers.
9 @node Antinews, GNU Free Documentation License, System Interface, Top
10 @appendix Emacs 22 Antinews
12 For those users who live backwards in time, here is information about
13 downgrading to Emacs version 22.3. We hope you will enjoy the greater
14 simplicity that results from the absence of many Emacs @value{EMACSVER}
17 @section Old Lisp Features in Emacs 22
21 The internal character representation used by Emacs is not longer
22 based on Unicode. In this representation, called @code{emacs-mule},
23 each character belongs to one and only one script. Emacs makes no
24 attempt to distinguish between ``similar'' characters occurring in
28 The @code{^} interactive spec code, the function
29 @code{handle-shift-selection}, and the variable
30 @code{this-command-keys-shift-translated} have all been removed.
31 Shift-translated keys are no longer treated specially, making Emacs'
32 handling of keybindings much more consistent.
35 Temporarily-active regions are not created by giving the variable
36 @code{transient-mark-mode} values of the form @code{(only
37 . @var{oldvar})}. We instead use a more more complicated scheme:
38 setting @code{transient-mark-mode} to @code{only} enables Transient
39 Mark mode for the following command only, during which the value of
40 @code{transient-mark-mode} is set to @code{identity}; if it is still
41 @code{identity} at the end of the command, Transient Mark mode is
45 Many minibuffer functions, such as @code{read-file-name} and
46 @code{minibuffer-complete}, have been rewritten in C for greater
47 speed. The completion code has been considerably simplified; the
48 completion style can no longer be changed via
49 @code{completion-styles-alist}, and @code{completing-read} no longer
50 recognizes the special values @code{confirm-only} and
51 @code{confirm-after-completion} for its @var{require-match} argument.
54 Emacs no longer supports explicitly-numbered groups in regular
58 The @code{permanent-local-hook} function property has no special
62 The @code{functionp} function now returns @code{t} for special forms.
65 The @code{interactive-form} symbol property has no special meaning.
66 Once you supply a function with an interactive form, the only way to
67 change it is to redefine the function.
70 The @code{ignore-errors} macro has been moved into the @code{cl}
74 Variables can now be both buffer-local and frame-local; buffer-local
75 bindings take precedence over frame-local bindings.
78 Faces can no longer be remapped.
81 Lisp programs now specify fonts by their names, which are strings
82 following the XLFD (X logical font descriptor) format. Fonts are no
83 longer represented using a special set of ``font'' data types. The
84 various functions that act on these data types, such as @code{fontp},
85 @code{font-spec}, and @code{list-fonts}, have all been deleted.
88 Emacs does not recognize the @code{FontBackend} X resource and the
89 @code{font-backend} frame parameter. On the X Window System, fonts
90 are always drawn using the X core font driver.
93 Display terminals are no longer represented using a ``terminal'' data
94 type; this is not necessary, because we have removed the ability to
95 display on graphical and text-only terminals simultaneously. For the
96 same reason, the @code{window-system} variable is no longer
97 frame-local, and the @code{window-system} function has been removed.
100 The functions @code{list-system-processes} and
101 @code{process-attributes} have been removed. To get information about
102 system processes, call an external program, such as @command{ps}.
105 The function @code{locate-user-emacs-file} and the variable
106 @code{user-emacs-directory} have been removed. Instead, use
107 hard-coded values pointing to @file{~/.emacs.d}.
110 @code{vertical-motion} can no longer be told to move to a specific
111 column; it always puts point on the first column of a line.
114 Windows no longer have parameters.
117 The @code{display-buffer} function has been rewritten in C. Its
118 window-splitting heuristics are a little less sophisticated, and a
119 little less documented. Window-splitting is handled internally,
120 instead of using @code{split-window-preferred-function} (which has
121 been removed). Windows are never split horizontally; the variable
122 @code{split-width-threshold} has been removed.
125 The @code{mode-name} variable now accepts only string values, and
126 cannot take the form of a mode-line construct.
129 The behavior of @code{map-char-table} has changed. It calls the
130 mapping function for every single character in the table, instead of
131 using cons cells to represent contiguous character code ranges.
134 Several keymaps have been eliminated: @code{input-decode-map},
135 @code{local-function-key-map}, @code{search-map},
136 @code{multi-query-replace-map}, and
137 @code{minibuffer-local-shell-command-map}.
140 Many functions have been removed, including @code{emacs-init-time},
141 @code{emacs-uptime}, @code{buffer-swap-text}, @code{use-region-p},
142 @code{region-active-p}, @code{start-file-process},
143 @code{process-lines}, @code{image-refresh},
144 @code{match-substitute-replacement}, @code{word-search-forward-lax},
145 and @code{word-search-backward-lax}.
148 Many variables have been removed, including @code{read-circle},
149 @code{before-init-time} and @code{after-init-time},
150 @code{generate-autoload-cookie}, @code{file-local-variables-alist},
151 @code{replace-search-function} and @code{replace-re-search-function},
152 @code{inhibit-changing-match-data}, @code{wrap-prefix}, and
157 arch-tag: 1d0ef137-2bad-430e-ae8e-d820d569b5a6