X-Git-Url: https://git.hcoop.net/bpt/emacs.git/blobdiff_plain/3b75ca8bd2ed9e6cc5a5e8008a20d322af2584cb..b57ac69d07bef63afb2f1e82961d12cd4799c30d:/etc/NEWS diff --git a/etc/NEWS b/etc/NEWS index 0b2834b3ae..cb402380e3 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -1,6 +1,6 @@ GNU Emacs NEWS -- history of user-visible changes. -Copyright (C) 2007, 2008 Free Software Foundation, Inc. +Copyright (C) 2007, 2008, 2009 Free Software Foundation, Inc. See the end of the file for license conditions. Please send Emacs bug reports to emacs-pretest-bug@gnu.org. @@ -21,9 +21,6 @@ When you add a new item, please add it without either +++ or --- so we will look at it and add it to the manual. -* About external Lisp packages - - * Installation Changes in Emacs 23.1 ** The default X toolkit is now Gtk+, rather than Lucid. @@ -33,7 +30,7 @@ default toolkit, but you can use --with-x-toolkit=gtk if necessary. ** New font code. Fonts are handled by new code capable of dealing with multiple font backends. This uses the freetype and fontconfig libraries. - ++++ *** Emacs now accepts font names supplied in the fontconfig format (e.g. "monospace-12:bold") and GTK format (e.g. "Monospace Bold 12"). @@ -60,7 +57,7 @@ a GIF library. This provides support for GNUstep (via the GNUstep libraries) and Mac OS X (via the Cocoa libraries). -Specify --with-ns to configure for this. By default, a self-contained +Specify --with-ns to configure for this. By default, a self-contained app will be built (containing all lisp). To install/share lisp with other emacsen (e.g. X11 build) use --disable-ns-self-contained. See nextstep/README and nextstep/INSTALL in the Emacs source directory. @@ -134,8 +131,13 @@ testing for the `multi-tty' feature. starts the server. Clients can connect and create graphical or terminal frames using emacsclient. +**** emacsclient starts emacs in daemon mode and connects to it when +--alternate-editor="" is used (or when the evironment variable +ALTERNATE_EDITOR is set to "") and emacsclient cannot connect to an +emacs server. + *** The new command close-display-connection closes a connection to a -remote display. +remote display. There are some bugs for Gtk+. See etc/PROBLEMS. *** Emacs now supports the XEmbed specification. You can embed Emacs in another application on X11. The new command line @@ -146,8 +148,8 @@ for details about XEmbed. *** Emacs can now set the frame opacity. The opacity of a frame can be controlled by setting the `alpha' frame parameter. This only takes effect on a compositing window manager for -the X Window System, such as Compiz, Beryl and Compiz Fusion, or on -Windows 2000 and later versions of Windows. +the X Window System, such as Compiz, Beryl and Compiz Fusion, on Mac +OS X, or on Windows 2000 and later versions of Windows. The alpha parameter should be an integer between 0 (transparent) and 100 (opaque), or a float number between 0.0 and 1.0. It can also be a @@ -251,14 +253,14 @@ line are now interactive: mouse-1 can be used on them to pop up a menu. +++ ** File deletion can make use of the Recycle Bin or system Trash folder. Set `delete-by-moving-to-trash' non-nil to use this. Deleted files -and directories will then be sent to the Recyle Bin on Windows, and +and directories will then be sent to the Recycle Bin on Windows, and to `trash-directory' on other systems. +++ ** Directory-local variables can now be defined. -By default, Emacs looks in .dir-settings.el for directory-local -variables. For more information, see `set-directory-project' and -`define-project-bindings'. +By default, Emacs looks in .dir-locals.el for directory-local +variables. For more information, see `dir-locals-set-directory-class' +and `dir-locals-set-class-variables'. ** Emacs can now use `auth-source' for authentication. `smtpmail' and `url' (Tramp and Gnus also) use `auth-source' to obtain @@ -311,8 +313,18 @@ the history list. the minibuffer that toggles word search (i.e. using key sequences `C-s RET C-w' or `C-s M-e C-w') is obsolete. You can use the global key `M-s w' to start word search, or type `M-s w' in Isearch mode to -toggle word search. +toggle word search. To start nonincremental word search you can now use +`M-s w RET' and `M-s w C-r RET' instead of `C-s RET C-w' and `C-r RET C-w'. ++++ +** In Info, `Info-search' is unbound from `M-s' to allow using `M-s w' +for word search as well as other search commands from the global prefix +key `M-s'. `Info-search' is still bound to `s', and also incremental +search commands `C-s', `C-M-s', `C-r', `C-M-r' are available for searching +through multiple Info nodes, together with their nonincremental versions +`C-s RET', `C-r RET', `C-M-s RET', `C-M-r RET', `M-s w RET'. + +--- ** In Text mode, `center-line' and `center-paragraph' are rebound from `M-s' and `M-S' to global keys `M-o M-s' and `M-o M-S' on the global prefix map `M-o' intended for such formatting commands. @@ -325,6 +337,14 @@ norwegian-alt-postfix, scandinavian-alt-postfix, spanish-alt-postfix, and swedish-alt-postfix. Use the versions without "alt-", which are identical. ++++ +** If a function in write-region-annotate-functions returns with a +different buffer current, Emacs no longer kills that buffer +automatically. This behavior existed in previous versions of Emacs, +but was undocumented. To kill a buffer after write-region, give the +variable `write-region-post-annotation-function' a buffer-local value +of `kill-buffer'. + * Editing Changes in Emacs 23.1 @@ -378,6 +398,19 @@ buffer). ** Minibuffer and completion changes +++ +*** Emacs may ask for confirmation before opening a non-existent file +or buffer. By default, Emacs requests confirmation if you type RET +immediately after TAB, and the resulting input is not an existing file +or buffer; this usually happens when the minibuffer input did not +complete far enough and you entered RET by mistake. In that case, +Emacs puts the message "[Confirm]" in the minibuffer; type RET again +to create the file or buffer. + +The new variable confirm-nonexistent-file-or-buffer determines whether +Emacs asks for confirmation. The default value is `after-completion'. +If you change it to t, Emacs always asks for confirmation; if you +change it to nil, Emacs never asks for confirmation. ++++ *** When M-n in the minibuffer reaches the end of the list of defaults, it adds the completion list to the end, so next M-n continues putting completion items to the minibuffer. The same principle applies to @@ -437,9 +470,22 @@ supported in `partial-completion-mode'. +++ *** S-down-mouse-1 now pops up a menu for changing the font and text size of the default face in the current buffer. The face is changed -via face remapping (see below). +via face remapping (see Lisp changes, below). ++++ +*** New commands to change the default face size in the current buffer. +To increase it, type `C-x C-+' or `C-x C-='. To decrease it, type +`C-x C--'. To restore the default (global) face size, type `C-x C-0'. +These work via Text Scale mode, a new minor mode. -*** FIXME face-remap +The final key in the above commands may be repeated without the +leading `C-x', e.g. `C-x C-= C-= C-=' increases the face height by +three steps. Each step scales the height of the default face by the +value of the variable `text-scale-mode-step'. + +*** The command `buffer-face-mode' prompts for a face name, and remaps +the default face in the current buffer to that specified face. The +command `variable-pitch-mode' turns on Buffer Face mode for the +`variable-pitch' face. ** Primary selection changes +++ @@ -451,6 +497,7 @@ bind `mouse-yank-primary' to Mouse-2. *** You can disable kill ring commands from accessing the primary selection by setting `x-select-enable-primary' to nil. +--- ** Continuation lines can now be wrapped at word boundaries (word-wrapping). This is controlled by the new per-buffer variable `word-wrap'. Word wrapping does not take place if continuation lines @@ -461,14 +508,14 @@ editing commands to work on screen lines rather than text lines. See New Modes and Packages, below. ** Window management changes - ++++ *** truncate-partial-width-windows now accepts integer values, which specify a minimum window width for partial-width windows, below which lines are truncated. The default has been changed to 50. *** The new command balance-windows-area balances windows both vertically and horizontally. - +--- *** pop-to-buffer now always sets input focus when the popped-to window is on a different frame. @@ -476,8 +523,8 @@ is on a different frame. +++ *** C-l is bound to the new command recenter-top-bottom, rather than recenter. This moves the current line to window center, top and bottom on -successive invokations. - +successive invocations. ++++ *** scroll-preserve-screen-position also preserves the column position. +++ *** If `yank-pop-change-selection' is t, rotating the kill ring also @@ -495,17 +542,14 @@ run processes remotely. +++ *** The new command kill-matching-buffers kills buffers whose name matches a regexp. - +--- *** The new commands `pp-macroexpand-expression' and `pp-macroexpand-last-sexp' pretty-print macro expansions. - ++++ *** The new command `set-file-modes' allows to set file's mode bits. The mode bits can be specified in symbolic notation, like with GNU -Coreutils, in addition to an octal number. -+++ -*** Emacs requires confirmation before opening a non-existent file or buffer. -You can recover the previous behavior by setting -confirm-nonexistent-file-or-buffer to nil. +Coreutils, in addition to an octal number. `chmod' is a new +convenience alias for this function. *** `next-error-recenter' specifies how next-error should recenter the visited source file. Its value can be a number (for example, 0 for @@ -513,6 +557,8 @@ top line, -1 for bottom line), or nil for no recentering. +++ *** When typing in a password in the echo area, C-y yanks the current kill into the password. + +*** `mkdir' is a new convenience alias for `make-directory'. * New Modes and Packages in Emacs 23.1 @@ -524,6 +570,9 @@ automatically when they are displayed. It is globally on by default. It uses `auto-composition-function' (default `auto-compose-chars'). ** Bubbles, a new game, is similar to SameGame. +--- +** butterfly flips the desired bit on the drive platter. +See http://xkcd.com/378/ ** bug-reference.el provides clickable links to bug reports. @@ -531,7 +580,8 @@ It uses `auto-composition-function' (default `auto-compose-chars'). D-Bus is an inter-process communication mechanism for applications residing on the same host. See the manual for details. -** Doc View mode allows viewing of PDF, PostScript and DVI documents. ++++ +** DocView mode allows viewing of PDF, PostScript and DVI documents. One can also search for a regular expression in the document. For details, see the commentary in doc-view.el. @@ -560,6 +610,7 @@ Maildir/MH setups. ** minibuffer-depth-indicate-mode shows the minibuffer depth in the prompt. ++++ ** nXML Mode This is a new mode for editing XML documents. It allows a schema to be associated with the XML document being edited, using Relax NG as @@ -572,17 +623,21 @@ any invalid parts of your document. attribute name or data value by using information about what is allowed by the schema in that context. -** proced.el provides a Dired-like interface for operating on processes. -Proced makes an Emacs buffer containing a listing of the current -processes (using ps(1)). You can use the normal Emacs commands to -move around in this buffer, and special Proced commands to operate on -the processes listed. +** proced.el provides a Dired-like interface for operating on +processes. Proced makes an Emacs buffer containing a listing of the +current processes. You can use the normal Emacs commands to move +around in this buffer, and special Proced commands to operate on the +processes listed. It is currently only functional on GNU/Linux, +MS-Windows and Solaris. ** Remember Mode is a mode for jotting down things to remember. Notes can be saved to a Diary file. For details, see the Remember Manual. -** RST mode is a major mode for editing ReSTructured-Text files. +** RST mode is a major mode for editing reStructuredText files. + ++++ +** Ruby mode is a major mode for Ruby files. +++ ** Visual Line mode provides support for editing by visual lines. @@ -637,6 +692,7 @@ specifies what to do when a buffer is visited, killed, or written. Note, however, that the free version of the unrar command only handles versions 1 and 2 of the Rar format. +--- ** BibTeX mode *** New command `bibtex-initialize' (re)initializes BibTeX buffers. @@ -704,7 +760,7 @@ the first error encountered during compilations. says to stop auto scrolling at the first error that occurs. --- *** The `cc' alias for C++ files in `grep-file-aliases' has been -improved. `hh' can be used to match C++ header files and `cchh' both +improved. `hh' can be used to match C++ header files and `cchh' both C++ sources and headers. ** Copyright @@ -731,8 +787,8 @@ diff-auto-refine-mode. It is bound to `C-c C-b'. buffer and tries to create ChangeLog entries for each change. It is bound to `C-x 4 A'. +++ -*** The new function `diff-show-trailing-whitespaces' shows -trailing whitespace problems in the modified lines of a diff buffer. +*** Turning on `whitespace-mode' in a diff buffer will show trailing +whitespace problems in the modified lines. ** Dired +++ @@ -746,10 +802,13 @@ to the end of the command. Its output appears in the buffer `*Async Shell Command*'. +++ *** `M-s f C-s' and `M-s f M-C-s' run Isearch that matches only at file names. -When a new user option `dired-isearch-filenames' is non-nil, then even -ordinary Isearch started with `C-s' and `C-M-s' matches only at file names -in the Dired buffer. You can toggle file names matching on or off -by typing `M-s f' in Isearch mode. +When a new user option `dired-isearch-filenames' is t, then even ordinary +Isearch started with `C-s' and `C-M-s' matches only at file names in the +Dired buffer. When `dired-isearch-filenames' is `dwim' then activation of +file name Isearch depends on the position of point - if point is on a file +name initially, then Isearch matches only file names, otherwise it matches +everywhere in the Dired buffer. You can toggle file names matching on or +off by typing `M-s f' in Isearch mode. +++ *** `M-s a C-s' and `M-s a M-C-s' run multi-file Isearch on the marked files. They visit the first marked file in the sequence and display the usual Isearch @@ -843,7 +902,7 @@ history. See `Minibuffer changes', above. +++ ** MH-E -*** Upgraded to MH-E version 8.1. See MH-E-NEWS for details. +*** Upgraded to MH-E version 8.1. See MH-E-NEWS for details. ** Python *** The file etc/emacs.py now supports both Python 2 and 3, meaning @@ -860,8 +919,72 @@ way as gud-mode does for debugging C programs with gdb. remote files, if there is no established connection to the corresponding remote host. -** TeX modes +** Rmail + ++++ +*** Rmail no longer converts the messages to Babyl format. +Instead, it uses UNIX mbox format, both on disk and in Rmail buffers, +and does conversion and decoding when a message is displayed. + +The first time you visit an Rmail file in Babyl format, Rmail +automatically converts it to mbox format. This is a one-time +conversion, but it can take a few minutes, depending on how fast is +your machine and on the size of the file. You should find the rest of +Rmail usage unaltered. + +However, M-x set-rmail-inbox-list now lasts only for one session +because there is no way to save the list of inbox files in an +mbox-format file. +If you have written any extensions to Rmail, they are likely to need +updating. Conceptually, the Rmail buffer that you see is no longer +just a narrowed portion of the whole. So you cannot access the whole +of a message (or message collection) by a simple save-restriction and +widen. Instead, there are two buffers: the rmail-buffer, and the +rmail-view-buffer. The former is the buffer that you see, the latter +is invisible. Most of the time, the invisible `view' buffer contains +the full contents of the Rmail file, and the Rmail buffer contains a +decoded copy of the current message (with only a subset of the +headers). In this state, Rmail is said to be `swapped'. + +You may find the following functions useful: + +`rmail-get-header' and `rmail-set-header' get or set the value of a +message header, whether or not it is currently visible. + +`rmail-apply-in-message' is a general purpose function that calls a +function (with arguments) which you specify on the full text of a given +message. To further narrow to just the headers, search forward for "\n\n". + ++++ +*** The new command `rmail-mime' displays MIME messages. +It is bound to `v' in Rmail buffers and summaries. It displays plain +text and multipart messages in a temporary buffer, and offers buttons +to save attachments. + +--- +*** The command `rmail-redecode-body' no longer accepts the optional arg RAW. +Since Rmail now holds messages in their original undecoded form in a +separate buffer, `rmail-redecode-body' no longer encodes the original +message, and therefore there should be no need to avoid encoding it. + ++++ +*** The o command is now `rmail-output'. It is an all-purpose command +for copying messages from Rmail and appending them to files. It +handles Babyl-format files as well as mbox-format files, and it +handles both kinds properly when they are visited in Emacs. It always +copies the full headers of the message. + ++++ +*** The C-o command is now `rmail-output-as-seen'. It uses +the message as displayed, appending it to an mbox file. + +--- +*** The modified status of the Rmail buffer is reported in the mode-line. +Previously, this information was hidden. + +** TeX modes +--- *** New option latex-indent-within-escaped-parens permits to customize indentation of LaTeX environments delimited by escaped parens. @@ -882,6 +1005,10 @@ The new methods "plinkx", "plink2", "psftp", "sftp" and "fish" have been introduced. There are also new so-called gateway methods "tunnel" and "socks". +*** IPv6 addresses. +IPv6 addresses are supported now as host names. They must be embedded +in square brackets, like in "/ssh:[::1]:". + *** Multihop syntax has been removed. The pseudo-method "multi" has been removed. Instead of, multi hops can be specified by the new variable `tramp-default-proxies-alist'. @@ -919,6 +1046,14 @@ a single changeset. status. It allows to apply various VC operations to a file, a directory or a set of files/directories. +++ +*** VC switches are no longer appended, rather the first non-nil value is used. +(This was for the most part true in Emacs 22, but was not advertised). +This is because there is an increasing variety of VC systems, and they +do not all accept the same "common" options. For example, a CVS diff +command used to append the values of `vc-cvs-diff-switches', +`vc-diff-switches', and `diff-switches'. Now the first non-nil value +from that sequence is used. The special value `t' means "no switches". ++++ *** Clicking on the VC mode-line entry now pops the VC menu. +++ *** The VC mode-line entry now has a tooltip that explains the VC file status. @@ -957,7 +1092,7 @@ to update it to the new VC. *** comint-mode uses `start-file-process' now (see Lisp Changes). If `default-directory' is a remote file name, subprocesses are started on the corresponding remote system. - +--- *** Eldoc highlights the function argument under point with the face `eldoc-highlight-function-argument'. +++ @@ -975,7 +1110,7 @@ goto-address-prog-mode, which buttonize URLS and email addresses. *** The new variable `ffap-rfc-directories' specifies a list of local directories in which `ffap-rfc' will first search for RFCs. - ++++ *** hide-ifdef-mode allows shadowing ifdef-blocks instead of hiding them. See option `hide-ifdef-shadow' and function `hide-ifdef-toggle-shadowing'. @@ -1008,7 +1143,7 @@ tex-suscript-height-minimum. *** view-remove-frame-by-deleting is now by default t since users found iconification of view-mode frames distracting. - +--- *** WoMan tries to add locale-specific manual page directories to the search path. This can be disabled by setting `woman-locale' to nil. @@ -1054,7 +1189,7 @@ w32-pass-multimedia-buttons to nil. See the doc string of that variable for the list of extra keys that are available. ** BDF fonts no longer supported on MS-Windows. -The font backend was completely rewritten for this release. The focus +The font backend was completely rewritten for this release. The focus on Windows has been getting acceptable performance and full unicode support, including complex script shaping for native Windows fonts. A rewrite of the BDF font support has not happened due to lack of time @@ -1100,6 +1235,10 @@ checking/manipulating elements directly, use the new functions ** `mode-name' is no longer guaranteed to be a string. Use `(format-mode-line mode-name)' to ensure a string value. ++++ +** The function x-font-family-list has been removed. +Use the new function font-family-list (see Lisp Changes, below). + ** Internationalization changes *** The value of the function `charset-id' is now always 0. @@ -1127,13 +1266,26 @@ mlm-* functions and variables (formerly used for Malayalam script). **** `tamil' and `tml-util, and all associated tamil-* and tml-* functions and variables (formerly used for Tamil script). +--- +** The variable temp-file-name-pattern has been removed. +This variable was only used by call-process-region, which now uses +temporary-file-directory instead. + * Lisp Changes in Emacs 23.1 ** New coding system alias `emacs-internal'. +++ -** New primitives `list-system-processes' and `system-process-attributes' +** The new variable `generate-autoload-cookie' controls the magic comment +string used by `update-file-autoloads' to find autoloaded forms. The +variable `generated-autoload-file' similarly controls the name of the +file where `update-file-autoloads' writes the calls to `autoload'. +The default values are ";;;###autoload" and `loaddefs.el', +respectively. + ++++ +** New primitives `list-system-processes' and `process-attributes' let Lisp programs access the processes that are running on the local machine. See the doc strings of these functions for more details. Not all platforms support accessing this information; on those that @@ -1216,9 +1368,10 @@ interactive forms to subroutines. an active region that they should operate on. *** `region-active-p' returns non-nil when Transient Mark mode is -enabled and there is an active region. This is NOT the best function -to use to test whether a command should operate on the region instead -of the usual behavior -- for that, use `use-region-p'. +enabled and the mark is active. Most commands that act specially on +the active region in Transient Mark mode should use `use-region-p' +instead of `region-active-p', because `use-region-p' obeys the new +user option `use-empty-active-region' (see Editing Changes, above). +++ *** If a command sets `transient-mark-mode' to (only . OLDVAL), that @@ -1260,6 +1413,7 @@ to override the default splitting mechanism of display-buffer. *** If pop-up-frames has the value `graphic-only', display-buffer only makes a separate frame on graphic displays. ++++ *** select-frame and set-frame-selected-window have new optional argument NORECORD. If non-nil, this will avoid messing with the order of recently selected windows and the buffer list. @@ -1288,15 +1442,9 @@ via M-n when reading a regexp in the minibuffer. *** minibuffer-local-must-match-filename-map is now named minibuffer-local-filename-must-match-map. ---- -*** `all-completions' may now return the base size in the last cdr. -Since this means the returned list is not properly nil-terminated, this -is an incompatible change and is thus enabled by the new variable -completion-all-completions-with-base-size. - +++ -*** The `require-match' argument to `completing-read' accepts a new value -`confirm-only'. +*** The `require-match' argument to `completing-read' accepts the new +values `confirm-only' and `confirm-after-completion'. ** Search and replacement changes +++ @@ -1345,6 +1493,31 @@ symbolic notation thanks to auxiliary functions. *** file-local-variables-alist stores an alist of file-local variables defined in the current buffer. +** Face-remapping ++++ +*** Each face can be remapped to a different face definition using the +variable `face-remapping-alist'. This is an alist that maps faces to +replacement definitions (which can be face names, lists of face names, +or attribute/value plists. If this variable is buffer-local, the +remapping occurs only in that buffer. + +*** text-scale-mode remaps the default face to a larger or smaller +size in the current buffer. This feature is used by the Buffer Face +menu and the new `C-x C-+', `C-x C--', and `C-x C-0' commands (see +Editing Changes, above). + +*** New functions: ++++ +**** `face-remap-add-relative' adds a face remapping entry to the +current buffer. ++++ +**** ``face-remap-remove-relative' removes a face remapping entry from +the current buffer. ++++ +**** `face-remap-reset-base' restores a face to its global definition. ++++ +**** `face-remap-set-base' sets the base remapping of a face. + ** Process changes +++ *** The new function `start-file-process' is similar to `start-process', @@ -1371,21 +1544,27 @@ Generic characters no longer exist. In buffers and strings, characters are represented by UTF-8 byte sequences in a multibyte buffer/string. ++++ The concept of a charset has changed. A single character may belong to multiple charsets (e.g. a-grave, U+00E0, belongs to charsets unicode, iso-8859-1, iso-8859-3, etc). +--- *** The functions `split-char' and `make-char' now accept up to 4 positional codes instead of just 2. ++++ *** The functions `encode-char' and `decode-char' now accept any character sets. +--- *** The function `define-charset' now accepts a completely different form of arguments (old-style arguments still work). ++++ *** The value of the function `char-charset' depends on the current priorities of charsets. ++++ *** The function get-char-code-property now accepts many Unicode base character properties. They are `name', `general-category', `canonical-combining-class', `bidi-class', `decomposition', @@ -1398,25 +1577,35 @@ accept a cons of characters as the first argument, and modify all entries in that range of characters. +++ -*** `translation-table-for-input' is now obsolete. +*** Use of `translation-table-for-input' for character code unification +is now obsolete, since Emacs 23.1 and later uses Unicode as basis for +internal representation of characters. *** New functions: ++++ **** `characterp' returns t if and only if the argument is a character. This replaces `char-valid-p', which is now obsolete. ++++ **** `max-char' returns the maximum character code (currently #x3FFFFF). +--- **** `define-charset-alias' defines an alias of a charset. ++++ **** `set-charset-priority' sets priorities of charsets. ++++ **** `charset-priority-list' returns a prioritized list of charsets. ++++ **** `unibyte-string' makes a unibyte string from bytes. +--- **** `define-char-code-property' defines a character code property. ++++ **** `char-code-property-description' returns the description string of a character code property. @@ -1425,48 +1614,72 @@ a character code property. **** `find-word-boundary-function-table' is a char-table of functions to search for a word boundary. ++++ **** `char-script-table' is a char-table of script names. ++++ **** `char-width-table' is a char-table of character widths. +--- **** `print-charset-text-property' controls how to handle `charset' text property on printing a string. ++++ **** `printable-chars' is a char-table of printable characters. ** Code conversion changes +--- *** The new function `define-coding-system' should be used to define a coding system instead of `make-coding-system' (which is now obsolete). ++++ *** The functions `encode-coding-region' and `decode-coding-region' have an optional 4th argument to specify where the result of conversion should go. ++++ *** The functions `encode-coding-string' and `decode-coding-string' have an optional 4th argument specifying a buffer to store the result of conversion. ++++ +*** The new variable `inhibit-null-byte-detection' controls whether to +consider text with null bytes as binary data. By default, it is +`nil', and Emacs uses `no-conversion' for any text containing null +bytes. + +--- *** The functions `set-coding-priority' and `make-coding-system' are obsolete. *** New functions: ++++ **** `with-coding-priority' executes Lisp code using the specified coding system priority order. ++++ **** `check-coding-systems-region' checks if the text in the region is encodable by the specified coding systems. ++++ **** `coding-system-aliases' returns a list of aliases of a coding system. ++++ **** `coding-system-charset-list' returns a list of charsets supported by a coding system. ++++ **** `coding-system-priority-list' returns a list of coding systems ordered by their priorities. ++++ **** `set-coding-system-priority' sets priorities of coding systems. +**** `coding-system-from-name' returns a coding system matching with +the argument name. + + ** There is a new input method, Robin, different from Quail. It has three functionalities: i) a simple input method (converts an ASCII sequence into a string). @@ -1481,6 +1694,7 @@ robin rule can hold the original ASCII sequence as a char-code-property) *** The new function `robin-use-package' starts using a Robin package as an input method. ++++ *** The new function `string-to-unibyte' is like `string-as-unibyte' but signals an error if STRING contains a non-ASCII, non-eight-bit character. @@ -1504,52 +1718,61 @@ second argument, and has an optional 5th argument to control how to set the font. *** New functions: - ++++ **** `fontp' checks if the argument is a font-spec or font-entity. - ++++ **** `font-spec' creates a new font-spec object. - ++++ **** `font-get' returns a font property value. - ++++ **** `font-put' sets a font property value. - ++++ **** `font-face-attributes' returns a plist of face attributes set by a font. - ++++ **** `list-fonts' returns a list of font-entities matching a font spec. - -**** `font-font' returns the font-entity best matching the given font spec. - -**** `list-families' returns a list of family names of available fonts. - ++++ +**** `find-font' returns the font-entity best matching the given font spec. ++++ +**** `font-family-list' returns a list of family names of available fonts. ++++ **** `font-xlfd-name' returns an XLFD name of a given font spec, font entity, or font object. - +--- **** `clear-font-cache' clears all font caches. ** Changes related to multiple-terminal (multi-tty) support +--- *** $TERM is now set to `dumb' for subprocesses. If you want to know the $TERM inherited by Emacs you will have to look inside initial-environment. +--- *** $DISPLAY is now dynamically inherited from the frame's `display'. ++++ *** The `window-system' variable is now frame-local. The new `initial-window-system' variable contains the `window-system' value for the first frame. `window-system' is also now a function that takes a frame argument. ++++ *** The `keyboard-translate-table' variable and the terminal and keyboard coding systems are now terminal-local. +--- *** You can specify a terminal device (`tty' parameter) and a terminal type (`tty-type' parameter) to `make-terminal-frame'. +--- *** The function `make-frame-on-display' now works during a tty -session, and `make-frame-on-tty' works during a graphical session. +session. -*** A new data type for terminals with functions: `get-device-terminal', -`terminal-parameters', `terminal-parameter', `set-terminal-parameter'. ++++ +*** A new `terminal' data type. +The functions `get-device-terminal', `terminal-parameters', +`terminal-parameter', `set-terminal-parameter' use this data type. ++++ *** Function key sequences are now mapped using `local-function-key-map', a new variable. This inherits from the global variable function-key-map, which is not used directly any more. @@ -1561,26 +1784,28 @@ which is not used directly any more. variable file-local-variables-alist, and before actually applying the file-local variables. ++++ **** `suspend-tty-functions' and `resume-tty-functions' are called after a tty frame has been suspended or resumed, respectively. The functions are called with the terminal id of the frame being suspended/resumed as a parameter. ++++ **** The special hook `delete-terminal-functions' is called before deleting a terminal. *** New functions: -**** `environment' - -**** `make-frame-on-tty' creates a new frame on another tty device. - -**** `delete-tty' ++++ +**** `delete-terminal' ++++ **** `suspend-tty' ++++ **** `resume-tty'. ++++ *** `initial-environment' holds the environment inherited from Emacs's parent. ** Redisplay changes @@ -1624,6 +1849,9 @@ uses the minibuffer-local-shell-command-map for that. *** `buffer-swap-text' swaps text between two buffers. This can be useful for modes such as tar-mode, archive-mode, RMAIL. +*** New variable `buffer-swapped-with' lets the modes that use +`buffer-swap-text' arrange to save the file from the proper buffer. + +++ *** `read-color' reads a color name using the minibuffer.