aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorPaul Eggert2016-10-10 07:39:05 -0700
committerPaul Eggert2016-10-10 07:39:05 -0700
commit46b83c0f08f936eb1a0ae761db557169fe295cc7 (patch)
treebdb663d86a908a83b7c953316d04714664b32a0c /src
parentbe589ea0dc71063d26595378df303a2a1c25ee4e (diff)
parent4f406e9813e073b675bb45613bf1dd111eec2368 (diff)
downloademacs-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
Diffstat (limited to 'src')
-rw-r--r--src/alloc.c6
-rw-r--r--src/font.c13
-rw-r--r--src/fontset.c13
-rw-r--r--src/xdisp.c5
4 files changed, 33 insertions, 4 deletions
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
5434EMACS_FONT_LOG is set at startup, it defaults to nil. */); 5434EMACS_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: /*
5439If non-nil, don't compact font caches during GC.
5440Some large fonts cause lots of consing and trigger GC. If they
5441are removed from the font caches, they will need to be opened
5442again during redisplay, which slows down redisplay. If you
5443see font-related delays in displaying some special characters,
5444and cannot switch to a smaller font for those characters, set
5445this variable non-nil.
5446Disabling compaction of font caches might enlarge the Emacs memory
5447footprint 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
2150such a character is displayed on screen. */); 2151such 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: /*
2156If non-nil, use the default face's font for symbols and punctuation.
2157
2158By default, Emacs will try to use the default face's font for
2159displaying symbol and punctuation characters, disregarding the
2160fontsets, if the default font can display the character.
2161Set 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: /*
2155Char table of characters which are not composed relatively. 2166Char 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;