X-Git-Url: https://code.delx.au/gnu-emacs/blobdiff_plain/879054ea2843482b2c5a42b62b3117e05452d8c0..376de73927383d6062483db10b8a82448505f52b:/etc/NEWS diff --git a/etc/NEWS b/etc/NEWS index 491713224f..4c9564b24e 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -4,6 +4,8 @@ See the end for copying conditions. Please send Emacs bug reports to bug-gnu-emacs@gnu.org. For older news, see the file ONEWS +You can narrow news to the specific version by calling +`view-emacs-news' with a prefix argument or by typing C-u C-h C-n. Temporary note: +++ indicates that the appropriate manual has already been updated. @@ -14,6 +16,11 @@ so we will look at it and add it to the manual. * Installation Changes in Emacs 21.4 +** Emacs includes now support for loading image libraries on demand. +(Currently this feature is only used on MS Windows.) You can configure +the supported image types and their associated dynamic libraries by +setting the variable `image-library-alist'. + --- ** A Bulgarian translation of the Emacs Tutorial is available. @@ -88,6 +95,66 @@ types any more. Add -DUSE_LISP_UNION_TYPE if you want union types. * Changes in Emacs 21.4 +** Passing resources on the command line now works on MS Windows. +You can use --xrm to pass resource settings to Emacs, overriding any +existing values. For example: + + emacs --xrm "Emacs.Background:red" --xrm "Emacs.Geometry:100x20" + +will start up Emacs on an initial frame of 100x20 with red background, +irrespective of geometry or background setting on the Windows registry. + +** New features in evaluation commands + ++++ +*** The function `eval-defun' (C-M-x) called on defface reinitializes +the face to the value specified in the defface expression. + +*** Typing C-x C-e twice prints the value of the integer result +in additional formats (octal, hexadecimal, character) specified +by the new function `eval-expression-print-format'. The same +function also defines the result format for `eval-expression' (M-:), +`eval-print-last-sexp' (C-j) and some edebug evaluation functions. + +** New input method chinese-sisheng for inputting Chinese Pinyin +characters. + +** New command quail-show-key shows what key (or key sequence) to type +in the current input method to input a character at point. + +** Convenient commands to switch buffers in a cyclic order are C-x +(prev-buffer) and C-x (next-buffer). + +** Commands winner-redo and winner-undo, from winner.el, are now bound to +C-c and C-c , respectively. This is an incompatible change. + +** Help commands `describe-function' and `describe-key' now show function +arguments in lowercase italics on displays that support it. To change the +default, customize face `help-argument-name' or redefine the function +`help-default-arg-highlight'. + +--- +** The comint prompt can now be made read-only, using the new user +option `comint-prompt-read-only'. This is not enabled by default, +except in IELM buffers. The read-only status of IELM prompts can be +controlled with the new user option `ielm-prompt-read-only', which +overrides `comint-prompt-read-only'. + +The new commands `comint-kill-whole-line' and `comint-kill-region' +support editing comint buffers with read-only prompts. + +`comint-kill-whole-line' is like `kill-whole-line', but ignores both +read-only and field properties. Hence, it will always kill entire +lines, including any prompts. + +`comint-kill-region' is like `kill-region', except that it ignores +read-only properties, if it is safe to do so. This means that if any +part of a prompt is deleted, then the entire prompt must be deleted +and that all prompts must stay at the beginning of a line. If this is +not the case, then `comint-kill-region' behaves just like +`kill-region' if read-only are involved: it copies the text to the +kill-ring, but does not delete it. + ** You can now use next-error (C-x `) and previous-error to advance to the next/previous matching line found by M-x occur. @@ -170,6 +237,37 @@ This is like `strokes-global-set-stroke', but it allows you to bind the stroke directly to a string to insert. This is convenient for using strokes as an input method. ++++ +** Desktop package + +*** Desktop saving is now a minor mode, desktop-save-mode. Variable +desktop-enable is obsolete. Customize desktop-save-mode to enable desktop +saving. + +*** Buffers are saved in the desktop file in the same order as that in the +buffer list. + +*** New commands: + - desktop-revert reverts to the last loaded desktop. + - desktop-change-dir kills current desktop and loads a new. + - desktop-save-in-desktop-dir saves desktop in the directory from which + it was loaded. + +*** New customizable variables: + - desktop-save. Determins whether the desktop should be saved when it is + killed. + - desktop-file-name-format. + - desktop-path. List of directories in which to lookup the desktop file. + - desktop-locals-to-save. + - desktop-globals-to-clear. + - desktop-clear-preserve-buffers-regexp. + +*** New command line option --no-desktop + +*** New hooks: + - desktop-after-read-hook run after a desktop is loaded. + - desktop-no-desktop-file-hook run when no desktop file is found. + --- ** The saveplace.el package now filters out unreadable files. When you exit Emacs, the saved positions in visited files no longer @@ -284,13 +382,15 @@ The technique of setting `sql-mode-font-lock-defaults' directly in your .emacs will no longer establish the default highlighting -- Use `sql-product' to accomplish this. +ANSI keywords are always highlighted. + *** The function `sql-add-product-keywords' can be used to add font-lock rules to the product specific rules. For example, to have all identifiers ending in "_t" under MS SQLServer treated as a type, you would use the following line in your .emacs file: (sql-add-product-keywords 'ms - '("\\<\\w+_t\\>" . font-lock-type-face)) + '(("\\<\\w+_t\\>" . font-lock-type-face))) *** Oracle support includes keyword highlighting for Oracle 9i. Most SQL and PL/SQL keywords are implemented. SQL*Plus commands are @@ -307,6 +407,13 @@ If the username and password are not provided to `sql-ms', osql is called with the -E command line argument to use the operating system credentials to authenticate the user. +*** Postgres support is enhanced. +Keyword highlighting of Postgres 7.3 is implemented. Prompting for +the username and the pgsql `-U' option is added. + +*** MySQL support is enhanced. +Keyword higlighting of MySql 4.0 is implemented. + *** Imenu support has been enhanced to locate tables, views, indexes, packages, procedures, functions, triggers, sequences, rules, and defaults. @@ -344,14 +451,24 @@ restores the previous value of `buffer-invisibility-spec'. ** New command `kill-whole-line' kills an entire line at once. By default, it is bound to C-S-. +** New commands to operate on pairs of open and close characters: +`insert-pair', `delete-pair', `raise-sexp'. + +** A prefix argument of C-M-q in Emacs Lisp mode pretty-printifies the +list starting after point. + ** Dired mode: *** New faces dired-header, dired-mark, dired-marked, dired-flagged, dired-ignored, dired-directory, dired-symlink, dired-warning introduced for Dired mode instead of font-lock faces. -*** New Dired command `dired-compare-directories' to mark files with -different file attributes in two dired buffers. +*** New Dired command `dired-compare-directories' marks files +with different file attributes in two dired buffers. + ++++ +*** New Dired command `dired-do-touch' (bound to T) changes timestamps +of marked files with the value entered in the minibuffer. +++ *** In Dired's ! command (dired-do-shell-command), `*' and `?' now @@ -367,17 +484,54 @@ types of files. The variable `dired-view-command-alist' controls what external viewers to use and when. *** In Dired, the w command now copies the current line's file name -into the kill ring. +into the kill ring. With a zero prefix arg, copies absolute file names. + ++++ +** Dired-x: + +*** Omitting files is now a minor mode, dired-omit-mode. The mode toggling +command is bound to M-o. A new command dired-mark-omitted, bound to M-O, +marks omitted files. The variable dired-omit-files-p is obsoleted, use the +mode toggling function instead. ** Info mode: + +*** A numeric prefix argument of `info' selects an Info buffer +with the number appended to the *info* buffer name. + +*** New command `Info-history' (bound to L) displays a menu of visited nodes. + +*** New command `Info-toc' (bound to T) creates a node with table of contents +from the tree structure of menus of the current Info file. + +*** New command `info-apropos' searches the indices of the known +Info files on your system for a string, and builds a menu of the +possible matches. + +*** New command `Info-copy-current-node-name' (bound to w) copies +the current Info node name into the kill ring. With a zero prefix +arg, puts the node name inside the `info' function call. + +*** New command `Info-search-case-sensitively' (bound to S). + +*** New command `Info-search-next' (unbound) repeats the last search +without prompting for a new search string. + +*** New face `info-xref-visited' distinguishes visited nodes from unvisited +and a new option `Info-fontify-visited-nodes' to control this. + +*** http and ftp links in Info are now operational: they look like cross +references and following them calls `browse-url'. + +++ *** Info now hides node names in menus and cross references by default. If you prefer the old behavior, you can set the new user option `Info-hide-note-references' to nil. -*** The new command `info-apropos' searches the indices of the known -Info files on your system for a string, and builds a menu of the -possible matches. +*** Images in Info pages are supported. +Info pages show embedded images, in Emacs frames with image support. +Info documentation that includes images, processed with makeinfo +version 4.7 or newer, compiles to Info pages with embedded images. +++ *** The default value for `Info-scroll-prefer-subnodes' is now nil. @@ -389,6 +543,8 @@ possible matches. 'sql-sqlite'. ** BibTeX mode: +*** The new command bibtex-entry-update (bound to C-c C-u) updates +an existing BibTeX entry. *** New `bibtex-entry-format' option `required-fields', enabled by default. *** bibtex-maintain-sorted-entries can take values `plain', `crossref', and `entry-class' which control the sorting scheme used @@ -601,11 +757,12 @@ and windows-1251 are preloaded since the former is so common and the latter is used by GNU locales. ** The utf-8/16 coding systems have been enhanced. -By default, untranslatable utf-8 sequences (mostly representing CJK -characters) are simply composed into single quasi-characters. User -option `utf-translate-cjk' arranges to translate many utf-8 CJK -character sequences into real Emacs characters in a similar way to the -Mule-UCS system. This uses significant space, so is not the default. +By default, untranslatable utf-8 sequences are simply composed into +single quasi-characters. User option `utf-translate-cjk-mode' (it is +turned on by default) arranges to translate many utf-8 CJK character +sequences into real Emacs characters in a similar way to the Mule-UCS +system. As this loads a fairly big data on demand, people who are not +interested in CJK characters may want to customize it to nil. You can augment/amend the CJK translation via hash tables `ucs-mule-cjk-to-unicode' and `ucs-unicode-to-mule-cjk'. The utf-8 coding system now also encodes characters from most of Emacs's @@ -745,9 +902,9 @@ to give it focus. +++ ** The new command `describe-char' (C-u C-x =) pops up a buffer with description various information about a character, including its -encodings and syntax, its text properties, overlays, and widgets at -point. You can get more information about some of them, by clicking -on mouse-sensitive areas or moving there and pressing RET. +encodings and syntax, its text properties, how to input, overlays, and +widgets at point. You can get more information about some of them, by +clicking on mouse-sensitive areas or moving there and pressing RET. +++ ** The new command `multi-occur' is just like `occur', except it can @@ -763,6 +920,10 @@ can optionally enable mouse highlighting only after you move the mouse, so that highlighting disappears when you press a key. You can also disable mouse highlighting. +** You can now customize if selecting a region by dragging the mouse +shall not copy the selected text to the kill-ring by setting the new +variable mouse-drag-copy-region to nil. + +++ ** font-lock: in modes like C and Lisp where the fontification assumes that an open-paren in column 0 is always outside of any string or comment, @@ -985,6 +1146,12 @@ counter to the specified source line (the one where point is). Minor Improvements +*** The STARTTLS elisp wrapper (starttls.el) can now use GNUTLS +instead of the OpenSSL based "starttls" tool. For backwards +compatibility, it will prefer "starttls", but you can toggle +`starttls-use-gnutls' to switch to GNUTLS (or simply remove the +"starttls" tool). + *** Do not allow debugger output history variable to grow without bounds. +++ @@ -1131,6 +1298,13 @@ the new function `appt-activate'. The new variable `appt-display-format' controls how reminders are displayed, replacing appt-issue-message, appt-visible, and appt-msg-window. +** The new functions `diary-from-outlook', `diary-from-outlook-gnus', +and `diary-from-outlook-rmail' can be used to import diary entries +from Outlook-format appointments in mail messages. The variable +`diary-outlook-formats' can be customized to recognize additional +formats. + + ** VC Changes *** The key C-x C-q no longer checks files in or out, it only changes @@ -1583,6 +1757,10 @@ Lines that match are never indented, and are given distinctive font-locking. ** F90 mode has new navigation commands `f90-end-of-block', `f90-beginning-of-block', `f90-next-block', `f90-previous-block'. +** F90 mode now has support for hs-minor-mode (hideshow). +It cannot deal with every code format, but ought to handle a sizeable +majority. + --- ** Prolog mode has a new variable `prolog-font-lock-keywords' to support use of font-lock. @@ -1675,7 +1853,7 @@ depend on external libraries. All of these libraries have been ported to Windows, and can be found in both source and binary form at http://gnuwin32.sourceforge.net/. Note that libpng also depends on zlib, and tiff depends on the version of jpeg that it was compiled -against. +against. For additional information, see nt/INSTALL. --- ** Sound is now supported on MS Windows. @@ -1727,9 +1905,25 @@ to view diffs or log entries directly from vc-annotate-mode: D: shows the diff of the revision at line with its previous revision L: shows the log of the revision at line W: annotates the workfile (most up to date) version + ++++ +** In pcl-cvs mode, there is a new `d y' command to view the diffs +between the local version of the file and yesterday's head revision +in the repository. + * New modes and packages in Emacs 21.4 +** The new package flymake.el does on-the-fly syntax checking of program +source files. See the Flymake's Info manual for more details. + +** The library tree-widget.el provides a new widget to display a set +of hierarchical data as an outline. For example, the tree-widget is +well suited to display a hierarchy of directories and files. + +** The wdired.el package allows you to use normal editing commands on dired +buffers to change filenames, permissions, etc... + ** The new python.el package is used to edit Python and Jython programs. ** The URL package (which had been part of W3) is now part of Emacs. @@ -1817,6 +2011,7 @@ where the keys work like (shifted) arrow keys, home/end, etc., and are left unspecified and can be bound individually through the global or local keymaps. ++++ ** The new kmacro package provides a simpler user interface to emacs' keyboard macro facilities. @@ -1955,16 +2150,52 @@ configuration files. * Lisp Changes in Emacs 21.4 -** New functions posn-at-point and posn-at-x-y returns +** If a command sets transient-mark-mode to `only', that +enables Transient Mark mode for the following command, only. + ++++ +** Cleaner way to enter key sequences. + +You can enter a constant key sequence in a more natural format, the +same one used for saving keyboard macros, using the macro `kbd'. For +example, + +(kbd "C-x C-f") => "\^x\^f" + +** The sentinel is now called when a network process is deleted with +delete-process. The status message passed to the sentinel for a +deleted network process is "deleted". The message passed to the +sentinel when the connection is closed by the remote peer has been +changed to "connection broken by remote peer". + +** If the buffer's undo list for the current command gets longer than +undo-outer-limit, garbage collection empties it. This is to prevent +it from using up the available memory and choking Emacs. + +--- +** New function quail-find-key returns a list of keys to type in the +current input method to input a character. + ++++ +** New functions posn-at-point and posn-at-x-y return click-event-style position information for a given visible buffer position or for a given window pixel coordinate. +** skip-chars-forward and skip-chars-backward now handle +character classes such as [:alpha:], along with individual characters +and ranges. + ** Function pos-visible-in-window-p now returns the pixel coordinates and partial visiblity state of the corresponding row, if the PARTIALLY arg is non-nil. ** The function `eql' is now available without requiring the CL package. ++++ +** The new primitive `set-file-times' sets a file's access and +modification times. Magic file name handlers can handle this +operation. + ** The display space :width and :align-to text properties are now supported on text terminals. @@ -1979,9 +2210,45 @@ specify image slice (X Y WIDTH HEIGHT). *** New function insert-sliced-image inserts a given image as a specified number of evenly sized slices (rows x columns). -*** Trailing newlines no longer contribute to the height of a display -row; instead the height of the newline glyph is reduced. This allows -sliced images to use a height less than the default line height. +** New line-height and line-spacing properties for newline characters + +A newline may now have line-height and line-spacing text or overlay +properties that control the height of the corresponding display row. + +If the line-height property value is 0, the newline does not +contribute to the height of the display row; instead the height of the +newline glyph is reduced. Also, a line-spacing property on this +newline is ignored. This can be used to tile small images or image +slices without adding blank areas between the images. + +If the line-height property value is a positive integer, the value +specifies the minimum line height in pixels. If necessary, the line +height it increased by increasing the line's ascent. + +If the line-height property value is a float, the minimum line height +is calculated by multiplying the default frame line height by the +given value. + +If the line-height property value is a cons (RATIO . FACE), the +minimum line height is calculated as RATIO * height of named FACE. +RATIO is int or float. If FACE is t, it specifies the current face. + +If the line-spacing property value is an positive integer, the value +is used as additional pixels to insert after the display line; this +overrides the default frame line-spacing and any buffer local value of +the line-spacing variable. + +If the line-spacing property may be a float or cons, the line spacing +is calculated as specified above for the line-height property. + +If the line-spacing value is a cons (total . SPACING) where SPACING is +any of the forms described above, the value of SPACING is used as the +total height of the line, i.e. a varying number of pixels are inserted +after each line to make each line exactly that many pixels high. + + +** The buffer local line-spacing variable may now have a float value, +which is used as a height relative to the default frame line height. ** Enhancements to stretch display properties @@ -2897,6 +3164,10 @@ A new predicate `supports' has also been added to the `defface' face specification language, which can be used to do this test for faces defined with defface. +** The function face-differs-from-default-p now truly checks whether the +given face displays differently from the default face or not (previously +it did only a very cursory check). + +++ ** face-attribute, face-foreground, face-background, and face-stipple now accept a new optional argument, INHERIT, which controls how face @@ -2906,6 +3177,13 @@ inheritance is used when determining the value of a face attribute. ** New functions face-attribute-relative-p and merge-face-attribute help with handling relative face attributes. +** The priority of faces in an :inherit attribute face-list is reversed. +If a face contains an :inherit attribute with a list of faces, earlier +faces in the list override later faces in the list; in previous releases +of Emacs, the order was the opposite. This change was made so that +:inherit face-lists operate identically to face-lists in text `face' +properties. + +++ ** Enhancements to process support @@ -3371,6 +3649,9 @@ using the text properties (esp. the face) of the prompt string. ** New function x-send-client-message sends a client message when running under X. +** Arguments for remove-overlays are now optional, so that you can remove +all overlays in the buffer by just calling (remove-overlay). + ** New packages: *** The new package gdb-ui.el provides an enhanced graphical interface to @@ -3411,10 +3692,7 @@ been added. with Custom. ** UTF-16 coding systems are available, encoding the same characters -as mule-utf-8. Coding system `utf-16-le-dos' is useful as the value -of `selection-coding-system' in MS Windows, allowing you to paste -multilingual text from the clipboard. Set it interactively with -C-x RET x or in .emacs with `(set-selection-coding-system 'utf-16-le-dos)'. +as mule-utf-8. ** There is a new language environment for UTF-8 (set up automatically in UTF-8 locales).