From 91b65361ae06198ecb8d9fd1ef10c2ff04dadc2f Mon Sep 17 00:00:00 2001 From: Chong Yidong Date: Thu, 5 Apr 2012 22:47:41 +0800 Subject: [PATCH] * doc/lispref/anti.texi (Antinews): Rewrite for Emacs 23. * etc/NEWS: Some minor rearrangement. --- doc/lispref/ChangeLog | 6 ++ doc/lispref/anti.texi | 294 ++++++++++++++++++++++++-------------------------- etc/NEWS | 17 ++- 3 files changed, 152 insertions(+), 165 deletions(-) rewrite doc/lispref/anti.texi (87%) diff --git a/doc/lispref/ChangeLog b/doc/lispref/ChangeLog index c0c355b0e83..86f0a91a33f 100644 --- a/doc/lispref/ChangeLog +++ b/doc/lispref/ChangeLog @@ -1,3 +1,9 @@ +2012-04-05 Chong Yidong + + * anti.texi (Antinews): Rewrite for Emacs 23. + + * minibuf.texi (Programmed Completion): Document metadata method. + 2012-04-04 Chong Yidong * minibuf.texi (Programmed Completion): Remove obsolete variable diff --git a/doc/lispref/anti.texi b/doc/lispref/anti.texi dissimilarity index 87% index 2463d6535fd..547eed9407a 100644 --- a/doc/lispref/anti.texi +++ b/doc/lispref/anti.texi @@ -1,155 +1,139 @@ -@c -*-texinfo-*- -@c This is part of the GNU Emacs Lisp Reference Manual. -@c Copyright (C) 1999, 2002-2012 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's -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 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 +@c -*-texinfo-*- +@c This is part of the GNU Emacs Lisp Reference Manual. +@c Copyright (C) 1999, 2002-2012 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 23.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 23 + +@itemize @bullet +@item +Support for lexical scoping has been removed; all variables are +dynamically scoped. The @code{lexical-binding} variable has been +removed, and so has the @var{lexical} argument to @code{eval}. The +@code{defvar} and @code{defconst} forms no longer mark variables as +dynamic, since all variables are dynamic. + +Having only dynamic binding follows the spirit of Emacs extensibility, +for it allows any Emacs code to access any defined variable with a +minimum of fuss. But @xref{Dynamic Binding Tips}, for tips to avoid +making your programs hard to understand. + +@item +Calling a minor mode function from Lisp with a nil or omitted argument +does not enable the minor mode unconditionally; instead, it toggles +the minor mode---which is the straightforward thing to do, since that +is the behavior when invoked interactively. One downside is that it +is more troublesome to enable minor modes from hooks; you have to do +something like + +@example +(add-hook 'foo-hook (lambda () (bar-mode 1))) +@end example + +@noindent +or define @code{turn-on-bar-mode} and call that from the hook. + +@item +The @code{prog-mode} dummy major mode has been removed. Instead of +using it as a crutch to meet programming mode conventions, you should +explicitly ensure that your mode follows those conventions. +@xref{Major Mode Conventions}. + +@item +Emacs no longer supports bidirectional display and editing. Since +there is no need to worry about the insertion of right-to-left text +messing up how lines and paragraphs are displayed, the function +@code{bidi-string-mark-left-to-right} has been removed; so have many +other functions and variables related to bidirectional display. +Unicode directionality characters like @code{U+200E} ("left-to-right +mark") have no special effect on display. + +@item +Emacs windows now have most of their internal state hidden from Lisp. +Internal windows are no longer visible to Lisp; functions such as +@code{window-parent}, window parameters related to window arrangement, +and window-local buffer lists have all been removed. Functions for +resizing windows can delete windows if when they become too small. + +The @dfn{action function} feature for controlling buffer display has +been removed, including @code{display-buffer-overriding-action} and +related variables, as well as the @var{action} argument to +@code{display-buffer} and other functions. The way to +programmatically control how Emacs chooses a window to display a +buffer is to bind the right combination of +@code{special-display-regexps}, @code{pop-up-frames}, and other +variables. + +@item +The standard completion interface has been simplified, eliminating the +@code{completion-extra-properties} variable, the @code{metadata} +action flag for completion functions, and the concept of +@dfn{completion categories}. Lisp programmers may now find the choice +of methods for tuning completion less bewildering, but if a package +finds the streamlined interface insufficient for its needs, it must +implement its own specialized completion feature. + +@item +@code{copy-directory} now behaves the same whether or not the +destination is an existing directory: if the destination exists, the +@emph{contents} of the first directory are copied into it (with +subdirectories handled recursively), rather than copying the first +directory into a subdirectory. + +@item +The @var{trash} arguments for @code{delete-file} and +@code{delete-directory} have been removed. The variable +@code{delete-by-moving-to-trash} must now be used with care; whenever +it is non-@code{nil}, all calls to @code{delete-file} or +@code{delete-directory} use the trash. + +@item +Because Emacs no longer supports SELinux file contexts, the +@var{preserve-selinux-context} argument to @code{copy-file} has been +removed. The return value of @code{backup-buffer} no longer has an +entry for the SELinux file context. + +@item +For mouse click input events in the text area, the Y pixel coordinate +in the @var{position} list (@pxref{Click Events}) now counts from the +top of the header line, if there is one, rather than the top of the +text area. + +@item +Bindings in menu keymaps (@pxref{Format of Keymaps}) now sometimes get +an additional @var{cache} entry in their definitions, like this: + +@example +(@var{type} @var{item-name} @var{cache} . @var{binding}) +@end example + +@noindent +The @var{cache} entry is used internally by Emacs to record equivalent +keyboard key sequences for invoking the same command; Lisp programs +should never use it. + +@item +The @code{open-network-stream} function has been removed, and so has +the @code{gnutls} library. Lisp programs that want an encrypted +network connection must now call external utilities such as +@command{starttls} or @command{gnutls-cli}. + +@item +Tool bars can no longer display separators, which frees up several +pixels of space on each graphical frame. + +@item +Many other functions and variables have been eliminated. +@end itemize diff --git a/etc/NEWS b/etc/NEWS index caa02fa56b8..68a4d57eff2 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -82,8 +82,6 @@ Nextstep builds). ** Completion -*** Shell mode uses pcomplete rules, with the standard completion UI. - *** Many packages now use the `completion-at-point' command, rather than implementing separate completion commands. @@ -313,6 +311,9 @@ corresponding way. ** Window changes +*** The `quit-window' command now restores the last buffer displayed +in the quitted window. + *** Resizing an Emacs frame now preserves proportional window sizes, modulo restrictions like window minimum sizes and fixed-size windows. @@ -339,6 +340,10 @@ otherwise cannot be split because it's too small by stealing space from other windows in the same combination. Subsequent resizing or deletion of the window will resize all windows in the same combination as well. +*** New option `frame-auto-hide-function' lets you choose between +iconifying or deleting a frame when burying a buffer in a dedicated +frame, or quitting a window showing a buffer in a frame of its own. + *** New commands `maximize-window' and `minimize-window'. These maximize and minimize the size of a window within its frame. @@ -1149,14 +1154,6 @@ are user-customizable variables. See the docstring of `display-buffer' for details. -*** New behavior of `quit-window'. -The behavior of `quit-window' has been changed in order to restore the -state before the last buffer display operation in that window. - -*** The new option `frame-auto-hide-function' lets you choose between -iconifying or deleting a frame when burying a buffer shown in a dedicated -frame or quitting a window showing a buffer in a frame of its own. - *** New functions `window-state-get' and `window-state-put'. These functions allow to save and restore the state of an arbitrary frame or window as an Elisp object. -- 2.11.4.GIT