Mercurial > emacs
changeset 81269:5e310b8be81d
(STRING_SET_UNIBYTE): Return the canonical empty unibyte string, if appropriate.
(empty_unibyte_string, empty_multibyte_string): New externs.
(empty_string): Remove extern.
author | Juanma Barranquero <lekktu@gmail.com> |
---|---|
date | Fri, 08 Jun 2007 19:56:24 +0000 |
parents | 7c3f43e7cf80 |
children | 0bf4e298d593 |
files | src/lisp.h |
diffstat | 1 files changed, 6 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/src/lisp.h Fri Jun 08 10:39:56 2007 +0000 +++ b/src/lisp.h Fri Jun 08 19:56:24 2007 +0000 @@ -701,7 +701,10 @@ #endif /* not GC_CHECK_STRING_BYTES */ /* Mark STR as a unibyte string. */ -#define STRING_SET_UNIBYTE(STR) (XSTRING (STR)->size_byte = -1) +#define STRING_SET_UNIBYTE(STR) \ + do { if (EQ (STR, empty_multibyte_string)) \ + (STR) = empty_unibyte_string; \ + else XSTRING (STR)->size_byte = -1; } while (0) /* Get text properties. */ #define STRING_INTERVALS(STR) (XSTRING (STR)->intervals + 0) @@ -3060,7 +3063,8 @@ /* defined in emacs.c */ extern Lisp_Object decode_env_path P_ ((char *, char *)); extern Lisp_Object Vinvocation_name, Vinvocation_directory; -extern Lisp_Object Vinstallation_directory, empty_string; +extern Lisp_Object Vinstallation_directory; +extern Lisp_Object empty_unibyte_string, empty_multibyte_string; EXFUN (Fkill_emacs, 1); #if HAVE_SETLOCALE void fixup_locale P_ ((void));