diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/xdisp.c | 28 |
1 files changed, 17 insertions, 11 deletions
diff --git a/src/xdisp.c b/src/xdisp.c index 4f33c0d518a..d0ff95257ce 100644 --- a/src/xdisp.c +++ b/src/xdisp.c @@ -7080,6 +7080,19 @@ get_next_display_element (struct it *it) goto display_control; } + /* Handle non-ascii hyphens in the mode where it only + gets highlighting. */ + + if (nonascii_hyphen_p && EQ (Vnobreak_char_display, Qt)) + { + /* Merge `nobreak-space' into the current face. */ + face_id = merge_faces (it->f, Qnobreak_hyphen, 0, + it->face_id); + XSETINT (it->ctl_chars[0], '-'); + ctl_len = 1; + goto display_control; + } + /* Handle sequences that start with the "escape glyph". */ /* the default escape glyph is \. */ @@ -7096,15 +7109,6 @@ get_next_display_element (struct it *it) ? merge_faces (it->f, Qt, lface_id, it->face_id) : merge_escape_glyph_face (it)); - /* Draw non-ASCII hyphen with just highlighting: */ - - if (nonascii_hyphen_p && EQ (Vnobreak_char_display, Qt)) - { - XSETINT (it->ctl_chars[0], '-'); - ctl_len = 1; - goto display_control; - } - /* Draw non-ASCII space/hyphen with escape glyph: */ if (nonascii_space_p || nonascii_hyphen_p) @@ -31198,8 +31202,10 @@ They are still logged to the *Messages* buffer. */); /* Name and number of the face used to highlight escape glyphs. */ DEFSYM (Qescape_glyph, "escape-glyph"); - /* Name and number of the face used to highlight non-breaking spaces. */ + /* Name and number of the face used to highlight non-breaking + spaces/hyphens. */ DEFSYM (Qnobreak_space, "nobreak-space"); + DEFSYM (Qnobreak_hyphen, "nobreak-hyphen"); /* The symbol 'image' which is the car of the lists used to represent images in Lisp. Also a tool bar style. */ @@ -31311,7 +31317,7 @@ The face used for trailing whitespace is `trailing-whitespace'. */); doc: /* Control highlighting of non-ASCII space and hyphen chars. If the value is t, Emacs highlights non-ASCII chars which have the same appearance as an ASCII space or hyphen, using the `nobreak-space' -or `escape-glyph' face respectively. +or `nobreak-hyphen' face respectively. U+00A0 (no-break space), U+00AD (soft hyphen), U+2010 (hyphen), and U+2011 (non-breaking hyphen) are affected. |