aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/lisp.h13
1 files changed, 10 insertions, 3 deletions
diff --git a/src/lisp.h b/src/lisp.h
index 3f9cee4474..d8bb5bf08a 100644
--- a/src/lisp.h
+++ b/src/lisp.h
@@ -871,9 +871,11 @@ struct Lisp_Symbol
enum symbol_interned. */
unsigned interned : 2;
- /* The symbol's name. This should become a Lisp_Object
- some day; there's no need for the Lisp_String pointer nowadays. */
- struct Lisp_String *name;
+ /* The symbol's name, as a Lisp string.
+
+ The name "xname" is used to intentionally break code referring to
+ the old field "name" of type pointer to struct Lisp_String. */
+ Lisp_Object xname;
/* Value of the symbol or Qunbound if unbound. If this symbol is a
defvaralias, `value' contains the symbol for which it is an
@@ -891,6 +893,11 @@ struct Lisp_Symbol
struct Lisp_Symbol *next;
};
+/* Value is name of symbol. */
+
+#define SYMBOL_NAME(sym) \
+ LISP_MAKE_RVALUE (XSYMBOL (sym)->xname)
+
/* Value is non-zero if SYM is an interned symbol. */
#define SYMBOL_INTERNED_P(sym) \