changeset 105245:41de8bc6a7be

(get_next_display_element): Use an enum in last change.
author Stefan Monnier <monnier@iro.umontreal.ca>
date Mon, 28 Sep 2009 02:01:52 +0000
parents 1308a0fb85e9
children e0bd6a2a8ee5
files src/ChangeLog src/xdisp.c
diffstat 2 files changed, 18 insertions(+), 11 deletions(-) [+]
line wrap: on
line diff
--- a/src/ChangeLog	Mon Sep 28 01:57:33 2009 +0000
+++ b/src/ChangeLog	Mon Sep 28 02:01:52 2009 +0000
@@ -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>
 
--- a/src/xdisp.c	Mon Sep 28 01:57:33 2009 +0000
+++ b/src/xdisp.c	Mon Sep 28 02:01:52 2009 +0000
@@ -5684,9 +5684,8 @@
 	{
 	  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 @@
 	  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 @@
 		 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 @@
 		 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 @@
 	      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;