]> code.delx.au - gnu-emacs/blob - etc/NEWS
* doc/lispref/variables.texi (Directory Local Variables):
[gnu-emacs] / etc / NEWS
1 GNU Emacs NEWS -- history of user-visible changes.
2
3 Copyright (C) 2014-2015 Free Software Foundation, Inc.
4 See the end of the file for license conditions.
5
6 Please send Emacs bug reports to bug-gnu-emacs@gnu.org.
7 If possible, use M-x report-emacs-bug.
8
9 This file is about changes in Emacs version 25.
10
11 See file HISTORY for a list of GNU Emacs versions and release dates.
12 See files NEWS.24, NEWS.23, NEWS.22, NEWS.21, NEWS.20, NEWS.19, NEWS.18,
13 and NEWS.1-17 for changes in older Emacs versions.
14
15 You can narrow news to a specific version by calling `view-emacs-news'
16 with a prefix argument or by typing C-u C-h C-n.
17
18 Temporary note:
19 +++ indicates that all necessary documentation updates are complete.
20 (This means all relevant manuals in doc/ AND lisp doc-strings.)
21 --- means no change in the manuals is needed.
22 When you add a new item, use the appropriate mark if you are sure it applies,
23 otherwise leave it unmarked.
24
25 \f
26 * Installation Changes in Emacs 25.1
27
28 +++
29 ** Building Emacs now requires C99 or later.
30
31 ** Building Emacs now requires GNU make, version 3.81 or later.
32
33 ** New configure option --with-cairo.
34 Maybe add text based on http://lists.gnu.org/archive/html/emacs-devel/2015-05/msg00689.html
35
36 ** By default, Emacs no longer works on IRIX. We expect that Emacs
37 users are not affected by this, as SGI stopped supporting IRIX in
38 December 2013. If you are affected, please send a bug report. You
39 should be able to work around the problem either by porting the Emacs
40 undumping code to GCC under IRIX, or by configuring --with-wide-int,
41 or by sticking with Emacs 24.4.
42
43 ** The Emacs garbage collector assumes GC_MARK_STACK == GC_MAKE_GCPROS_NOOPS.
44 The GC_MAKE_GCPROS_NOOPS stack-marking variant has been the default
45 since Emacs 24.4, and the other variants were undocumented and were
46 obstacles to maintenance and development. GC_MARK_STACK and its
47 related symbols have been removed from the C internals.
48
49 ** 'configure' now prefers gnustep-config when configuring GNUstep.
50 If gnustep-config is not available, the old heuristics are used.
51
52 ---
53 ** 'configure' now prefers inotify to gfile for file notification,
54 unless gfile is explicitly requested via --with-file-notification='gfile'.
55
56 ---
57 ** The configure option '--with-pkg-config-prog' has been removed.
58 Use './configure PKG_CONFIG=/full/name/of/pkg-config' if you need to.
59
60 ---
61 ** The configure option '--with-mmdf' has been removed.
62 It was no longer useful, as it relied on libraries that are no longer
63 supported, and its presence led to confusion during configuration.
64 This affects only the 'movemail' utility; Emacs itself can still
65 process MMDF-format files as before.
66
67 ** The configure option '--enable-silent-rules' is now the default,
68 and silent rules are now quieter. To get the old behavior where
69 'make' chatters a lot, configure with '--disable-silent-rules' or
70 build with 'make V=1'.
71
72 ---
73 ** The configure option '--with-gameuser' now allows to specify a
74 group instead of a user if its argument is prefixed by ':' (a colon).
75 This will cause the game score files in ${localstatedir}/games/emacs
76 to be owned by that group, and the helper program for updating them to
77 be installed setgid. The option now defaults to the 'games' group.
78
79 ---
80 ** The `grep-changelog' script (and its manual page) are no longer included.
81 It has no particular connection to Emacs and has not changed in years,
82 so if you want to use it, you can always take a copy from an older Emacs.
83
84 ** Emacs 25 comes with a new set of icons.
85 Various resolutions are available as etc/images/icons/hicolor/*/apps/emacs.png.
86 The old Emacs logo icons are available as `emacs23.png' in the same location.
87
88 \f
89 * Startup Changes in Emacs 25.1
90
91 +++
92 ** When Emacs is given a file as a command line argument and
93 `initial-buffer-choice' is non-nil, display both the file and
94 `initial-buffer-choice'. When Emacs is given more than one file and
95 `initial-buffer-choice' is non-nil, show `initial-buffer-choice'
96 and *Buffer List*. This makes Emacs convenient to use from the
97 command line when `initial-buffer-choice' is non-nil.
98
99 +++
100 ** The value of ‘initial-scratch-message’ is now treated as a doc string
101 and can contain escape sequences for command keys, quotes, and the like.
102
103 \f
104 * Changes in Emacs 25.1
105
106 ** Any file of the form .dir-locals*.el is now considered a dir-local
107 file, and multiple can be used in the same directory. See the
108 variable `dir-locals-file' for more information.
109 ** `xref-find-definitions' and `describe-function' now display
110 information about mode local overrides (defined by
111 cedet/mode-local.el `define-overloadable-function' and
112 `define-mode-local-overrides').
113
114 ** New `display-buffer' action function `display-buffer-use-some-frame'
115 This displays the buffer in an existing frame other than the current
116 frame, and allows the caller to specify a frame predicate to exclude
117 frames.
118
119 ** New doc command `describe-symbol'. Works for functions, vars, faces, etc...
120
121 ** New user option `search-default-regexp-mode' specifies the default mode for isearch
122
123 ** `isearch' and `query-replace' now perform character folding in matches.
124 This is analogous to case-folding, but applies between Unicode
125 characters and their ASCII counterparts. This means many characters
126 will match entire groups of characters.
127
128 For instance, the " will match all variants of unicode double quotes
129 (like “ and ”), and the letter a will match all of its accented
130 cousins, even those composed of multiple characters, as well as many
131 other symbols like ℀, ℁, ⒜, and ⓐ.
132
133 ** New function `character-fold-to-regexp' can be used
134 by searching commands to produce a regexp matching anything that
135 character-folds into STRING.
136
137 ** New command `checkdoc-package-keywords' checks if the
138 current package keywords are recognized. Set the new option
139 `checkdoc-package-keywords-flag' to non-nil to make
140 `checkdoc-current-buffer' call this function automatically.
141
142 ** New function `checkdoc-file' checks for style errors.
143 It's meant for use together with `compile':
144 emacs -batch --eval "(checkdoc-file \"subr.el\")"
145
146 ** New command `comment-line' bound to `C-x C-;'.
147
148 ** New function `custom-prompt-customize-unsaved-options' checks for
149 unsaved customizations and prompts user to customize (if found).
150
151 +++
152 ** Network security (TLS/SSL certificate validity and the like) is
153 added via the new Network Security Manager (NSM) and controlled via
154 the `network-security-level' variable.
155
156 ** C-h l now also lists the commands that were run.
157
158 ---
159 ** The new M-s M-w key binding uses eww to search the web for the
160 text in the region.
161
162 ** M-x suggests shorthands and ignores obsolete commands for completion.
163 ** x-select-enable-clipboard is renamed select-enable-clipboard.
164 x-select-enable-primary and renamed select-enable-primary.
165 Additionally they both now apply to all systems (OSX, GNUstep, Windows, you
166 name it), with the proviso that on some systems (e.g. Windows)
167 select-enable-primary is ineffective since the system doesn't
168 have the equivalent of a primary selection.
169
170 +++
171 ** terpri gets an optional arg ENSURE to conditionally output a newline.
172
173 +++
174 ** New macro `define-advice'.
175
176 ** `insert-register' now leaves point after the inserted text
177 when called interactively. A prefix argument toggles this behavior.
178
179 ** New var `truncate-string-ellipsis' to choose how to indicate truncation.
180
181 +++
182 ** The new variable `term-file-aliases' replaces some files from lisp/term.
183 The function `tty-run-terminal-initialization' consults this variable
184 when deciding what terminal-specific initialization code to run.
185
186 ---
187 ** New variable `system-configuration-features', listing some of the
188 main features that Emacs was compiled with. This is mainly intended
189 for use in Emacs bug reports.
190
191 +++
192 ** A password is now hidden also when typed in batch mode. Another
193 hiding character but the default `.' can be used by let-binding the
194 variable `read-hide-char'.
195
196 ** The new functions `string-collate-lessp' and `string-collate-equalp'
197 preserve the collation order as defined by the system's locale(1)
198 environment. For the time being this is implemented for modern POSIX
199 systems and for MS-Windows, for other systems they fall back to their
200 counterparts `string-lessp' and `string-equal'.
201
202 *** The ls-lisp package uses `string-collate-lessp' to sort file names.
203 If you want the old, locale-independent sorting, customize the new
204 option `ls-lisp-use-string-collate' to a nil value.
205
206 *** The MS-Windows specific variable `w32-collate-ignore-punctuation',
207 if set to a non-nil value, causes the above 2 functions to ignore
208 symbol and punctuation characters when collating strings. This
209 emulates the behavior of modern Posix platforms when the locale's
210 codeset is "UTF-8" (as in "en_US.UTF-8"). This is needed because
211 MS-Windows doesn't support UTF-8 as codeset in its locales.
212
213 +++
214 ** The new function `bidi-find-overridden-directionality' allows to
215 find characters whose directionality was, perhaps maliciously,
216 overridden by directional override control characters. Lisp programs
217 can use this to detect potential phishing of URLs and other links that
218 exploits bidirectional display reordering.
219
220 +++
221 ** The new function `buffer-substring-with-bidi-context' allows to
222 copy a portion of a buffer into a different location while preserving
223 the visual appearance both of the copied text and the text at
224 destination, even when the copied text includes mixed bidirectional
225 text and directional control characters.
226
227 ** New variable `ns-use-fullscreen-animation' controls animation for
228 non-native NS fullscreen. The default is nil. Set to t to enable
229 animation when entering and leaving fullscreen. For native OSX fullscreen
230 this has no effect.
231
232 ** A new text property `inhibit-read-only' can be used in read-only
233 buffers to allow certain parts of the text to be writable.
234
235 ** A new function `directory-files-recursively' returns all matching
236 files (recursively) under a directory.
237
238 ** The new function `directory-name-p' can be used to check whether a file
239 name (as returned from, for instance, `file-name-all-completions' is
240 a directory file name. It returns non-nil if the last character in
241 the name is a forward slash.
242
243 +++
244 ** New variable `fast-but-imprecise-scrolling' inhibits
245 fontification during full screen scrolling operations, giving less
246 hesitant operation during auto-repeat of C-v, M-v at the cost of
247 possible inaccuracies in the end position.
248
249 ** The function `font-info' now returns more details about a font.
250 In particular, it now returns the average width of the font's
251 characters, which can be used for geometry-related calculations.
252
253 ** A new function `default-font-width' returns the average width of a
254 character in the current buffer's default font. If the default face
255 is remapped (see `face-remapping-alist'), the value for the remapped
256 face is returned. This function complements the existing function
257 `default-font-height'.
258
259 ** New functions `window-font-height' and `window-font-width' return
260 the height and average width of characters in a specified face and
261 window. If FACE is remapped (see `face-remapping-alist'), the
262 function returns the information for the remapped face.
263
264 ** A new function `window-max-chars-per-line' returns the maximal
265 number of characters that can be displayed on one line. If a face
266 and/or window are provided, these values are used for the
267 calculation. This function is different from `window-body-width' in
268 that it accounts for (i) continuation glyphs, (ii) the size of the
269 font, and (iii) the specified window.
270
271 ** New possible value for `system-type': nacl.
272
273 +++
274 ** New variable `inhibit-message', when bound to non-nil, inhibits
275 `message' and related functions from displaying messages the Echo
276 Area. The output is still logged to the *Messages* buffer.
277
278 +++
279 ** It is now safe for a mode that derives `tabulated-list-mode' to not
280 call `tabulated-list-init-header', in which case it will have no
281 header.
282
283 +++
284 ** `tabulated-list-print' takes a second optional argument, update,
285 which specifies an alternative printing method which is faster when
286 few or no entries have changed.
287
288 \f
289 * Editing Changes in Emacs 25.1
290
291 ** Successive single-char deletions are collapsed in the undo-log just like
292 successive char insertions.
293
294 ** Unicode names entered via C-x 8 RET now use substring completion by default.
295
296 ** C-x 8 now has shorthands for these chars: ‐ ‑ ‒ – — ― ‘ ’ “ ” † ‡ • ′ ″
297 € № ← → ↔ − ≈ ≠ ≤ ≥. As before, you can type C-x 8 C-h to list shorthands.
298
299 ** New minor mode electric-quote-mode for quoting ‘like this’ and “like this”
300 as you type. See also the new variable ‘text-quoting-style’.
301
302 ** New minor mode global-eldoc-mode is enabled by default.
303
304 ** Emacs now supports "bracketed paste mode" when running on a terminal
305 that supports it. This facility allows Emacs to understand pasted
306 chunks of text as strings to be inserted, instead of interpreting each
307 character in the pasted text as actual user input. This results in a
308 paste experience similar to that under a window system, and significant
309 performance improvements when pasting large amounts of text.
310
311 ** Emacs now supports the latest version of the UBA.
312 The Emacs implementation of the Unicode Bidirectional Algorithm (UBA)
313 was updated to support all the latest additions and changes introduced
314 in Unicode Standard versions 6.3, 7.0, and the latest Unicode 8.0.
315 This includes full support for directional isolates and the
316 Bidirectional Parentheses Algorithm (BPA) specified by these Unicode
317 standards.
318
319 ** You can access `mouse-buffer-menu' (C-down-mouse-1) using C-f10.
320
321 +++
322 ** New buffer-local `electric-pair-local-mode'.
323
324 \f
325 * Changes in Specialized Modes and Packages in Emacs 25.1
326
327 ** New function `bookmark-set-no-overwrite' bound to C-x r M.
328 It raises an error if a bookmark of that name already exists,
329 unlike `bookmark-set' which silently updates an existing bookmark.
330
331 ** JSON
332 ---
333 *** `json-pretty-print' and `json-pretty-print-buffer' now maintain
334 the ordering of object keys by default.
335
336 ** You can recompute the VC state of a file buffer with `M-x vc-refresh-state'
337 ** Prog mode has some support for multi-mode indentation.
338 See `prog-indentation-context' and `prog-widen'.
339
340 ** Prettify Symbols mode
341 *** Prettify Symbols mode supports custom composition predicates. By
342 overriding the default `prettify-symbols-compose-predicate', modes can
343 specify in which contexts a symbol map be composed to some unicode
344 character. `prettify-symbols-default-compose-p' is the default which
345 is suitable for most programming languages such as C or Lisp (but not
346 (La)TeX).
347
348 *** Symbols can be unprettified while point is inside them.
349 New variable `prettify-symbols-unprettify-at-point' configures this.
350
351 ** New `xterm-screen-extra-capabilities' config.
352
353 ** The `save-place' variable is replaced by a `save-place-mode'.
354
355 ** ERC
356
357 *** Hide message types by network or channel. `erc-hide-list' will
358 hide all messages of the specified type, where `erc-network-hide-list'
359 and `erc-channel-hide-list' will only hide the specified message types
360 for the respective specified targets.
361
362 ** Midnight-mode
363 *** `midnight-mode' is a proper minor mode.
364 *** clean-buffer-*-regexps can now specify buffers via predicate functions.
365
366 ** In xterms, killing text now also sets the CLIPBOARD/PRIMARY selection
367 in the surrounding GUI (using the OSC-52 escape sequence). This only works
368 if your xterm supports it and enables the `allowWindowOps' options (disabled
369 by default at least in Debian, for security reasons).
370
371 Similarly, you can yank the CLIPBOARD/PRIMARY selection (using the OSC-52
372 escape sequence) if your xterm has the feature enabled but for that you
373 additionally need to add `getSelection' to `xterm-extra-capabilities'.
374
375 ** xterm-mouse-mode now supports mouse-tracking (if your xterm supports it).
376
377 ** package.el
378
379 *** New "external" package status.
380 An external package is any installed package that's not built-in and
381 not from `package-user-dir', which usually means it's from an entry in
382 `package-directory-list'. They are treated much like built-in
383 packages, in that they cannot be deleted through the package menu and
384 are not considered for upgrades.
385
386 The effect, is that a user can manually place a specific version of a
387 package inside `package-directory-list' and the package menu will
388 always respect that.
389
390 *** If a package is available on multiple archives and one has higher
391 priority (as per `package-archive-priorities') only that one is
392 listed. This can be configured with `package-menu-hide-low-priority'.
393
394 *** `package-menu-toggle-hiding' now toggles the hiding of packages.
395 This includes the above-mentioned low-priority packages, as well as
396 available packages whose version is lower than the currently installed
397 version (which were previously impossible to display).
398 This allows users to downgrade a package if a lower version is
399 available.
400
401 *** When filtering the package menu, keywords starting with "arc:" or
402 "status:" represent package archive or status, respectively, instead
403 of actual keywords.
404
405 *** Most functions which involve downloading information now take an
406 ASYNC argument. If it is non-nil, package.el performs the download(s)
407 asynchronously.
408
409 *** New variable `package-menu-async' controls whether the
410 package-menu uses asynchronous downloads.
411
412 *** `package-install-from-buffer' and `package-install-file' work on directories.
413 This follows the same rules as installing from a .tar file, except the
414 -pkg file is optional.
415
416 *** Packages which are dependencies of other packages cannot be deleted.
417 The FORCE argument to `package-delete' overrides this.
418
419 *** New custom variable `package-selected-packages' tracks packages
420 which were installed by the user (as opposed to installed as
421 dependencies). This variable can also be manually customized.
422
423 *** New command `package-install-user-selected-packages' installs all
424 packages from `package-selected-packages' which are currently missing.
425
426 *** New command `package-autoremove' removes all packages which were
427 installed strictly as dependencies but are no longer needed.
428
429 ** Shell
430
431 When you invoke `shell' interactively, the *shell* buffer will now
432 display in a new window. However, you can customize this behavior via
433 the `display-buffer-alist' variable. For example, to get
434 the old behavior -- *shell* buffer displays in current window -- use
435 (add-to-list 'display-buffer-alist
436 '("^\\*shell\\*$" . (display-buffer-same-window))).
437
438 ** EIEIO
439 +++
440 *** The `:protection' slot option is not obeyed any more.
441 +++
442 *** The `newname' argument to constructors is optional&deprecated.
443 If you need your objects to be named, do it by inheriting from `eieio-named'.
444 +++
445 *** The <class>-list-p and <class>-child-p functions are declared obsolete.
446 +++
447 *** The <class> variables are declared obsolete.
448 +++
449 *** The <initarg> variables are declared obsolete.
450 *** defgeneric and defmethod are declared obsolete.
451 +++
452 *** `constructor' is now an obsolete alias for `make-instance'.
453
454 ** ido
455 *** New command `ido-bury-buffer-at-head' bound to C-S-b
456 Bury the buffer at the head of `ido-matches', analogous to how C-k
457 kills the buffer at head.
458 *** A prefix argument to `ido-restrict-to-matches' will reverse its
459 meaning, and the list is restricted to those elements that do not
460 match the current input.
461
462 ** Minibuffer
463
464 *** You can use <up> and <down> keys to move point in the multi-line
465 minibuffer just as in an ordinary buffer. Only when point moves over
466 the bottom/top of the minibuffer it goes to the next/previous history
467 element. The new commands bound to <up> and <down> in the minibuffer:
468 `next-line-or-history-element' and `previous-line-or-history-element'.
469
470 ** Search and Replace
471
472 *** Query-replace history is enhanced.
473 When query-replace reads the FROM string from the minibuffer, typing
474 `M-p' will now show previous replacements as "FROM SEP TO", where FROM
475 and TO are the original text and its replacement, and SEP is an arrow
476 string defined by the new variable `query-replace-from-to-separator'.
477 To select a prior replacement, type `M-p' until the desired
478 replacement appears in the minibuffer, and then exit the minibuffer by
479 typing RET.
480
481 ** Calc
482 +++
483 *** If `quick-calc' is called with a prefix argument, insert the
484 result of the calculation into the current buffer.
485
486 +++
487 ** In Edebug, you can now set the initial mode with C-x C-a C-m. With
488 this you can tell Edebug not to stop at the start of the first
489 instrumented function.
490
491 ** ElDoc
492 *** New minor mode `global-eldoc-mode'
493 *** `eldoc-documentation-function' now defaults to `ignore'
494 *** `describe-char-eldoc' displays information about character at point,
495 and can be used as a default value of `eldoc-documentation-function'. It is
496 useful when, for example, one needs to distinguish various spaces (e.g. ] [,
497 ] [, ] [, etc.) while using mono-spaced font.
498
499 ** eww
500
501 ---
502 *** HTML can now be rendered using variable-width fonts.
503
504 +++
505 *** A new command `F' (`eww-toggle-fonts') can be used to toggle
506 whether to use variable-pitch fonts or not. The user can also
507 customize the `shr-use-fonts' variable.
508
509 +++
510 *** A new command `R' (`eww-readable') will try do identify the main
511 textual parts of a web page and display only that, leaving menus and
512 the like off the page.
513
514 ---
515 *** You can now use several eww buffers in parallel by renaming eww
516 buffers you want to keep separate.
517
518 +++
519 *** Partial state of the eww buffers (the URIs and the titles of the
520 pages visited) is now preserved in the desktop file.
521
522 +++
523 *** `eww-after-render-hook' is now called after eww has rendered
524 the data in the buffer.
525
526 ---
527 *** The `eww-reload' command now takes a prefix to not reload via
528 the net, but just use the local copy of the HTML.
529
530 +++
531 *** The DOM shr and eww uses has been changed to the general Emacs
532 xml.el/libxml2 DOM, and a new package dom.el has been added to
533 interact with this DOM. See the Emacs Lisp manual for interface
534 details.
535
536 +++
537 *** `mailcap-mime-data' is now consulted when displaying PDF files.
538
539 +++
540 *** The new `S' command will list all eww buffers, and allow managing
541 them.
542
543 ---
544 *** https pages with valid certificates have headers marked in green, while
545 invalid certificates are marked in red.
546
547 ** Message mode
548
549 *** text/html messages that contain inline image parts will be
550 transformed into multipart/related messages before sending.
551
552 ** pcase
553 *** New UPatterns `quote', `app', `cl-struct', and `eieio'.
554 *** New UPatterns can be defined with `pcase-defmacro'.
555 +++
556 *** New vector QPattern.
557
558 ** Lisp mode
559 *** Strings after `:documentation' are highlighted as docstrings.
560
561 ** Rectangle editing
562 *** Rectangle Mark mode can have corners past EOL or in the middle of a TAB.
563 *** C-x C-x in rectangle-mark-mode now cycles through the four corners.
564 *** `string-rectangle' provides on-the-fly preview of the result.
565
566 ** New font-lock functions font-lock-ensure and font-lock-flush, which
567 should be used instead of font-lock-fontify-buffer when called from Elisp.
568
569 ** Macro `minibuffer-with-setup-hook' takes (:append FUN) to mean
570 appending FUN to `minibuffer-setup-hook'.
571
572 ** cl-lib
573 *** New functions cl-fresh-line, cl-digit-char-p and cl-parse-integer.
574
575 ** Calendar and diary
576
577 +++
578 *** The default `diary-file' is now located in .emacs.d.
579
580 +++
581 *** New commands to insert diary entries with Chinese dates:
582 `diary-chinese-insert-anniversary-entry' `diary-chinese-insert-entry'
583 `diary-chinese-insert-monthly-entry', `diary-chinese-insert-yearly-entry'.
584
585 +++
586 *** The calendar can now list and mark diary entries with Chinese dates.
587 See `diary-chinese-list-entries' and `diary-chinese-mark-entries'.
588
589 ---
590 *** The option `calendar-mode-line-format' can now be nil,
591 which means to do nothing special with the mode line in calendars.
592
593 +++
594 *** New option `calendar-weekend-days'.
595 The option customizes which day headers receive the
596 `calendar-weekend-header' face.
597
598 ---
599 *** New optional args N and STRING for ‘holiday-greek-orthodox-easter’.
600
601 ---
602 *** Many items obsolete since at least version 23.1 have been removed.
603 The majority were function/variable/face aliases, too numerous to list here.
604 The remainder were:
605
606 **** Functions `calendar-one-frame-setup', `calendar-only-one-frame-setup',
607 `calendar-two-frame-setup', `european-calendar', `american-calendar'.
608
609 **** Hooks `cal-menu-load-hook', `cal-x-load-hook'.
610
611 **** Macro `calendar-for-loop'.
612
613 **** Variables `european-calendar-style', `diary-face', `hebrew-holidays-{1,4}'.
614
615 **** The nil and list forms of `diary-display-function'.
616
617 ** New ERT function `ert-summarize-tests-batch-and-exit'.
618
619 ** New js.el option `js-indent-first-init'.
620
621 ---
622 ** `Info-fontify-maximum-menu-size' can be t for no limit.
623
624 +++
625 ** `info-display-manual' can now be given a prefix argument which (any
626 non-nil value) directs the command to limit the completion
627 alternatives to currently visited manuals.
628
629 ---
630 ** ntlm.el has support for NTLM2.
631
632 ** Rmail
633
634 *** The Rmail commands d, C-d and u take optional repeat counts to delete or
635 undelete multiple messages.
636
637 *** Rmail can now render HTML mail messages if your Emacs was built with
638 libxml2 or if you have the Lynx browser installed. By default, Rmail
639 will display the HTML version of a mail message that has both HTML and
640 plain text parts, if display of HTML email is possible; customize the
641 `rmail-mime-prefer-html' option to `nil' if you don't want that.
642
643 +++
644 *** In the commands that make summaries by subject, recipients, or senders,
645 you can no longer use commas to separate regular expressions.
646
647 ** SES now supports local printer functions; see `ses-define-local-printer'.
648
649 ** sh-script
650 *** In sh-mode you can now use `sh-shell' as a file-local variable to
651 specify the type of shell in use (bash, csh, etc).
652
653 *** New value `always' for sh-indent-after-continuation.
654 This provides old-style ("dumb") indentation of continued lines.
655
656 ** TLS
657 ---
658 *** Fatal TLS errors are now silent by default.
659
660 ** URL
661
662 *** The URL package accepts now the protocols "ssh", "scp" and "rsync".
663 When `url-handler-mode' is enabled, file operations for these
664 protocols as well as for "telnet" and "ftp" are passed to Tramp.
665
666 *** The URL package allows customizing the `url-user-agent' string.
667 The new `url-user-agent' variable can be customized to be a string or
668 a function.
669
670 *** The new interface variable `url-request-noninteractive' can be used
671 to specify that we're running in a noninteractive context, and that
672 we should not be queried about things like TLS certificate validity.
673
674 *** If URL is used with a https connection, the first callback argument
675 plist will contain a :peer element that has the output of
676 `gnutls-peer-status' (if Emacs is built with GnuTLS support).
677
678 ** Tramp
679
680 +++
681 *** New connection method "afp", which allows to access Mac OS X
682 volumes via the Apple Filing Protocol.
683
684 +++
685 *** New connection method "nc", which allows to access dumb busyboxes.
686
687 +++
688 *** Method-specific parameters can be overwritten now with variable
689 `tramp-connection-properties'.
690
691 ---
692 *** Handler for `file-notify-valid-p' for remote machines that support
693 filesystem notifications.
694
695 ** SQL mode
696
697 *** New user variable `sql-default-directory' enables remote
698 connections using Tramp.
699
700 *** New command `sql-send-line-and-next' sends the current line to the
701 interactive buffer and advances to the next line, skipping whitespace
702 and comments.
703
704 *** Add support for Vertica SQL.
705
706 ** VC and related modes
707
708 *** Basic push support, via `vc-push', bound to `C-x v P'.
709 Implemented for Bzr, Git, Hg. As part of this change, the pre-existing
710 (undocumented) command vc-hg-push now behaves slightly differently.
711
712 *** The new command vc-region-history shows the log+diff of the active region.
713
714 *** New option `vc-annotate-background-mode' controls whether
715 the color range from `vc-annotate-color-map' is applied to the
716 background or to the foreground.
717
718 *** `compare-windows' now compares text with the most recently used window
719 instead of the next window. The new option `compare-windows-get-window-function'
720 allows to customize this.
721
722 *** Two new faces `compare-windows-removed' and `compare-windows-added'
723 replace the obsolete face `compare-windows'.
724
725 ---
726 *** `log-edit-insert-changelog' converts "(tiny change)" to
727 "Copyright-paperwork-exempt: yes". Set `log-edit-rewrite-tiny-change'
728 nil to disable this.
729
730 ** VHDL mode supports VHDL'08.
731
732 ** Calculator: decimal display mode uses "," groups, so it's more
733 fitting for use in money calculations; factorial works with
734 non-integer inputs.
735
736 ** HideIfDef mode now support full C/C++ expressions, argumented macro expansions,
737 interactive macro evaluation and automatic scanning of #defined symbols.
738
739 *** New custom variable `hide-ifdef-header-regexp' to define C/C++ header file
740 name patterns. Default case-insensitive .h, .hh, .hpp, .hxx, and .h++.
741 *** New custom variable `hide-ifdef-expand-reinclusion-protection' to prevent
742 reinclusion protected header files from being fully hidden.
743 *** New custom variable `hide-ifdef-exclude-define-regexp' to define symbol
744 name patterns (e.g. all "FOR_DOXYGEN_ONLY_*") to be excluded.
745
746 ** TeX mode
747
748 *** New custom variable `tex-print-file-extension' to help users who
749 use PDF instead of DVI.
750
751 *** TeX mode now supports Prettify Symbols mode. When enabling
752 `prettify-symbols-mode' in a tex-mode buffer, \alpha ... \omega, and
753 many other math macros are displayed using unicode characters.
754
755 ** whitespace-mode: new 'big-indent style highlighting too much indentation.
756 By default, 32 spaces and four TABs are considered to be too much but
757 `whitespace-big-indent-regexp' can be configured to change that.
758
759 ** tildify: `tildify-space-string', `tildify-pattern', and
760 `tildify-foreach-region-function' variables added making
761 `tildify-string-alist', `tildify-pattern-alist', and
762 `tildify-ignored-environments-alist' variables (as well as a few
763 helper functions) obsolete.
764
765 ** xref
766 The new package provides generic framework and new commands to find
767 and move to definitions, as well as pop back to the original location.
768
769 *** New key bindings
770 `xref-find-definitions' replaces `find-tag' and provides an interface
771 to pick one destination among several. Hence, `tags-loop-continue' is
772 unbound. `xref-pop-marker-stack' replaces `pop-tag-mark', but uses an
773 easier binding, which is now unoccupied (`M-,').
774 `xref-find-definitions-other-window' replaces `find-tag-other-window'.
775 `xref-find-definitions-other-frame' replaces `find-tag-other-frame'.
776 `xref-find-apropos' replaces `find-tag-regexp'.
777
778 *** New variables
779 `find-tag-marker-ring-length' is now an obsolete alias for
780 `xref-marker-ring-length'. `find-tag-marker-ring' is now an obsolete
781 alias for a private variable. `xref-push-marker-stack' and
782 `xref-pop-marker-stack' should be used to mutate it instead.
783
784 ** etags
785 As a result of the above, these commands are now obsolete:
786 `find-tag-other-window', `find-tag-other-frame', `find-tag-regexp',
787 `tags-apropos' and `tags-loop-continue'.
788
789 ** EUDC
790 EUDC's LDAP backend has been improved.
791
792 *** EUDC supports LDAP-over-SSL URLs (ldaps://).
793
794 *** EUDC passes LDAP passwords through a pipe to the ldapsearch
795 subprocess instead of on the command line.
796
797 *** EUDC handles LDAP wildcards automatically so the user shouldn't
798 need to configure this manually anymore.
799
800 *** The LDAP configuration section of EUDC's manual has been
801 rewritten.
802
803 There have also been customization changes.
804
805 *** New custom variable `eudc-server-hotlist' to allow specifying
806 multiple EUDC servers in init file.
807
808 *** Custom variable `eudc-inline-query-format' defaults to completing
809 on email and firstname instead of surname.
810
811 *** Custom variable `eudc-expansion-overwrites-query' defaults to nil
812 to avoid interfering with the kill ring.
813
814 *** Custom variable `eudc-inline-expansion-format' defaults to
815 "Firstname Surname <mail-address>".
816
817 *** Custom variable `eudc-options-file' defaults to
818 "~/.emacs.d/eudc-options".
819
820 *** New custom variable `ldap-ldapsearch-password-prompt-regexp' to
821 allow overriding the regular expression that recognizes the ldapsearch
822 command line's password prompt.
823
824 ** Eshell
825
826 +++
827 *** The new built-in command `clear' can scroll window contents out of sight.
828 If provided with an optional non-nil argument, the scrollback contents will be cleared.
829
830 *** New buffer syntax '#<buffer-name>', which is equivalent to
831 '#<buffer buffer-name>'. This shorthand makes interacting with
832 buffers from eshell more convenient. Custom variable
833 `eshell-buffer-shorthand', which has been broken for a while, has been
834 removed.
835
836 *** By default, eshell "visual" program buffers (created by
837 `eshell-visual-commands' and similar custom vars) are no longer killed
838 when their processes die. This fixes issues with short-lived commands
839 and makes visual programs more useful in general. For example, if
840 "git log" is a visual command, it will always show the visual command
841 buffer, even if the "git log" process dies. For the old behavior,
842 make the new option `eshell-destroy-buffer-when-process-dies' non-nil.
843
844 ** Browse-url
845
846 *** Support for the Conkeror web browser.
847
848 ---
849 *** Support for several ancient browsers is now officially obsolete.
850
851 +++
852 ** tar-mode: new `tar-new-entry' command, allowing for new members to
853 be added to the archive.
854
855 ---
856 ** Autorevert: dired buffers are also auto-reverted via file
857 notifications, if Emacs is compiled with file notification support.
858
859 ** File Notifications
860
861 +++
862 *** The new event `stopped' signals, that a file notification watch is
863 not active any longer.
864
865 +++
866 *** The new function `file-notify-valid-p' checks, whether a file
867 notification descriptor still corresponds to an activate watch.
868
869 ** Dired
870
871 +++
872 *** The command `dired-do-compress' bound to `Z' now can compress
873 directories and decompress zip files.
874
875 +++
876 *** New command `dired-do-compress-to' bound to `c' can be used to
877 compress many marked files into a single named archive. The
878 compression command is determined from the new
879 `dired-compress-files-alist' variable.
880
881 ** Obsolete packages
882
883 ---
884 *** gulp.el
885
886 *** landmark.el (moved to elpa.gnu.org)
887
888 \f
889 * New Modes and Packages in Emacs 25.1
890
891 ** pinentry.el allows GnuPG passphrase to be prompted through the
892 minibuffer instead of a graphical dialog, depending on whether the gpg
893 command is called from Emacs (i.e., INSIDE_EMACS environment variable
894 is set). This feature requires newer versions of GnuPG (2.1.5 or
895 later) and Pinentry (0.9.5 or later).
896
897 ** cl-generic.el provides CLOS-style multiple-dispatch generic functions.
898
899 ** scss-mode (a minor variant of css-mode)
900
901 ** let-alist is a new macro (and a package) that allows one to easily
902 let-bind the values stored in an alist.
903
904 ** `tildify-mode' allows to automatically insert hard spaces as one
905 types the text. Breaking line after a single-character words is
906 forbidden by Czech and Polish typography (and may be discouraged in
907 other languages), so `auto-tildify-mode' makes it easier to create
908 a typographically-correct documents.
909
910 ** The `seq' library adds sequence manipulation functions and macros
911 that complement basic functions provided by subr.el. All functions
912 are prefixed with `seq-' and work on lists, strings and vectors.
913
914 ** The `map' library provides map-manipulation functions that work on
915 alists, hash-table and arrays. All functions are prefixed with
916 `map-'.
917
918 ** The `thunk' library provides functions and macros to control the
919 evaluation of forms.
920
921 ** js-jsx-mode (a minor variant of js-mode) provides indentation
922 support for JSX, an XML-like syntax extension to ECMAScript.
923
924 \f
925 * Incompatible Lisp Changes in Emacs 25.1
926
927 ** `syntax-begin-function' is declared obsolete.
928 Removed font-lock-beginning-of-syntax-function and the SYNTAX-BEGIN
929 slot in font-lock-defaults.
930
931 +++
932 ** `package-initialize' now sets `package-enable-at-startup' to nil if
933 called during startup. Users who call this function in their init
934 file and still expect it to be run after startup should set
935 `package-enable-at-startup' to t after the call to
936 `package-initialize'.
937
938 ** `:global' minor mode use `setq-default' rather than `setq'.
939 This means that you can't use `make-local-variable' and expect them to
940 "magically" become buffer-local.
941
942 ** `inhibit-point-motion-hooks' now defaults to t and is obsolete.
943
944 +++
945 ** `track-mouse' no longer freezes the shape of the mouse pointer.
946 The `track-mouse' form no longer refrains from changing the shape of
947 the mouse pointer for the entire time the body of that form is
948 executed. Lisp programs that use `track-mouse' for dragging across
949 large portions of the Emacs display, and want to avoid changes in the
950 pointer shape during dragging, should bind the variable `track-mouse'
951 to the special value `dragging' in the body of the form.
952
953 ** The optional `predicate' argument of `lisp-complete-symbol' no longer
954 has any effect. (This change was made in Emacs 24.4 but was not
955 advertised at the time.)
956
957 ** `indirect-function' does not signal `void-function' any more.
958 This is mostly a bug-fix, since this change was missed back in 24.4 when
959 symbol-function was changed not to signal `void-function' any more.
960 *** As a consequence, the second arg of `indirect-function' is now obsolete.
961
962 ** Comint, term, and compile do not set the EMACS env var any more.
963 Use the INSIDE_EMACS environment variable instead.
964
965 ** `save-excursion' does not save&restore the mark any more.
966
967 ** read-buffer-function can now be called with a 4th argument (`predicate').
968
969 ** completion-table-dynamic stays in the minibuffer.
970 If you want the old behavior of calling the function in the buffer
971 from which the minibuffer was entered, call it with the new argument
972 `switch-buffer'.
973
974 ** window-configurations no longer record the buffers' marks.
975
976 ** inhibit-modification-hooks now also inhibits lock-file checks, as well as
977 active region handling.
978
979 ** deactivate-mark is now buffer-local.
980
981 ** `cl-the' now asserts that its argument is of the given type.
982
983 ** `process-running-child-p` may now return a numeric process
984 group ID instead of `t'.
985
986 +++
987 ** Mouse click events on mode line or header line no longer include
988 any reference to a buffer position. The 6th member of the mouse
989 position list returned for such events is now nil.
990
991 ** Menu items in keymaps do not support the "key shortcut cache" any more.
992 These slots used to hold key-shortcut data, but have been obsolete since
993 Emacs-21.
994
995 ** Emacs no longer downcases the first letter of a system diagnostic
996 when signaling a file error. For example, it now reports "Permission
997 denied" instead of "permission denied". The old behavior was problematic
998 in languages like German where downcasing rules depend on grammar.
999
1000 +++
1001 ** New variable ‘text-quoting-style’ to control how Emacs translates quotes.
1002 Set it to ‘curve’ for curved single quotes ‘like this’, to ‘straight’
1003 for straight apostrophes 'like this', and to ‘grave’ for grave accent
1004 and apostrophe `like this'. The default value nil acts like ‘curve’
1005 if curved single quotes are displayable, and like ‘grave’ otherwise.
1006 The new variable affects display of diagnostics and help, but not of info.
1007
1008 +++
1009 ** substitute-command-keys now replaces quotes.
1010 That is, it converts documentation strings’ quoting style as per the
1011 value of ‘text-quoting-style’. Doc strings in source code can use
1012 either curved single quotes or grave accents and apostrophes. As
1013 before, characters preceded by \= are output as-is.
1014
1015 +++
1016 ** Message-issuing functions ‘error’, ‘message’, etc. now convert quotes.
1017 They use the new ‘format-message’ function instead of plain ‘format’,
1018 so that they now follow user preference as per ‘text-quoting-style’
1019 when processing curved single quotes, grave accents, and apostrophes
1020 in their format argument.
1021
1022 +++
1023 ** The character classes [:alpha:] and [:alnum:] in regular expressions
1024 now match multibyte characters using Unicode character properties.
1025 If you want the old behavior where they matched any character with
1026 word syntax, use `\sw' instead.
1027
1028 +++
1029 ** The character classes [:graph:] and [:print:] in regular expressions
1030 no longer match every multibyte character. Instead, Emacs now
1031 consults the Unicode character properties to determine which
1032 characters are graphic or printable. In particular, surrogates and
1033 unassigned codepoints are now rejected. If you want the old behavior,
1034 use [:multibyte:] instead.
1035
1036 +++
1037 ** The `diff' command uses the unified format now. To restore the old
1038 behavior, set `diff-switches' to `-c'.
1039
1040 ** `grep-template' and `grep-find-template' values don't include the
1041 --color argument anymore. It's added at the <C> place holder position
1042 dynamically. Any third-party code that changes these templates should
1043 be updated accordingly.
1044
1045 +++
1046 ** ‘(/ N)’ is now equivalent to ‘(/ 1 N)’ rather than to ‘(/ N 1)’.
1047 The new behavior is compatible with Common Lisp and with XEmacs.
1048 This change does not affect Lisp code intended to be portable to
1049 Emacs 24.2 and earlier, which did not support unary ‘/’.
1050
1051 +++
1052 ** The `default-directory' value doesn't have to end slash. To make
1053 that happen, `unhandled-file-name-directory' now defaults to calling
1054 `file-name-as-directory'.
1055
1056 \f
1057 * Lisp Changes in Emacs 25.1
1058
1059 ** syntax-propertize is now automatically called on-demand during forward
1060 parsing functions like `forward-sexp'.
1061
1062 ** New hooks prefix-command-echo-keystrokes-functions and
1063 prefix-command-preserve-state-hook, to allow the definition of prefix
1064 commands other than the predefined C-u.
1065
1066 ** New functions `filepos-to-bufferpos' and `bufferpos-to-filepos'.
1067
1068 ** The default value of `load-read-function' is now `read'.
1069
1070 ** New hook `pre-redisplay-functions', a bit easier to use than pre-redisplay-function.
1071
1072 ** The second arg of `looking-back' should always be provided explicitly.
1073
1074 ** Obsolete text properties `intangible', `point-entered', and `point-left'.
1075 Replaced by properties `cursor-intangible' and `cursor-sensor-functions',
1076 implemented by the new `cursor-intangible-mode' and
1077 `cursor-sensor-mode' minor modes.
1078
1079 ** New process type `pipe', which can be used in combination with the
1080 `:stderr' keyword of make-process to handle standard error output
1081 of subprocess.
1082
1083 ** New function `make-process' provides an alternative interface to
1084 `start-process'. It allows programs to set process parameters such as
1085 process filter, sentinel, etc., through keyword arguments (similar to
1086 `make-network-process').
1087
1088 ** `read-buffer' takes a new `predicate' argument.
1089
1090 ** Emacs Lisp now supports generators.
1091
1092 ** New finalizer facility for running code when objects
1093 become unreachable.
1094
1095 ** lexical closures can use (:documentation <form>) to build their docstring.
1096 It should be placed right where the docstring would be, and <form> is then
1097 evaluated (and should return a string) when the closure is built.
1098
1099 ** define-inline provides a new way to define inlinable functions.
1100
1101 ** New function `macroexpand-1' to perform a single step of macroexpansion.
1102
1103 ** Some "x-*" were obsoleted:
1104 *** x-select-text is renamed gui-select-text.
1105 *** x-selection-value is renamed gui-selection-value.
1106 *** x-get-selection is renamed gui-get-selection.
1107 *** x-get-clipboard and x-clipboard-yank are marked obsolete.
1108 *** x-get-selection-value is renamed to gui-get-primary-selection.
1109 *** x-set-selection is renamed to gui-set-selection
1110
1111 ** New function `string-greaterp', which return the opposite result of
1112 `string-lessp'.
1113
1114 ** New function `alist-get', which is also a valid place (aka lvalue).
1115
1116 ** New function `funcall-interactively', which works like `funcall'
1117 but makes `called-interactively-p' treat the function as (you guessed it)
1118 called interactively.
1119
1120 ** New function `function-put' to use instead of `put' for function properties.
1121
1122 +++
1123 ** New properties that can be specified with `declare':
1124 *** (interactive-only INSTEAD), says to use INSTEAD for non-interactive use.
1125 *** (pure VAL), if VAL is non-nil, indicates the function is pure.
1126 *** (side-effect-free VAL), if VAL is non-nil, indicates the function does not
1127 have side effects.
1128
1129 +++
1130 ** New macro `with-file-modes', for evaluating expressions with default file
1131 permissions set to temporary values (e.g., for creating private files).
1132
1133 ** You can access the slots of structures using `cl-struct-slot-value'.
1134
1135 ** Function `sort' can deal with vectors.
1136
1137 ** Function `system-name' now returns an updated value if the current
1138 system's name has changed or if the Emacs process has changed systems,
1139 and to avoid long waits it no longer consults DNS to canonicalize the
1140 name. The variable `system-name' is now obsolete.
1141
1142 +++
1143 ** Function `write-region' no longer outputs "Wrote FILE" in batch mode.
1144
1145 ** If `pwd' is called with a prefix argument, insert the current default
1146 directory at point.
1147
1148 ---
1149 ** New utilities in subr-x.el:
1150 *** New macros `if-let' and `when-let' allow defining bindings and to
1151 execute code depending whether all values are true.
1152 *** New macros `thread-first' and `thread-last' allow threading a form
1153 as the first or last argument of subsequent forms.
1154
1155 +++
1156 ** Documentation strings now support quoting with curved single quotes
1157 ‘like-this’ in addition to the old style with grave accent and
1158 apostrophe `like-this'. The new style looks better on today's displays.
1159 In the new Electric Quote mode, you can enter curved single quotes
1160 into documentation by typing ` and '. Outside Electric Quote mode,
1161 you can enter them by typing ‘C-x 8 [’ and ‘C-x 8 ]’, or (if your Alt
1162 key works) by typing ‘A-[’ and ‘A-]’. As described above under
1163 ‘text-quoting-style’, the user can specify how to display doc string
1164 quotes.
1165
1166 +++
1167 ** New function ‘format-message’ is like ‘format’ and also converts
1168 curved single quotes, grave accents and apostrophes as per
1169 ‘text-quoting-style’.
1170
1171 +++
1172 ** show-help-function's arg is converted via substitute-command-keys
1173 before being passed to the function. Help strings, help-echo
1174 properties, etc. can therefore contain command key escapes and
1175 quotation marks.
1176
1177 +++
1178 ** Time-related changes:
1179
1180 *** Time conversion functions now accept an optional ZONE argument
1181 that specifies the time zone rules for conversion. ZONE is omitted or
1182 nil for Emacs local time, t for Universal Time, ‘wall’ for system wall
1183 clock time, or a string as in ‘set-time-zone-rule’ for a time zone
1184 rule. The affected functions are ‘current-time-string’,
1185 ‘current-time-zone’, ‘decode-time’, and ‘format-time-string’. The
1186 function ‘encode-time’, which already accepted a simple time zone rule
1187 argument, has been extended to accept all the new forms.
1188
1189 *** Time-related functions now consistently accept numbers
1190 (representing seconds since the epoch) and nil (representing the
1191 current time) as well as the usual list-of-integer representation.
1192 Affected functions include `current-time-string', `current-time-zone',
1193 `decode-time', `float-time', `format-time-string', `seconds-to-time',
1194 `time-add', `time-less-p', `time-subtract', `time-to-day-in-year',
1195 `time-to-days', and `time-to-seconds'.
1196
1197 *** The `encode-time-value' and `with-decoded-time-value' macros have
1198 been obsoleted.
1199
1200 *** `calendar-next-time-zone-transition', `time-add', and
1201 `time-subtract' no longer return time values in the obsolete and
1202 undocumented integer-pair format. Instead, they return a list of two
1203 integers.
1204
1205 +++
1206 ** New function `set-binary-mode' allows to switch a standard stream
1207 of the Emacs process to binary I/O mode.
1208
1209 ** ASCII approximations to curved quotes are put in standard-display-table
1210 if the terminal cannot display curved quotes.
1211
1212 ** Standard output and error streams now transliterate characters via
1213 standard-display-table, and encode output using locale-coding-system.
1214
1215 ** Miscellaneous name change
1216
1217 For consistency with the usual Emacs spelling, the Lisp variable
1218 `hfy-optimisations' has been renamed to `hfy-optimizations'.
1219 The old name should still work, as an obsolescent alias.
1220
1221 \f
1222 * Changes in Frames and Windows Code in Emacs 25.1
1223
1224 +++
1225 ** Emacs can now draw horizontal scroll bars on some platforms that
1226 provide toolkit scroll bars, namely Gtk+, Lucid, Motif and Windows.
1227 Horizontal scroll bars are turned off by default.
1228 *** New function `horizontal-scroll-bars-available-p' telling whether
1229 horizontal scroll bars are available on the underlying system.
1230 *** New mode `horizontal-scroll-bar-mode' to toggle horizontal scroll
1231 bars on all existing and future frames.
1232 *** New function `toggle-horizontal-scroll-bar' to toggle horizontal
1233 scroll bars on the selected frame.
1234 *** New frame parameters `horizontal-scroll-bars' and
1235 `scroll-bar-height' to set horizontal scroll bars and their height
1236 for individual frames and in `default-frame-alist'.
1237 *** New functions `frame-scroll-bar-height' and
1238 `window-scroll-bar-height' return the height of horizontal scroll
1239 bars on a specific frame or window.
1240 *** `set-window-scroll-bars' now accepts five parameters where the last
1241 two specify height and type of the window's horizontal scroll bar.
1242 *** `window-scroll-bars' now returns type and sizes of horizontal scroll
1243 bars too.
1244 *** New buffer-local variables `horizontal-scroll-bar' and
1245 `scroll-bar-height'.
1246
1247 +++
1248 ** New functions `frame-geometry' and `frame-edges' give access to a
1249 frame's geometry.
1250
1251 +++
1252 ** New functions `mouse-absolute-pixel-position' and
1253 `set-mouse-absolute-pixel-position' get/set screen coordinates of the
1254 mouse cursor.
1255
1256 +++
1257 ** The function `window-edges' now accepts three additional arguments to
1258 retrieve body, absolute and pixel edges of the window.
1259
1260 +++
1261 ** The functions `window-inside-edges', `window-inside-pixel-edges' and
1262 `window-inside-absolute-pixel-edges' have been renamed to respectively
1263 `window-body-edges', `window-body-pixel-edges' and
1264 `window-absolute-body-pixel-edges'. The old names are kept as aliases.
1265
1266 +++
1267 ** New function `window-absolute-pixel-position' to get the screen
1268 coordinates of a visible buffer position.
1269
1270 +++
1271 ** The height of a frame's menu and tool bar are no longer counted in the
1272 frame's text height. This means that the text height stands only for
1273 the height of the frame's root window plus that of the echo area (if
1274 present). This was already the behavior for frames with external tool
1275 and menu bars (like in the Gtk builds) but has now been extended to all
1276 builds.
1277
1278 +++
1279 ** Frames now do not necessarily preserve the number of columns or lines
1280 they display when setting default font, menu bar, fringe width, or
1281 scroll bars. In particular, maximized and fullscreen frames are
1282 conceptually never resized if such settings change. For fullheight and
1283 fullwidth frames, the behavior may depend on the toolkit used.
1284 *** New option `frame-inhibit-implied-resize' if non-nil, means that
1285 setting default font, menu bar, fringe width, or scroll bars of a
1286 specific frame does not resize that frame in order to preserve the
1287 number of columns or lines it displays.
1288
1289 +++
1290 ** New function `window-preserve-size' allows to preserve the size of
1291 windows without "fixing" it. It's supported by `fit-window-to-buffer',
1292 `temp-buffer-resize-mode' and `display-buffer'.
1293
1294 +++
1295 ** New minor mode `window-divider-mode' and options
1296 `window-divider-default-places', `window-divider-default-bottom-width'
1297 and `window-divider-default-right-width'.
1298
1299 +++
1300 ** New option `switch-to-buffer-in-dedicated-window' allows to customize
1301 how `switch-to-buffer' proceeds interactively when the selected window
1302 is strongly dedicated to its buffer.
1303
1304 +++
1305 ** The option `even-window-heights' has been renamed to
1306 `even-window-sizes' and now handles window widths as well.
1307
1308 ** Tearoff menus and detachable toolbars for Gtk+ has been removed.
1309 Those features have been deprecated in Gtk+ for a long time.
1310
1311 ** Miscellaneous
1312
1313 *** etags no longer qualifies class members by default.
1314 By default, `etags' will not qualify class members for C-like
1315 object-oriented languages with their class names and namespaces, and
1316 will remove qualifications used explicitly in the code from the tag
1317 names it puts in TAGS files. This is so the etags.el back-end for
1318 `xref-find-definitions' is more accurate and produces less false
1319 positives.
1320
1321 Use --class-qualify (-Q) if you want the old default behavior of
1322 qualifying class members in C++, Java, and Objective C. Note that
1323 using -Q might make some class members become "unknown" to `M-.'
1324 (`xref-find-definitions'); if so, you can use `C-u M-.' to specify the
1325 qualified names by hand.
1326
1327 \f
1328 * Changes in Emacs 25.1 on Non-Free Operating Systems
1329
1330 ---
1331 ** MS-Windows specific Emacs build scripts are no longer in the distribution
1332 This includes the makefile.w32-in files in various subdirectories, and
1333 the support files. The file nt/configure.bat now just tells the user
1334 to use the procedure described in nt/INSTALL, by running the Posix
1335 `configure' script in the top-level directory.
1336
1337 ---
1338 ** Building Emacs for MS-Windows requires at least Windows XP
1339 or Windows Server 2003. The built binaries still run on all versions
1340 of Windows starting with Windows 9X.
1341
1342 +++
1343 ** Emacs running on MS-Windows now supports the daemon mode.
1344
1345 ** The byte counts in etags-generated TAGS files are now the same on
1346 MS-Windows as they are on other platforms.
1347
1348 ---
1349 ** On OS X, configure creates a Cocoa ("Nextstep") build by default.
1350 Pass '--without-ns' to configure to create an X11 build, the old default.
1351
1352 ** OS X 10.5 or older is no longer supported.
1353
1354 ** OS X on PowerPC is no longer supported.
1355
1356 ---
1357 ** The new function 'w32-application-type' returns the type of an
1358 MS-Windows application given the name of its executable program file.
1359
1360 \f
1361 ----------------------------------------------------------------------
1362 This file is part of GNU Emacs.
1363
1364 GNU Emacs is free software: you can redistribute it and/or modify
1365 it under the terms of the GNU General Public License as published by
1366 the Free Software Foundation, either version 3 of the License, or
1367 (at your option) any later version.
1368
1369 GNU Emacs is distributed in the hope that it will be useful,
1370 but WITHOUT ANY WARRANTY; without even the implied warranty of
1371 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1372 GNU General Public License for more details.
1373
1374 You should have received a copy of the GNU General Public License
1375 along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.
1376
1377 \f
1378 Local variables:
1379 coding: utf-8
1380 mode: outline
1381 paragraph-separate: "[ \f]*$"
1382 end: