]> git.eshelyaron.com Git - emacs.git/commitdiff
(handle_display_prop): Handle empty replacement.
authorKim F. Storm <storm@cua.dk>
Mon, 16 May 2005 21:25:20 +0000 (21:25 +0000)
committerKim F. Storm <storm@cua.dk>
Mon, 16 May 2005 21:25:20 +0000 (21:25 +0000)
(handle_single_display_spec): Return -1 for empty replacement.

src/xdisp.c

index 8bbe2811869320a7a835f861b6804d4d7672659e..628688c2f077e83d6394cf6b949f908cb3606bbc 100644 (file)
@@ -3471,7 +3471,10 @@ handle_display_prop (it)
     }
   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 @@ display_prop_end (it, object, start_pos)
    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 @@ handle_single_display_spec (it, spec, object, position,
 
       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;