summaryrefslogtreecommitdiff
path: root/lisp/emacs-lisp
diff options
context:
space:
mode:
authorMark Oteiza <mvoteiza@udel.edu>2017-09-13 10:38:05 -0400
committerMark Oteiza <mvoteiza@udel.edu>2017-09-13 10:38:05 -0400
commit912826a829fc5e95d677f48b72413dccd216c6e1 (patch)
tree48c7baa2d35371064060c8c442b1aa5bebdb1aa8 /lisp/emacs-lisp
parent3d96fc15362453f43f3f04ffa288a57ee1e633c3 (diff)
downloademacs-912826a829fc5e95d677f48b72413dccd216c6e1.tar.gz
emacs-912826a829fc5e95d677f48b72413dccd216c6e1.tar.bz2
emacs-912826a829fc5e95d677f48b72413dccd216c6e1.zip
Remove "baroque" use of prefix argument from gensym
'cl-gensym' was simply moved here, but let us take an opportunity to shed some historical baggage. * lisp/subr.el (gensym): Remove special treatment of PREFIX as a number. Use "g" as prefix to differentiate from cl-gensym defaults. * doc/lispref/symbols.texi (Creating Symbols): Update accordingly. * lisp/emacs-lisp/cl-macs.el (cl--gensym-counter, cl-gensym): Restore.
Diffstat (limited to 'lisp/emacs-lisp')
-rw-r--r--lisp/emacs-lisp/cl-macs.el11
1 files changed, 9 insertions, 2 deletions
diff --git a/lisp/emacs-lisp/cl-macs.el b/lisp/emacs-lisp/cl-macs.el
index eee5953882d..3405c92e8d4 100644
--- a/lisp/emacs-lisp/cl-macs.el
+++ b/lisp/emacs-lisp/cl-macs.el
@@ -161,9 +161,16 @@ whether X is known at compile time, macroexpand it completely in
;;; Symbols.
-(defvaralias 'cl--gensym-counter 'gensym-counter)
+(defvar cl--gensym-counter 0)
;;;###autoload
-(cl--defalias 'cl-gensym 'gensym)
+(defun cl-gensym (&optional prefix)
+ "Generate a new uninterned symbol.
+The name is made by appending a number to PREFIX, default \"G\"."
+ (let ((pfix (if (stringp prefix) prefix "G"))
+ (num (if (integerp prefix) prefix
+ (prog1 cl--gensym-counter
+ (setq cl--gensym-counter (1+ cl--gensym-counter))))))
+ (make-symbol (format "%s%d" pfix num))))
(defvar cl--gentemp-counter 0)
;;;###autoload