]> code.delx.au - gnu-emacs/blobdiff - etc/NEWS
Follow text-quoting-style in display table init
[gnu-emacs] / etc / NEWS
index 4333efba975100790fc213bed447ac10ad61dc59..c2828c9db517a1270da543733b7f101a2582dfd2 100644 (file)
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -29,6 +29,9 @@ otherwise leave it unmarked.
 
 ** Building Emacs now requires GNU make, version 3.81 or later.
 
+** New configure option --with-cairo.
+Maybe add text based on http://lists.gnu.org/archive/html/emacs-devel/2015-05/msg00689.html
+
 ** By default, Emacs no longer works on IRIX.  We expect that Emacs
 users are not affected by this, as SGI stopped supporting IRIX in
 December 2013.  If you are affected, please send a bug report.  You
@@ -36,9 +39,19 @@ should be able to work around the problem either by porting the Emacs
 undumping code to GCC under IRIX, or by configuring --with-wide-int,
 or by sticking with Emacs 24.4.
 
+** The Emacs garbage collector assumes GC_MARK_STACK == GC_MAKE_GCPROS_NOOPS.
+The GC_MAKE_GCPROS_NOOPS stack-marking variant has been the default
+since Emacs 24.4, and the other variants were undocumented and were
+obstacles to maintenance and development.  GC_MARK_STACK and its
+related symbols have been removed from the C internals.
+
 ** 'configure' now prefers gnustep-config when configuring GNUstep.
 If gnustep-config is not available, the old heuristics are used.
 
+---
+** 'configure' now prefers inotify to gfile for file notification,
+unless gfile is explicitly requested via --with-file-notification='gfile'.
+
 ---
 ** The configure option '--with-pkg-config-prog' has been removed.
 Use './configure PKG_CONFIG=/full/name/of/pkg-config' if you need to.
@@ -70,9 +83,52 @@ so if you want to use it, you can always take a copy from an older Emacs.
 \f
 * Startup Changes in Emacs 25.1
 
