Mercurial > emacs
diff src/xdisp.c @ 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 | d86e84b2256d |
children | 888743d356d9 21eea50897a7 f042e7c0fe20 |
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;