X-Git-Url: http://git.hcoop.net/bpt/emacs.git/blobdiff_plain/02cbe062bee38a6705bafb1699d77e3c44cfafcf..d1d6801eb4badab97416d0b6294e1920d0f90c3e:/doc/lispref/anti.texi diff --git a/doc/lispref/anti.texi b/doc/lispref/anti.texi dissimilarity index 96% index e8ae077e23..92e0432b84 100644 --- a/doc/lispref/anti.texi +++ b/doc/lispref/anti.texi @@ -1,453 +1,160 @@ -@c -*-texinfo-*- -@c This is part of the GNU Emacs Lisp Reference Manual. -@c Copyright (C) 1999, 2002, 2003, 2004, 2005, -@c 2006, 2007, 2008 Free Software Foundation, Inc. -@c See the file elisp.texi for copying conditions. - -@c This node must have no pointers. - -@node Antinews, GNU Free Documentation License, System Interface, 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. - -@section Old Lisp Features in Emacs 21 - -@itemize @bullet -@item -Many unnecessary features of redisplay have been eliminated. (The -earlier major release, Emacs 20, will have a completely rewritten -redisplay engine, which will be even simpler.) - -@itemize @minus -@item -The function @code{redisplay} has been removed. To update the display -without delay, call @code{(sit-for 0)}. Since it is generally -considered wasteful to update the display if there are any pending -input events, no replacement for @code{(redisplay t)} is provided. - -@item -The function @code{force-window-update} has been removed. It -shouldn't be needed, since changes in window contents are detected -automatically. In case they aren't, call @code{redraw-display} to -redraw everything. - -@item -Point no longer moves out from underneath invisible text at the end of -each command. This allows the user to detect invisible text by moving -the cursor around---if the cursor gets stuck, there is something -invisible in the way. If you really want cursor motion to ignore the -text, try marking it as intangible. - -@item -Support for image maps and image slices has been removed. Emacs was -always meant for editing text, anyway. - -@item -The mode line now accepts all text properties, as well as -@code{:propertize} and @code{:eval} forms, regardless of the -@code{risky-local-variable} property. - -@item -The @code{line-height} and @code{line-spacing} properties no longer -have any meaning for newline characters. Such properties wouldn't -make sense, since newlines are not really characters; they just tell -you where to break a line. - -@item -Considerable simplifications have been made to the display -specification @code{(space . @var{props})}, which is used for -displaying a space of specified width and height. Pixel-based -specifications and Lisp expressions are no longer accepted. - -@item -Many features associated with the fringe areas have been removed, to -encourage people to concentrate on the main editing area (the fringe -will be completely removed in Emacs 20.) Arbitrary bitmaps can no -longer be displayed in the fringe; an overlay arrow can still be -displayed, but there can only be one overlay arrow at a time (any more -would be confusing.) The fringe widths cannot be adjusted, and -individual windows cannot have their own fringe settings. A mouse -click on the fringe no longer generates a special event. - -@item -Individual windows cannot have their own scroll-bar settings. - -@item -You can no longer use @samp{default} in a @code{defface} to specify -defaults for subsequent faces. - -@item -The function @code{display-supports-face-attributes-p} has been -removed. In @code{defface} specifications, the @code{supports} -predicate is no longer supported. - -@item -The functions @code{merge-face-attribute} and -@code{face-attribute-relative-p} have been removed. - -@item -The priority of faces in a list supplied by the @code{:inherit} face -attribute has been reversed. We like to make changes like this once -in a while, to keep Emacs Lisp programmers on their toes. - -@item -The @code{min-colors} face attribute, used for tailoring faces to -limited-color displays, does not exist. If in doubt, use colors like -``white'' and ``black,'' which ought to be defined everywhere. - -@item -The @code{tty-color-mode} frame parameter does not exist. You should -just trust the terminal capabilities database. -@end itemize - -@item -Several simplifications have been made to mouse support: - -@itemize @minus -@item -Clicking @kbd{mouse-1} won't follow links, as that is alien to the -spirit of Emacs. Therefore, the @code{follow-link} property doesn't -have any special meaning, and the function @code{mouse-on-link-p} has -been removed. - -@item -The variable @code{void-text-area-pointer} has been removed, so the -mouse pointer shape remains unchanged when moving between valid text -areas and void text areas. The @code{pointer} image and text -properties are no longer supported. - -@item -Mouse events will no longer specify the timestamp, the object clicked, -equivalent buffer positions (for marginal or fringe areas), glyph -coordinates, or relative pixel coordinates. -@end itemize - -@item -Simplifications have also been made to the way Emacs handles keymaps -and key sequences: - -@itemize @minus -@item -The @code{kbd} macro is now obsolete and is no longer documented. -It isn't that difficult to write key sequences using the string and -vector representations, and we want to encourage users to learn. - -@item -Emacs no longer supports key remapping. You can do pretty much the -same thing with @code{substitute-key-definition}, or by advising the -relevant command. - -@item -The @code{keymap} text and overlay property is now overridden by minor -mode keymaps, and will not work at the ends of text properties and -overlays. - -@item -The functions @code{map-keymap}, @code{keymap-prompt}, and -@code{current-active-maps} have been removed. -@end itemize - -@item -Process support has been pared down to a functional minimum. The -functions @code{call-process-shell-command} and @code{process-file} -have been deleted. Processes no longer maintain property lists, and -they won't ask any questions when the user tries to exit Emacs (which -would simply be rude.) The function @code{signal-process} won't -accept a process object, only the process id; determining the process -id from a process object is left as an exercise to the programmer. - -@item -Networking has also been simplified: @code{make-network-process} and -its various associated function have all been replaced with a single -easy-to-use function, @code{open-network-stream}, which can't use UDP, -can't act as a server, and can't set up non-blocking connections. -Also, deleting a network process with @code{delete-process} won't call -the sentinel. - -@item -Many programming shortcuts have been deleted, to provide you with the -enjoyment of ``rolling your own.'' The macros @code{while-no-input}, -@code{with-local-quit}, and @code{with-selected-window}, along with -@code{dynamic-completion-table} and @code{lazy-completion-table} no -longer exist. Also, there are no built-in progress reporters; -with Emacs, you can take progress for granted. - -@item -Variable aliases are no longer supported. Aliases are for functions, -not for variables. - -@item -The variables @code{most-positive-fixnum} and -@code{most-negative-fixnum} do not exist. On 32 bit machines, the -most positive integer is probably 134217727, and the most negative -integer is probably -134217728. - -@item -The functions @code{eql} and @code{macroexpand-all} are no longer -available. However, you can find similar functions in the @code{cl} -package. - -@item -The list returned by @code{split-string} won't include null substrings -for separators at the beginning or end of a string. If you want to -check for such separators, do it separately. - -@item -The function @code{assoc-string} has been removed. Use -@code{assoc-ignore-case} or @code{assoc-ignore-representation} (which -are no longer obsolete.) - -@item -The escape sequence @samp{\s} is always interpreted as a super -modifier, never a space. - -@item -The variable @code{buffer-save-without-query} has been removed, to -prevent Emacs from sneakily saving buffers. Also, the hook -@code{before-save-hook} has been removed, so if you want something to -be done before saving, advise or redefine @code{basic-save-buffer}. - -@item -The variable @code{buffer-auto-save-file-format} has been renamed to -@code{auto-save-file-format}, and is no longer a permanent local. - -@item -The function @code{visited-file-modtime} now returns a cons, instead -of a list of two integers. The primitive @code{set-file-times} has -been eliminated. - -@item -The function @code{file-remote-p} is no longer available. - -@item -When determining the filename extension, a leading dot in a filename -is no longer ignored. Thus, @file{.emacs} is considered to have -extension @file{emacs}, rather than being extensionless. - -@item -Emacs looks for special file handlers in a more efficient manner: it -will choose the first matching handler in -@code{file-name-handler-alist}, rather than trying to figure out which -provides the closest match. - -@item -The @code{predicate} argument for @code{read-file-name} has been -removed, and so have the variables @code{read-file-name-function} and -@code{read-file-name-completion-ignore-case}. The function -@code{read-directory-name} has also been removed. - -@item -The functions @code{all-completions} and @code{try-completion} will no -longer accept lists of strings or hash tables (it will still accept -alists, obarrays, and functions.) In addition, the function -@code{test-completion} is no longer available. - -@item -The @samp{G} interactive code character is no longer supported. -Use @samp{F} instead. - -@item -Arbitrary Lisp functions can no longer be recorded into -@code{buffer-undo-list}. As a consequence, @code{yank-undo-function} -is obsolete, and has been removed. - -@item -Emacs will never complain about commands that accumulate too much undo -information, so you no longer have to worry about binding -@code{buffer-undo-list} to @code{t} for such commands (though you may -want to do that anyway, to avoid taking up unnecessary memory space.) - -@item -Atomic change groups are no longer supported. - -@item -The list returned by @code{(match-data t)} no longer records the -buffer as a final element. - -@item -The function @code{looking-back} has been removed, so we no longer -have the benefit of hindsight. - -@item -The variable @code{search-spaces-regexp} does not exist. Spaces -always stand for themselves in regular expression searches. - -@item -The functions @code{skip-chars-forward} and @code{skip-chars-backward} -no longer accepts character classes such as @samp{[:alpha:]}. All -characters are created equal. - -@item -The @code{yank-handler} text property no longer has any meaning. -Also, @code{yank-excluded-properties}, @code{insert-for-yank}, and -@code{insert-buffer-substring-as-yank} have all been removed. - -@item -The variable @code{char-property-alias-alist} has been deleted. -Aliases are for functions, not for properties. - -@item -The function @code{get-char-property-and-overlay} has been deleted. -If you want the properties at a point, find the text properties at the -point; then, find the overlays at the point, and find the properties -on those overlays. - -@item -Font Lock mode only manages @code{face} properties; you can't use -font-lock keywords to specify arbitrary text properties for it to -manage. After all, it is called Font Lock mode, not Arbitrary -Properties Lock mode. - -@item -The arguments to @code{remove-overlays} are no longer optional. - -@item -In @code{replace-match}, the replacement text now inherits properties -from the surrounding text. - -@item -The variable @code{mode-line-format} no longer supports the @code{:propertize}, -@code{%i}, and @code{%I} constructs. The function -@code{format-mode-line} has been removed. - -@item -The functions @code{window-inside-edges} and @code{window-body-height} -have been removed. You should do the relevant calculations yourself, -starting with @code{window-width} and @code{window-height}. - -@item -The functions @code{window-pixel-edges} and -@code{window-inside-pixel-edges} have been removed. We prefer to -think in terms of lines and columns, not pixel coordinates. (Sometime -in the distant past, we will do away with graphical terminals -entirely, in favor of text terminals.) For similar reasons, the -functions @code{posn-at-point}, @code{posn-at-x-y}, and -@code{window-line-height} have been removed, and -@code{pos-visible-in-window-p} no longer worries about partially -visible rows. - -@item -The macro @code{save-selected-window} only saves the selected window -of the selected frame, so don't try selecting windows in other frames. - -@item -The function @code{minibufferp} is no longer available. - -@item -The function @code{modify-all-frames-parameters} has been removed (we -always suspected the name was ungrammatical, anyway.) - -@item -The @code{line-spacing} variable no longer accepts float values. - -@item -The function @code{tool-bar-local-item-from-menu} has been deleted. -If you need to make an entry in the tool bar, you can still use -@code{tool-bar-add-item-from-menu}, but that modifies the binding in -the source keymap instead of copying it into the local keymap. - -@item -When determining the major mode, the file name takes precedence over -the interpreter magic line. The variable @code{magic-mode-alist}, -which associates certain buffer beginnings with major modes, has been -eliminated. - -@item -The hook @code{after-change-major-mode-hook} is not defined, and -neither are @code{run-mode-hooks} and @code{delay-mode-hooks}. - -@item -The variable @code{minor-mode-list} has been removed. - -@item -@code{define-derived-mode} will copy abbrevs from the parent mode's -abbrev table, instead of creating a new, empty abbrev table. - -@item -There are no ``system'' abbrevs. When the user saves into the abbrevs -file, all abbrevs are saved. - -@item -The Warnings facility has been removed. Just use @code{error}. - -@item -Several hook variables have been renamed to flout the Emacs naming -conventions. We feel that consistency is boring, and having -non-standard hook names encourages users to check the documentation -before using a hook. For instance, the normal hook -@code{find-file-hook} has been renamed to @code{find-file-hooks}, and -the abnormal hook @code{delete-frame-functions} has been renamed to -@code{delete-frame-hook}. - -@item -The function @code{symbol-file} does not exist. If you want to know -which file defined a function or variable, try grepping for it. - -@item -The variable @code{load-history} records function definitions just -like variable definitions, instead of indicating which functions were -previously autoloaded. - -@item -There is a new variable, @code{recursive-load-depth-limit}, which -specifies how many times files can recursively load themselves; it is -50 by default, and @code{nil} means infinity. Previously, Emacs signaled an -error after just 3 recursive loads, which was boring. - -@item -Byte-compiler warnings and error messages will leave out the line and -character positions, in order to exercise your debugging skills. -Also, there is no @code{with-no-warnings} macro---instead of -suppressing compiler warnings, fix your code to avoid them! - -@item -The function @code{unsafep} has been removed. - -@item -File local variables can now specify a string with text properties. -Since arbitrary Lisp expressions can be embedded in text properties, -this can provide you with a great deal of flexibility and power. On -the other hand, @code{safe-local-eval-forms} and the -@code{safe-local-eval-function} function property have no special -meaning. - -@item -You can no longer use @code{char-displayable-p} to test if Emacs can -display a certain character. - -@item -The function @code{string-to-multibyte} is no longer available. - -@item -The @code{translation-table-for-input} translation table has been -removed. Also, translation hash tables are no longer available, so we -don't need the functions @code{lookup-character} and -@code{lookup-integer}. - -@item -The @code{table} argument to @code{translate-region} can no longer be -a char-table; it has to be a string. - -@item -The variable @code{auto-coding-functions} and the two functions -@code{merge-coding-systems} and @code{decode-coding-inserted-region} -have been deleted. The coding system property -@code{mime-text-unsuitable} no longer has any special meaning. - -@item -If pure storage overflows while dumping, Emacs won't tell you how much -additional pure storage it needs. Try adding in increments of 20000, -until you have enough. - -@item -The variables @code{gc-elapsed}, @code{gcs-done}, and -@code{post-gc-hook} have been garbage-collected. -@end itemize - -@ignore - arch-tag: 1d0ef137-2bad-430e-ae8e-d820d569b5a6 -@end ignore +@c -*-texinfo-*- +@c This is part of the GNU Emacs Lisp Reference Manual. +@c Copyright (C) 1999, 2002, 2003, 2004, 2005, 2006, 2007, 2008, +@c 2009, 2010 Free Software Foundation, Inc. +@c See the file elisp.texi for copying conditions. + +@c This node must have no pointers. + +@node Antinews, GNU Free Documentation License, Packaging, Top +@appendix Emacs 22 Antinews +@c Update the elisp.texi, vol1.texi, vol2.texi Antinews menu entries +@c with the above version number. + +For those users who live backwards in time, here is information about +downgrading to Emacs version 22.3. We hope you will enjoy the greater +simplicity that results from the absence of many Emacs @value{EMACSVER} +features. + +@section Old Lisp Features in Emacs 22 + +@itemize @bullet +@item +The internal character representation used by Emacs is not longer +based on Unicode. In this representation, called @code{emacs-mule}, +each character belongs to one and only one script. Emacs makes no +attempt to distinguish between ``similar'' characters occurring in +different scripts. + +@item +The @code{^} interactive spec code, the function +@code{handle-shift-selection}, and the variable +@code{this-command-keys-shift-translated} have all been removed. +Shift-translated keys are no longer treated specially, making Emacs' +handling of keybindings much more consistent. + +@item +Temporarily-active regions are not created by giving the variable +@code{transient-mark-mode} values of the form @code{(only +. @var{oldvar})}. We instead use a more complicated scheme: +setting @code{transient-mark-mode} to @code{only} enables Transient +Mark mode for the following command only, during which the value of +@code{transient-mark-mode} is set to @code{identity}; if it is still +@code{identity} at the end of the command, Transient Mark mode is +disabled. + +@item +Many minibuffer functions, such as @code{read-file-name} and +@code{minibuffer-complete}, have been rewritten in C for greater +speed. The completion code has been considerably simplified; the +completion style can no longer be changed via +@code{completion-styles-alist}, and @code{completing-read} no longer +recognizes the special values @code{confirm-only} and +@code{confirm-after-completion} for its @var{require-match} argument. + +@item +Emacs no longer supports explicitly-numbered groups in regular +expressions. + +@item +The @code{permanent-local-hook} function property has no special +meaning. + +@item +The @code{functionp} function now returns @code{t} for special forms. + +@item +The @code{interactive-form} symbol property has no special meaning. +Once you supply a function with an interactive form, the only way to +change it is to redefine the function. + +@item +The @code{ignore-errors} macro has been moved into the @code{cl} +package. + +@item +Variables can now be both buffer-local and frame-local; buffer-local +bindings take precedence over frame-local bindings. + +@item +Faces can no longer be remapped. + +@item +Lisp programs now specify fonts by their names, which are strings +following the XLFD (X logical font descriptor) format. Fonts are no +longer represented using a special set of ``font'' data types. The +various functions that act on these data types, such as @code{fontp}, +@code{font-spec}, and @code{list-fonts}, have all been deleted. + +@item +Emacs does not recognize the @code{FontBackend} X resource and the +@code{font-backend} frame parameter. On the X Window System, fonts +are always drawn using the X core font driver. + +@item +Display terminals are no longer represented using a ``terminal'' data +type; this is not necessary, because we have removed the ability to +display on graphical and text-only terminals simultaneously. For the +same reason, the @code{window-system} variable is no longer +frame-local, and the @code{window-system} function has been removed. + +@item +The functions @code{list-system-processes} and +@code{process-attributes} have been removed. To get information about +system processes, call an external program, such as @command{ps}. + +@item +The function @code{locate-user-emacs-file} and the variable +@code{user-emacs-directory} have been removed. Instead, use +hard-coded values pointing to @file{~/.emacs.d}. + +@item +@code{vertical-motion} can no longer be told to move to a specific +column; it always puts point on the first column of a line. + +@item +Windows no longer have parameters. + +@item +The @code{display-buffer} function has been rewritten in C. Its +window-splitting heuristics are a little less sophisticated, and a +little less documented. Window-splitting is handled internally, +instead of using @code{split-window-preferred-function} (which has +been removed). Windows are never split horizontally; the variable +@code{split-width-threshold} has been removed. + +@item +The @code{mode-name} variable now accepts only string values, and +cannot take the form of a mode-line construct. + +@item +The behavior of @code{map-char-table} has changed. It calls the +mapping function for every single character in the table, instead of +using cons cells to represent contiguous character code ranges. + +@item +Several keymaps have been eliminated: @code{input-decode-map}, +@code{local-function-key-map}, @code{search-map}, +@code{multi-query-replace-map}, and +@code{minibuffer-local-shell-command-map}. + +@item +Many functions have been removed, including: @code{buffer-swap-text}, +@code{emacs-init-time}, @code{emacs-uptime}, @code{use-region-p}, +@code{region-active-p}, @code{start-file-process}, +@code{process-lines}, @code{image-refresh}, +@code{match-substitute-replacement}, @code{word-search-forward-lax}, +and @code{word-search-backward-lax}. + +@item +Many variables have been removed, including @code{read-circle}, +@code{after-init-time} and @code{before-init-time}, +@code{generate-autoload-cookie}, @code{file-local-variables-alist}, +@code{replace-search-function} and @code{replace-re-search-function}, +@code{inhibit-changing-match-data}, @code{wrap-prefix}, and +@code{line-prefix}, +@end itemize + +@ignore + arch-tag: 1d0ef137-2bad-430e-ae8e-d820d569b5a6 +@end ignore