Improve warning about changing the string returned by symbol-name

* src/data.c (Fsymbol_name): Add warning.  See bug#62009.

* doc/lispref/symbols.texi (Creating Symbols): Improve warning.
This commit is contained in:
Gregory Heytings 2023-03-18 22:41:33 +00:00
parent e62f8b0239
commit b7f0333355
2 changed files with 6 additions and 4 deletions

View file

@ -276,9 +276,8 @@ This function returns the string that is @var{symbol}'s name. For example:
@end group @end group
@end example @end example
@strong{Warning:} Changing the string by substituting characters does @strong{Warning:} Never alter the string returned by that function.
change the name of the symbol, but fails to update the obarray, so don't Doing that might make Emacs dysfunctional, and might even crash Emacs.
do it!
@end defun @end defun
@cindex uninterned symbol, and generating Lisp code @cindex uninterned symbol, and generating Lisp code

View file

@ -773,7 +773,10 @@ DEFUN ("symbol-plist", Fsymbol_plist, Ssymbol_plist, 1, 1, 0,
} }
DEFUN ("symbol-name", Fsymbol_name, Ssymbol_name, 1, 1, 0, DEFUN ("symbol-name", Fsymbol_name, Ssymbol_name, 1, 1, 0,
doc: /* Return SYMBOL's name, a string. */) doc: /* Return SYMBOL's name, a string.
Warning: never alter the string returned by `symbol-name'.
Doing that might make Emacs dysfunctional, and might even crash Emacs. */)
(register Lisp_Object symbol) (register Lisp_Object symbol)
{ {
register Lisp_Object name; register Lisp_Object name;