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