changeset 62420:de870f134ee0

(handle_display_prop): Handle empty replacement. (handle_single_display_spec): Return -1 for empty replacement.
author Kim F. Storm <storm@cua.dk>
date Mon, 16 May 2005 21:25:20 +0000
parents 0853116d727a
children 68eb1c8b3f80
files src/xdisp.c
diffstat 1 files changed, 11 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/src/xdisp.c	Mon May 16 21:24:58 2005 +0000
+++ b/src/xdisp.c	Mon May 16 21:25:20 2005 +0000
@@ -3471,7 +3471,10 @@
     }
   else
     {
-      if (handle_single_display_spec (it, prop, object, position, 0))
+      int ret = handle_single_display_spec (it, prop, object, position, 0);
+      if (ret < 0)  /* Replaced by "", i.e. nothing. */
+	return HANDLED_RECOMPUTE_PROPS;
+      if (ret)
 	display_replaced_p = 1;
     }
 
@@ -3515,7 +3518,8 @@
    property ends.
 
    Value is non-zero if something was found which replaces the display
-   of buffer or string text.  */
+   of buffer or string text.  Specifically, the value is -1 if that
+   "something" is "nothing". */
 
 static int
 handle_single_display_spec (it, spec, object, position,
@@ -3830,6 +3834,11 @@
 
       if (STRINGP (value))
 	{
+	  if (SCHARS (value) == 0)
+	    {
+	      pop_it (it);
+	      return -1;  /* Replaced by "", i.e. nothing.  */
+	    }
 	  it->string = value;
 	  it->multibyte_p = STRING_MULTIBYTE (it->string);
 	  it->current.overlay_string_index = -1;