summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStefan Monnier <monnier@iro.umontreal.ca>2009-09-28 02:01:52 +0000
committerStefan Monnier <monnier@iro.umontreal.ca>2009-09-28 02:01:52 +0000
commit9694740bccafd954b5434c0ee17c97ffc7f4ec8d (patch)
treec38a4fbe1efd8d1bb608cce868a19f994fe35493
parent748e3d67c4fd203b38916394cc8d57d674781345 (diff)
downloademacs-9694740bccafd954b5434c0ee17c97ffc7f4ec8d.tar.gz
(get_next_display_element): Use an enum in last change.
-rw-r--r--src/ChangeLog10
-rw-r--r--src/xdisp.c19
2 files changed, 18 insertions, 11 deletions
diff --git a/src/ChangeLog b/src/ChangeLog
index 0daec9cff18..8aa3e7b691b 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,6 +1,10 @@
+2009-09-28 Stefan Monnier <monnier@iro.umontreal.ca>
+
+ * xdisp.c (get_next_display_element): Use an enum in last change.
+
2009-09-28 Kenichi Handa <handa@m17n.org>
- * xdisp.c: Pay attention to
+ * xdisp.c (get_next_display_element): Pay attention to
unibyte_display_via_language_environment in handling
Vnobreak_char_display.
@@ -19,8 +23,8 @@
(ns_set_name_as_filename, x-create-frame, ns-get-resource)
(ns-set-resource): Use ns_app_name instead of NSProcessInfo call.
- * menu.c (find_and_return_menu_selection) [HAVE_NS]: Remove
- double-casting in client_data comparison.
+ * menu.c (find_and_return_menu_selection) [HAVE_NS]:
+ Remove double-casting in client_data comparison.
2009-09-27 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
diff --git a/src/xdisp.c b/src/xdisp.c
index 0f72a2bd7b6..226a43d7dc5 100644
--- a/src/xdisp.c
+++ b/src/xdisp.c
@@ -5684,9 +5684,8 @@ get_next_display_element (it)
{
Lisp_Object dv;
struct charset *unibyte = CHARSET_FROM_ID (charset_unibyte);
- int nbsp_or_shy = 0; /* 1:NO-BREAK SPACE, 2:SOFT HYPHEN, 0:ELSE */
-#define IS_NBSP (nbsp_or_shy == 1)
-#define IS_SHY (nbsp_or_shy == 2)
+ enum { char_is_other = 0, char_is_nbsp, char_is_soft_hyphen }
+ nbsp_or_shy = char_is_other;
int decoded = it->c;
if (it->dp
@@ -5723,9 +5722,13 @@ get_next_display_element (it)
if (it->c >= 0x80 && ! NILP (Vnobreak_char_display))
{
if (it->multibyte_p)
- nbsp_or_shy = it->c == 0xA0 ? 1 : it->c == 0xAD ? 2 : 0;
+ nbsp_or_shy = (it->c == 0xA0 ? char_is_nbsp
+ : it->c == 0xAD ? char_is_soft_hyphen
+ : char_is_other);
else if (unibyte_display_via_language_environment)
- nbsp_or_shy = decoded == 0xA0 ? 1 : decoded == 0xAD ? 2 : 0;
+ nbsp_or_shy = (decoded == 0xA0 ? char_is_nbsp
+ : decoded == 0xAD ? char_is_soft_hyphen
+ : char_is_other);
}
/* Translate control characters into `\003' or `^C' form.
@@ -5808,7 +5811,7 @@ get_next_display_element (it)
highlighting. */
if (EQ (Vnobreak_char_display, Qt)
- && IS_NBSP)
+ && nbsp_or_shy == char_is_nbsp)
{
/* Merge the no-break-space face into the current face. */
face_id = merge_faces (it->f, Qnobreak_space, 0,
@@ -5858,7 +5861,7 @@ get_next_display_element (it)
highlighting. */
if (EQ (Vnobreak_char_display, Qt)
- && IS_SHY)
+ && nbsp_or_shy == char_is_soft_hyphen)
{
it->c = '-';
XSETINT (it->ctl_chars[0], '-');
@@ -5872,7 +5875,7 @@ get_next_display_element (it)
if (nbsp_or_shy)
{
XSETINT (it->ctl_chars[0], escape_glyph);
- it->c = (IS_NBSP ? ' ' : '-');
+ it->c = (nbsp_or_shy == char_is_nbsp ? ' ' : '-');
XSETINT (it->ctl_chars[1], it->c);
ctl_len = 2;
goto display_control;