diff options
| author | Paul Eggert | 2016-10-10 07:39:05 -0700 |
|---|---|---|
| committer | Paul Eggert | 2016-10-10 07:39:05 -0700 |
| commit | 46b83c0f08f936eb1a0ae761db557169fe295cc7 (patch) | |
| tree | bdb663d86a908a83b7c953316d04714664b32a0c | |
| parent | be589ea0dc71063d26595378df303a2a1c25ee4e (diff) | |
| parent | 4f406e9813e073b675bb45613bf1dd111eec2368 (diff) | |
| download | emacs-46b83c0f08f936eb1a0ae761db557169fe295cc7.tar.gz emacs-46b83c0f08f936eb1a0ae761db557169fe295cc7.zip | |
Merge from origin/emacs-25
4f406e9 CC Mode manual: remove reference to former Emacs variable las...
44e402e Allow to disable compaction of font caches
4ff4b66 Allow selection of font for symbols as in Emacs 24.x
c03d44b ; Fix last commit
d4be4f3 ; Fix indexing in lispref manual
ed399f2 ; Minor improvement in documentation of generators
197a6bc Fix horizontal scrolling during Isearch
3566644 Fix infloop in redisplay due to truncated lines and invisible...
# Conflicts:
# etc/NEWS
| -rw-r--r-- | doc/lispref/control.texi | 1 | ||||
| -rw-r--r-- | doc/lispref/errors.texi | 3 | ||||
| -rw-r--r-- | doc/lispref/functions.texi | 3 | ||||
| -rw-r--r-- | doc/misc/cc-mode.texi | 9 | ||||
| -rw-r--r-- | etc/NEWS.25 | 37 | ||||
| -rw-r--r-- | lisp/isearch.el | 3 | ||||
| -rw-r--r-- | src/alloc.c | 6 | ||||
| -rw-r--r-- | src/font.c | 13 | ||||
| -rw-r--r-- | src/fontset.c | 13 | ||||
| -rw-r--r-- | src/xdisp.c | 5 |
10 files changed, 72 insertions, 21 deletions
diff --git a/doc/lispref/control.texi b/doc/lispref/control.texi index 0cdb03548bf..0c0827909a3 100644 --- a/doc/lispref/control.texi +++ b/doc/lispref/control.texi | |||
| @@ -805,6 +805,7 @@ The following piece of code demonstrates some important principles of | |||
| 805 | working with iterators. | 805 | working with iterators. |
| 806 | 806 | ||
| 807 | @example | 807 | @example |
| 808 | (require 'generator) | ||
| 808 | (iter-defun my-iter (x) | 809 | (iter-defun my-iter (x) |
| 809 | (iter-yield (1+ (iter-yield (1+ x)))) | 810 | (iter-yield (1+ (iter-yield (1+ x)))) |
| 810 | ;; Return normally | 811 | ;; Return normally |
diff --git a/doc/lispref/errors.texi b/doc/lispref/errors.texi index c2bab019274..03aea4ef445 100644 --- a/doc/lispref/errors.texi +++ b/doc/lispref/errors.texi | |||
| @@ -190,8 +190,7 @@ The message is @samp{Symbol's value as variable is void}. | |||
| 190 | @xref{Accessing Variables}. | 190 | @xref{Accessing Variables}. |
| 191 | 191 | ||
| 192 | @item wrong-number-of-arguments | 192 | @item wrong-number-of-arguments |
| 193 | The message is @samp{Wrong number of arguments}. @xref{Classifying | 193 | The message is @samp{Wrong number of arguments}. @xref{Argument List}. |
| 194 | Lists}. | ||
| 195 | 194 | ||
| 196 | @item wrong-type-argument | 195 | @item wrong-type-argument |
| 197 | The message is @samp{Wrong type argument}. @xref{Type Predicates}. | 196 | The message is @samp{Wrong type argument}. @xref{Type Predicates}. |
diff --git a/doc/lispref/functions.texi b/doc/lispref/functions.texi index fff4ac0ee8d..8dff1a70f75 100644 --- a/doc/lispref/functions.texi +++ b/doc/lispref/functions.texi | |||
| @@ -346,7 +346,8 @@ stored as symbol function definitions to produce named functions | |||
| 346 | Our simple sample function, @code{(lambda (a b c) (+ a b c))}, | 346 | Our simple sample function, @code{(lambda (a b c) (+ a b c))}, |
| 347 | specifies three argument variables, so it must be called with three | 347 | specifies three argument variables, so it must be called with three |
| 348 | arguments: if you try to call it with only two arguments or four | 348 | arguments: if you try to call it with only two arguments or four |
| 349 | arguments, you get a @code{wrong-number-of-arguments} error. | 349 | arguments, you get a @code{wrong-number-of-arguments} error |
| 350 | (@pxref{Errors}). | ||
| 350 | 351 | ||
| 351 | It is often convenient to write a function that allows certain | 352 | It is often convenient to write a function that allows certain |
| 352 | arguments to be omitted. For example, the function @code{substring} | 353 | arguments to be omitted. For example, the function @code{substring} |
diff --git a/doc/misc/cc-mode.texi b/doc/misc/cc-mode.texi index 691616917b7..4f7711184d0 100644 --- a/doc/misc/cc-mode.texi +++ b/doc/misc/cc-mode.texi | |||
| @@ -3544,10 +3544,11 @@ use, add this function to the front of the | |||
| 3544 | @example | 3544 | @example |
| 3545 | (defun c-semi&comma-no-newlines-before-nonblanks () | 3545 | (defun c-semi&comma-no-newlines-before-nonblanks () |
| 3546 | (save-excursion | 3546 | (save-excursion |
| 3547 | (if (and (eq last-command-char ?\;) | 3547 | (if (and (= (c-last-command-char) ?\;) |
| 3548 | (zerop (forward-line 1)) | 3548 | (zerop (forward-line 1)) |
| 3549 | (not (looking-at "^[ \t]*$"))) | 3549 | (bolp) ; forward-line has funny behavior at eob. |
| 3550 | 'stop | 3550 | (not (looking-at "^[ \t]*$"))) |
| 3551 | 'stop | ||
| 3551 | nil))) | 3552 | nil))) |
| 3552 | @end example | 3553 | @end example |
| 3553 | @end defun | 3554 | @end defun |
diff --git a/etc/NEWS.25 b/etc/NEWS.25 index 978c90a7a5e..3e686f98db3 100644 --- a/etc/NEWS.25 +++ b/etc/NEWS.25 | |||
| @@ -15,12 +15,34 @@ and NEWS.1-17 for changes in older Emacs versions. | |||
| 15 | You can narrow news to a specific version by calling 'view-emacs-news' | 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. | 16 | with a prefix argument or by typing C-u C-h C-n. |
| 17 | 17 | ||
| 18 | Temporary note: | 18 | |
| 19 | +++ indicates that all necessary documentation updates are complete. | 19 | * Changes in Emacs 25.2 |
| 20 | (This means all relevant manuals in doc/ AND lisp doc-strings.) | 20 | This is a bug-fix release with (almost) no new features. |
| 21 | --- means no change in the manuals is needed. | 21 | |
| 22 | When you add a new item, use the appropriate mark if you are sure it applies, | 22 | --- |
| 23 | otherwise leave it unmarked. | 23 | ** `find-library', `help-function-def' and `help-variable-def' now run |
| 24 | `find-function-after-hook'. | ||
| 25 | |||
| 26 | +++ | ||
| 27 | ** New basic face 'fixed-pitch-serif', for a fixed-width font with serifs. | ||
| 28 | The Info-quoted and tex-verbatim faces now default to inheriting from | ||
| 29 | it. | ||
| 30 | |||
| 31 | --- | ||
| 32 | ** New variable 'use-default-font-for-symbols' for backward compatibility. | ||
| 33 | This variable allows to get back pre-Emacs 25 behavior whereby the | ||
| 34 | font for displaying symbol and punctuation characters was always | ||
| 35 | selected according to your fontset setup. Emacs 25 by default tries | ||
| 36 | to use the default face's font for such characters, disregarding the | ||
| 37 | fontsets if the default font supports these characters. Set this | ||
| 38 | variable to nil to disable the new behavior and get back the old | ||
| 39 | behavior. | ||
| 40 | |||
| 41 | --- | ||
| 42 | ** New variable 'inhibit-compacting-font-caches'. | ||
| 43 | Set this variable to a non-nil value to speed up display of characters | ||
| 44 | using large fonts, at the price of a larger memory footprint of the | ||
| 45 | Emacs session. | ||
| 24 | 46 | ||
| 25 | 47 | ||
| 26 | * Installation Changes in Emacs 25.1 | 48 | * Installation Changes in Emacs 25.1 |
| @@ -896,9 +918,6 @@ looking for macro definitions. By default, no symbols are ignored. | |||
| 896 | 918 | ||
| 897 | ** TeX mode | 919 | ** TeX mode |
| 898 | 920 | ||
| 899 | *** When in a TeX (LaTeX, etc) comment, insert a normal double quote (") | ||
| 900 | instead of defaulting to TeX-style open (``) or close ('') quote marks. | ||
| 901 | |||
| 902 | *** New custom variable 'tex-print-file-extension' to help users who | 921 | *** New custom variable 'tex-print-file-extension' to help users who |
| 903 | use PDF instead of DVI. | 922 | use PDF instead of DVI. |
| 904 | 923 | ||
diff --git a/lisp/isearch.el b/lisp/isearch.el index ce87d1bac3c..0416b08eba2 100644 --- a/lisp/isearch.el +++ b/lisp/isearch.el | |||
| @@ -1008,7 +1008,8 @@ The last thing is to trigger a new round of lazy highlighting." | |||
| 1008 | ;; pos-visible-in-window-group-p returns non-nil, but | 1008 | ;; pos-visible-in-window-group-p returns non-nil, but |
| 1009 | ;; the X coordinate it returns is 1 pixel beyond | 1009 | ;; the X coordinate it returns is 1 pixel beyond |
| 1010 | ;; the last visible one. | 1010 | ;; the last visible one. |
| 1011 | (>= (car visible-p) (window-body-width nil t))) | 1011 | (>= (car visible-p) |
| 1012 | (* (window-max-chars-per-line) (frame-char-width)))) | ||
| 1012 | (set-window-hscroll (selected-window) current-scroll)))) | 1013 | (set-window-hscroll (selected-window) current-scroll)))) |
| 1013 | (if isearch-other-end | 1014 | (if isearch-other-end |
| 1014 | (if (< isearch-other-end (point)) ; isearch-forward? | 1015 | (if (< isearch-other-end (point)) ; isearch-forward? |
diff --git a/src/alloc.c b/src/alloc.c index 72987dd3190..ab23072aafa 100644 --- a/src/alloc.c +++ b/src/alloc.c | |||
| @@ -5598,7 +5598,11 @@ compact_font_caches (void) | |||
| 5598 | for (t = terminal_list; t; t = t->next_terminal) | 5598 | for (t = terminal_list; t; t = t->next_terminal) |
| 5599 | { | 5599 | { |
| 5600 | Lisp_Object cache = TERMINAL_FONT_CACHE (t); | 5600 | Lisp_Object cache = TERMINAL_FONT_CACHE (t); |
| 5601 | if (CONSP (cache)) | 5601 | /* Inhibit compacting the caches if the user so wishes. Some of |
| 5602 | the users don't mind a larger memory footprint, but do mind | ||
| 5603 | slower redisplay. */ | ||
| 5604 | if (!inhibit_compacting_font_caches | ||
| 5605 | && CONSP (cache)) | ||
| 5602 | { | 5606 | { |
| 5603 | Lisp_Object entry; | 5607 | Lisp_Object entry; |
| 5604 | 5608 | ||
diff --git a/src/font.c b/src/font.c index cfbc5c7e266..f8e6794cbb1 100644 --- a/src/font.c +++ b/src/font.c | |||
| @@ -5434,6 +5434,19 @@ Set it to nil to enable logging. If the environment variable | |||
| 5434 | EMACS_FONT_LOG is set at startup, it defaults to nil. */); | 5434 | EMACS_FONT_LOG is set at startup, it defaults to nil. */); |
| 5435 | Vfont_log = Qnil; | 5435 | Vfont_log = Qnil; |
| 5436 | 5436 | ||
| 5437 | DEFVAR_BOOL ("inhibit-compacting-font-caches", inhibit_compacting_font_caches, | ||
| 5438 | doc: /* | ||
| 5439 | If non-nil, don't compact font caches during GC. | ||
| 5440 | Some large fonts cause lots of consing and trigger GC. If they | ||
| 5441 | are removed from the font caches, they will need to be opened | ||
| 5442 | again during redisplay, which slows down redisplay. If you | ||
| 5443 | see font-related delays in displaying some special characters, | ||
| 5444 | and cannot switch to a smaller font for those characters, set | ||
| 5445 | this variable non-nil. | ||
| 5446 | Disabling compaction of font caches might enlarge the Emacs memory | ||
| 5447 | footprint in sessions that use lots of different fonts. */); | ||
| 5448 | inhibit_compacting_font_caches = 0; | ||
| 5449 | |||
| 5437 | #ifdef HAVE_WINDOW_SYSTEM | 5450 | #ifdef HAVE_WINDOW_SYSTEM |
| 5438 | #ifdef HAVE_FREETYPE | 5451 | #ifdef HAVE_FREETYPE |
| 5439 | syms_of_ftfont (); | 5452 | syms_of_ftfont (); |
diff --git a/src/fontset.c b/src/fontset.c index fe595d81a3e..38ff780ccba 100644 --- a/src/fontset.c +++ b/src/fontset.c | |||
| @@ -921,7 +921,8 @@ face_for_char (struct frame *f, struct face *face, int c, | |||
| 921 | if (ASCII_CHAR_P (c) || CHAR_BYTE8_P (c)) | 921 | if (ASCII_CHAR_P (c) || CHAR_BYTE8_P (c)) |
| 922 | return face->ascii_face->id; | 922 | return face->ascii_face->id; |
| 923 | 923 | ||
| 924 | if (c > 0 && EQ (CHAR_TABLE_REF (Vchar_script_table, c), Qsymbol)) | 924 | if (use_default_font_for_symbols /* let the user disable this feature */ |
| 925 | && c > 0 && EQ (CHAR_TABLE_REF (Vchar_script_table, c), Qsymbol)) | ||
| 925 | { | 926 | { |
| 926 | /* Fonts often have characters for punctuation and other | 927 | /* Fonts often have characters for punctuation and other |
| 927 | symbols, even if they don't match the 'symbol' script. So | 928 | symbols, even if they don't match the 'symbol' script. So |
| @@ -2150,6 +2151,16 @@ This affects how a composite character which contains | |||
| 2150 | such a character is displayed on screen. */); | 2151 | such a character is displayed on screen. */); |
| 2151 | Vuse_default_ascent = Qnil; | 2152 | Vuse_default_ascent = Qnil; |
| 2152 | 2153 | ||
| 2154 | DEFVAR_BOOL ("use-default-font-for-symbols", use_default_font_for_symbols, | ||
| 2155 | doc: /* | ||
| 2156 | If non-nil, use the default face's font for symbols and punctuation. | ||
| 2157 | |||
| 2158 | By default, Emacs will try to use the default face's font for | ||
| 2159 | displaying symbol and punctuation characters, disregarding the | ||
| 2160 | fontsets, if the default font can display the character. | ||
| 2161 | Set this to nil to make Emacs honor the fontsets instead. */); | ||
| 2162 | use_default_font_for_symbols = 1; | ||
| 2163 | |||
| 2153 | DEFVAR_LISP ("ignore-relative-composition", Vignore_relative_composition, | 2164 | DEFVAR_LISP ("ignore-relative-composition", Vignore_relative_composition, |
| 2154 | doc: /* | 2165 | doc: /* |
| 2155 | Char table of characters which are not composed relatively. | 2166 | Char table of characters which are not composed relatively. |
diff --git a/src/xdisp.c b/src/xdisp.c index 3eb11cc0c1e..3af5ea49ab6 100644 --- a/src/xdisp.c +++ b/src/xdisp.c | |||
| @@ -6304,9 +6304,10 @@ forward_to_next_line_start (struct it *it, bool *skipped_p, | |||
| 6304 | } | 6304 | } |
| 6305 | else | 6305 | else |
| 6306 | { | 6306 | { |
| 6307 | while (get_next_display_element (it) | 6307 | while (!newline_found_p) |
| 6308 | && !newline_found_p) | ||
| 6309 | { | 6308 | { |
| 6309 | if (!get_next_display_element (it)) | ||
| 6310 | break; | ||
| 6310 | newline_found_p = ITERATOR_AT_END_OF_LINE_P (it); | 6311 | newline_found_p = ITERATOR_AT_END_OF_LINE_P (it); |
| 6311 | if (newline_found_p && it->bidi_p && bidi_it_prev) | 6312 | if (newline_found_p && it->bidi_p && bidi_it_prev) |
| 6312 | *bidi_it_prev = it->bidi_it; | 6313 | *bidi_it_prev = it->bidi_it; |