++++
+** When Emacs is given a file as a command line argument and
+`initial-buffer-choice' is non-nil, display both the file and
+`initial-buffer-choice'.  When Emacs is given more than one file and
+`initial-buffer-choice' is non-nil, show `initial-buffer-choice'
+and *Buffer List*.  This makes Emacs convenient to use from the
+command line when `initial-buffer-choice' is non-nil.
+
 \f
 * Changes in Emacs 25.1
 
+** `xref-find-definitions' and `describe-function' now display
+   information about mode local overrides (defined by
+   cedet/mode-local.el `define-overloadable-function' and
+   `define-mode-local-overrides').
+
+** New `display-buffer' action function `display-buffer-use-some-frame'
+This displays the buffer in an existing frame other than the current
+frame, and allows the caller to specify a frame predicate to exclude
+frames.
+
+** New doc command `describe-symbol'.  Works for functions, vars, faces, etc...
+
+** `isearch' and `query-replace' now perform character folding in matches.
+This is analogous to case-folding, but applies between Unicode
+characters and their ASCII counterparts.  This means many characters
+will match entire groups of characters.
+
+For instance, the " will match all variants of unicode double quotes
+(like “ and ”), and the letter a will match all of its accented
+cousins, even those composed of multiple characters, as well as many
+other symbols like ℀, ℁, ⒜, and ⓐ.
+
+** New function `character-fold-to-regexp' can be used
+by searching commands to produce a regexp matching anything that
+character-folds into STRING.
+
+** New command `checkdoc-package-keywords' checks if the
+current package keywords are recognized.  Set the new option
+`checkdoc-package-keywords-flag' to non-nil to make
+`checkdoc-current-buffer' call this function automatically.
+
+** New function `checkdoc-file' checks for style errors.
+It's meant for use together with `compile':
+emacs -batch --eval "(checkdoc-file \"subr.el\")"
+
 ** New command `comment-line' bound to `C-x C-;'.
 
 ** New function `custom-prompt-customize-unsaved-options' checks for
@@ -226,6 +282,9 @@ successive char insertions.
 ** C-x 8 now has shorthands for these chars: ‐ ‑ ‒ – — ― ‘ ’ “ ” † ‡ • ′ ″
 € № ← → ↔ − ≈ ≠ ≤ ≥.  As before, you can type C-x 8 C-h to list shorthands.
 
+** New minor mode electric-quote-mode for quoting ‘like this’ and “like this”
+as you type.  See also the new variable ‘text-quoting-style’.
+
 ** New minor mode global-eldoc-mode is enabled by default.
 
 ** Emacs now supports "bracketed paste mode" when running on a terminal
@@ -238,10 +297,10 @@ performance improvements when pasting large amounts of text.
 ** Emacs now supports the latest version of the UBA.
 The Emacs implementation of the Unicode Bidirectional Algorithm (UBA)
 was updated to support all the latest additions and changes introduced
-in Unicode Standard versions 6.3 and 7.0, and a few changes suggested
-for Unicode 8.0.  This includes full support for directional isolates
-and the Bidirectional Parentheses Algorithm (BPA) specified by these
-Unicode standards.
+in Unicode Standard versions 6.3, 7.0, and the latest Unicode 8.0.
+This includes full support for directional isolates and the
+Bidirectional Parentheses Algorithm (BPA) specified by these Unicode
+standards.
 
 ** You can access `mouse-buffer-menu' (C-down-mouse-1) using C-f10.
 
@@ -251,13 +310,24 @@ Unicode standards.
 \f
 * Changes in Specialized Modes and Packages in Emacs 25.1
 
+** You can recompute the VC state of a file buffer with `M-x vc-refresh-state'
+** Prog mode has some support for multi-mode indentation.
+See `prog-indentation-context' and `prog-widen'.
+
+** Prettify Symbols mode supports custom composition predicates.  By
+overriding the default `prettify-symbols-compose-predicate', modes can
+specify in which contexts a symbol map be composed to some unicode
+character.  `prettify-symbols-default-compose-p' is the default which
+is suitable for most programming languages such as C or Lisp (but not
+(La)TeX).
+
 ** New `xterm-screen-extra-capabilities' config.
 
 ** The `save-place' variable is replaced by a `save-place-mode'.
 
 ** ERC
 
-*** Hide message types by network or channel. `erc-hide-list' will
+*** Hide message types by network or channel.  `erc-hide-list' will
 hide all messages of the specified type, where `erc-network-hide-list'
 and `erc-channel-hide-list' will only hide the specified message types
 for the respective specified targets.
@@ -292,9 +362,9 @@ always respect that.
 
 *** If a package is available on multiple archives and one has higher
 priority (as per `package-archive-priorities') only that one is
-listed. This can be configured with `package-menu-hide-low-priority'.
+listed.  This can be configured with `package-menu-hide-low-priority'.
 
-*** `package-menu-hide-obsolete' now toggles the hiding of packages.
+*** `package-menu-toggle-hiding' now toggles the hiding of packages.
 This includes the above-mentioned low-priority packages, as well as
 available packages whose version is lower than the currently installed
 version (which were previously impossible to display).
@@ -321,7 +391,7 @@ The FORCE argument to `package-delete' overrides this.
 
 *** New custom variable `package-selected-packages' tracks packages
 which were installed by the user (as opposed to installed as
-dependencies). This variable can also be manually customized.
+dependencies).  This variable can also be manually customized.
 
 *** New command `package-install-user-selected-packages' installs all
 packages from `package-selected-packages' which are currently missing.
@@ -359,6 +429,9 @@ If you need your objects to be named, do it by inheriting from `eieio-named'.
 *** New command `ido-bury-buffer-at-head' bound to C-S-b
 Bury the buffer at the head of `ido-matches', analogous to how C-k
 kills the buffer at head.
+*** A prefix argument to `ido-restrict-to-matches' will reverse its
+meaning, and the list is restricted to those elements that do not
+match the current input.
 
 ** Minibuffer
 
@@ -471,11 +544,19 @@ appending FUN to `minibuffer-setup-hook'.
 ** seq
 *** New seq library:
 The seq library adds sequence manipulation functions and macros that
-complement basic functions provided by subr.el. All functions are
+complement basic functions provided by subr.el.  All functions are
 prefixed with `seq-' and work on lists, strings and vectors.
 
+** map
+*** New map library:
+The map library provides map-manipulation functions that work on alists,
+hash-table and arrays.  All functions are prefixed with "map-".
+
 ** Calendar and diary
 
++++
+*** The default `diary-file' is now located in .emacs.d.
+
 +++
 *** New commands to insert diary entries with Chinese dates:
 `diary-chinese-insert-anniversary-entry' `diary-chinese-insert-entry'
@@ -489,6 +570,14 @@ See `diary-chinese-list-entries' and `diary-chinese-mark-entries'.
 *** The option `calendar-mode-line-format' can now be nil,
 which means to do nothing special with the mode line in calendars.
 
++++
+*** New option `calendar-weekend-days'.
+The option customizes which day headers receive the
+`calendar-weekend-header' face.
+
+---
+*** New optional args N and STRING for ‘holiday-greek-orthodox-easter’.
+
 ---
 *** Many items obsolete since at least version 23.1 have been removed.
 The majority were function/variable/face aliases, too numerous to list here.
@@ -566,6 +655,9 @@ plist will contain a :peer element that has the output of
 
 *** New connection method "nc", which allows to access dumb busyboxes.
 
+*** Method-specific parameters can be overwritten now with variable
+`tramp-connection-properties'.
+
 ** SQL mode
 
 *** New user variable `sql-default-directory' enables remote
@@ -611,17 +703,21 @@ non-integer inputs.
 interactive macro evaluation and automatic scanning of #defined symbols.
 
 *** New custom variable `hide-ifdef-header-regexp' to define C/C++ header file
-name patterns. Default case-insensitive .h, .hh, .hpp and .hxx.
+name patterns.  Default case-insensitive .h, .hh, .hpp, .hxx, and .h++.
 *** New custom variable `hide-ifdef-expand-reinclusion-protection' to prevent
 reinclusion protected header files from being fully hidden.
 *** New custom variable `hide-ifdef-exclude-define-regexp' to define symbol
-name patterns (e.x. all "FOR_DOXYGEN_ONLY_*") to be excluded.
+name patterns (e.g. all "FOR_DOXYGEN_ONLY_*") to be excluded.
 
 ** TeX mode
 
 *** New custom variable `tex-print-file-extension' to help users who
 use PDF instead of DVI.
 
+*** TeX mode now supports Prettify Symbols mode.  When enabling
+`prettify-symbols-mode' in a tex-mode buffer, \alpha ... \omega, and
+many other math macros are displayed using unicode characters.
+
 ** whitespace-mode: new 'big-indent style highlighting too much indentation.
 By default, 32 spaces and four TABs are considered to be too much but
 `whitespace-big-indent-regexp' can be configured to change that.
@@ -730,6 +826,8 @@ notifications, if Emacs is compiled with file notification support.
 ---
 *** gulp.el
 
+*** landmark.el (moved to elpa.gnu.org)
+
 +++
 ** The character classes [:graph:] and [:print:] in regular expressions
 no longer match every multibyte character.  Instead, Emacs now
@@ -741,6 +839,12 @@ use [:multibyte:] instead.
 \f
 * New Modes and Packages in Emacs 25.1
 
+** pinentry.el allows GnuPG passphrase to be prompted through the
+minibuffer instead of a graphical dialog, depending on whether the gpg
+command is called from Emacs (i.e., INSIDE_EMACS environment variable
+is set).  This feature requires newer versions of GnuPG (2.1.5 or
+later) and Pinentry (0.9.5 or later).
+
 ** cl-generic.el provides CLOS-style multiple-dispatch generic functions.
 
 ** scss-mode (a minor variant of css-mode)
@@ -756,8 +860,21 @@ a typographically-correct documents.
 \f
 * Incompatible Lisp Changes in Emacs 25.1
 
+** `:global' minor mode use `setq-default' rather than `setq'.
+This means that you can't use `make-local-variable' and expect them to
+"magically" become buffer-local.
+
 ** `inhibit-point-motion-hooks' now defaults to t and is obsolete.
 
++++
+** `track-mouse' no longer freezes the shape of the mouse pointer.
+The `track-mouse' form no longer refrains from changing the shape of
+the mouse pointer for the entire time the body of that form is
+executed.  Lisp programs that use `track-mouse' for dragging across
+large portions of the Emacs display, and want to avoid changes in the
+pointer shape during dragging, should bind the variable `track-mouse'
+to the special value `dragging' in the body of the form.
+
 ** The optional `predicate' argument of `lisp-complete-symbol' no longer
 has any effect.  (This change was made in Emacs 24.4 but was not
 advertised at the time.)
@@ -805,6 +922,28 @@ when signaling a file error.  For example, it now reports "Permission
 denied" instead of "permission denied".  The old behavior was problematic
 in languages like German where downcasing rules depend on grammar.
 
++++
+** New variable ‘text-quoting-style’ to control how Emacs translates quotes.
+Set it to ‘curve’ for curved single quotes ‘like this’, to ‘straight’
+for straight apostrophes 'like this', and to ‘grave’ for grave accent
+and apostrophe `like this'.  The default value nil acts like ‘curve’
+if curved single quotes are displayable, and like ‘grave’ otherwise.
+The new variable affects display of diagnostics and help, but not of info.
+
++++
+** substitute-command-keys now replaces quotes.
+That is, it converts documentation strings’ quoting style as per the
+value of ‘text-quoting-style’.  Doc strings in source code can use
+either curved single quotes or grave accents and apostrophes.  As
+before, characters preceded by \= are output as-is.
+
++++
+** Message-issuing functions ‘error’, ‘message’, etc. now convert quotes.
+They use the new ‘format-message’ function instead of plain ‘format’,
+so that they now follow user preference as per ‘text-quoting-style’
+when processing curved single quotes, grave accents, and apostrophes
+in their format argument.
+
 +++
 ** The character classes [:alpha:] and [:alnum:] in regular expressions
 now match multibyte characters using Unicode character properties.
@@ -815,9 +954,24 @@ word syntax, use `\sw' instead.
 ** The `diff' command uses the unified format now.  To restore the old
 behavior, set `diff-switches' to `-c'.
 
+** `grep-template' and `grep-find-template' values don't include the
+--color argument anymore.  It's added at the <C> place holder position
+dynamically.
+
+** `grep-template' and `grep-find-template' values don't include the
+--color argument anymore.  It's added at the <C> place holder position
+dynamically.  Any third-party code that changes these templates should
+be updated accordingly.
+
 \f
 * Lisp Changes in Emacs 25.1
 
+** New hooks prefix-command-echo-keystrokes-functions and
+prefix-command-preserve-state-hook, to allow the definition of prefix
+commands other than the predefined C-u.
+
+** New functions `filepos-to-bufferpos' and `bufferpos-to-filepos'.
+
 ** The default value of `load-read-function' is now `read'.
 
 ** New hook `pre-redisplay-functions', a bit easier to use than pre-redisplay-function.
@@ -851,7 +1005,7 @@ evaluated (and should return a string) when the closure is built.
 
 ** define-inline provides a new way to define inlinable functions.
 
-** New function macroexpand-1 to perform a single step of macroexpansion.
+** New function `macroexpand-1' to perform a single step of macroexpansion.
 
 ** Some "x-*" were obsoleted:
 *** x-select-text is renamed gui-select-text.
@@ -861,6 +1015,9 @@ evaluated (and should return a string) when the closure is built.
 *** x-get-selection-value is renamed to gui-get-primary-selection.
 *** x-set-selection is renamed to gui-set-selection
 
+** New function `string-greaterp', which return the opposite result of
+`string-lessp'.
+
 ** New function `alist-get', which is also a valid place (aka lvalue).
 
 ** New function `funcall-interactively', which works like `funcall'
@@ -902,9 +1059,40 @@ directory at point.
 *** New macros `thread-first' and `thread-last' allow threading a form
     as the first or last argument of subsequent forms.
 
++++
+** Documentation strings now support quoting with curved single quotes
+‘like-this’ in addition to the old style with grave accent and
+apostrophe `like-this'.  The new style looks better on today's displays.
+In the new Electric Quote mode, you can enter curved single quotes
+into documentation by typing ` and '.  Outside Electric Quote mode,
+you can enter them by typing ‘C-x 8 [’ and ‘C-x 8 ]’, or (if your Alt
+key works) by typing ‘A-[’ and ‘A-]’.  As described above under
+‘text-quoting-style’, the user can specify how to display doc string
+quotes.
+
++++
+** New function ‘format-message’ is like ‘format’ and also converts
+curved single quotes, grave accents and apostrophes as per
+‘text-quoting-style’.
+
++++
+** show-help-function's arg is converted via substitute-command-keys
+before being passed to the function.  Help strings, help-echo
+properties, etc. can therefore contain command key escapes and
+quotation marks.
+
 +++
 ** Time-related changes:
 
+*** Time conversion functions now accept an optional ZONE argument
+that specifies the time zone rules for conversion.  ZONE is omitted or
+nil for Emacs local time, t for Universal Time, ‘wall’ for system wall
+clock time, or a string as in ‘set-time-zone-rule’ for a time zone
+rule.  The affected functions are ‘current-time-string’,
+‘current-time-zone’, ‘decode-time’, and ‘format-time-string’.  The
+function ‘encode-time’, which already accepted a simple time zone rule
+argument, has been extended to accept all the new forms.
+
 *** Time-related functions now consistently accept numbers
 (representing seconds since the epoch) and nil (representing the
 current time) as well as the usual list-of-integer representation.
@@ -925,6 +1113,13 @@ integers.
 ** New function `set-binary-mode' allows to switch a standard stream
 of the Emacs process to binary I/O mode.
 
+** ASCII approximations to curved quotes are put in standard-display-table
+if the locale cannot display curved quotes, or if text-quoting-style
+initially specifies a preference for ASCII.
+
+** Standard output and error streams now transliterate characters via
+standard-display-table, and encode output using locale-coding-system.
+
 ** Miscellaneous name change
 
 For consistency with the usual Emacs spelling, the Lisp variable
@@ -957,6 +1152,29 @@ Horizontal scroll bars are turned off by default.
 *** New buffer-local variables `horizontal-scroll-bar' and
     `scroll-bar-height'.
 
++++
+** New functions `frame-geometry' and `frame-edges' give access to a
+frame's geometry.
+
++++
+** New functions `mouse-absolute-pixel-position' and
+`set-mouse-absolute-pixel-position' get/set screen coordinates of the
+mouse cursor.
+
++++
+** The function `window-edges' now accepts three additional arguments to
+retrieve body, absolute and pixel edges of the window.
+
++++
+** The functions `window-inside-edges', `window-inside-pixel-edges' and
+`window-inside-absolute-pixel-edges' have been renamed to respectively
+`window-body-edges', `window-body-pixel-edges' and
+`window-absolute-body-pixel-edges'.  The old names are kept as aliases.
+
++++
+** New function `window-absolute-pixel-position' to get the screen
+coordinates of a visible buffer position.
+
 +++
 ** The height of a frame's menu and tool bar are no longer counted in the
 frame's text height.  This means that the text height stands only for
@@ -981,17 +1199,49 @@ fullwidth frames, the behavior may depend on the toolkit used.
 windows without "fixing" it.  It's supported by `fit-window-to-buffer',
 `temp-buffer-resize-mode' and `display-buffer'.
 
++++
+** New minor mode `window-divider-mode' and options
+`window-divider-default-places', `window-divider-default-bottom-width'
+and `window-divider-default-right-width'.
+
 +++
 ** New option `switch-to-buffer-in-dedicated-window' allows to customize
 how `switch-to-buffer' proceeds interactively when the selected window
 is strongly dedicated to its buffer.
 
++++
+** The option `even-window-heights' has been renamed to
+`even-window-sizes' and now handles window widths as well.
+
 ** Tearoff menus and detachable toolbars for Gtk+ has been removed.
 Those features have been deprecated in Gtk+ for a long time.
 
+** Miscellaneous
+
+*** etags no longer qualifies class members by default.
+By default, `etags' will not qualify class members for C-like
+object-oriented languages with their class names and namespaces, and
+will remove qualifications used explicitly in the code from the tag
+names it puts in TAGS files.  This is so the etags.el back-end for
+`xref-find-definitions' is more accurate and produces less false
+positives.
+
+Use --class-qualify (-Q) if you want the old default behavior of
+qualifying class members in C++, Java, and Objective C.  Note that
+using -Q might make some class members become "unknown" to `M-.'
+(`xref-find-definitions'); if so, you can use `C-u M-.' to specify the
+qualified names by hand.
+
 \f
 * Changes in Emacs 25.1 on Non-Free Operating Systems
 
+---
+** MS-Windows specific Emacs build scripts are no longer in the distribution
+This includes the makefile.w32-in files in various subdirectories, and
+the support files.  The file nt/configure.bat now just tells the user
+to use the procedure described in nt/INSTALL, by running the Posix
+`configure' script in the top-level directory.
+
 ---
 ** Building Emacs for MS-Windows requires at least Windows XP
 or Windows Server 2003.  The built binaries still run on all versions
@@ -1003,10 +1253,18 @@ of Windows starting with Windows 9X.
 ** The byte counts in etags-generated TAGS files are now the same on
 MS-Windows as they are on other platforms.
 
+---
+** On OS X, configure creates a Cocoa ("Nextstep") build by default.
+Pass '--without-ns' to configure to create an X11 build, the old default.
+
 ** OS X 10.5 or older is no longer supported.
 
 ** OS X on PowerPC is no longer supported.
 
+---
+** The new function 'w32-application-type' returns the type of an
+MS-Windows application given the name of its executable program file.
+
 \f
 ----------------------------------------------------------------------
 This file is part of GNU Emacs.