emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] master 912826a: Remove "baroque" use of prefix argument fr


From: Mark Oteiza
Subject: [Emacs-diffs] master 912826a: Remove "baroque" use of prefix argument from gensym
Date: Wed, 13 Sep 2017 10:40:52 -0400 (EDT)

branch: master
commit 912826a829fc5e95d677f48b72413dccd216c6e1
Author: Mark Oteiza <address@hidden>
Commit: Mark Oteiza <address@hidden>

    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.
---
 doc/lispref/symbols.texi   |  3 +--
 lisp/emacs-lisp/cl-macs.el | 11 +++++++++--
 lisp/subr.el               | 11 ++++-------
 3 files changed, 14 insertions(+), 11 deletions(-)

diff --git a/doc/lispref/symbols.texi b/doc/lispref/symbols.texi
index 2d9ec6f..cda5f1c 100644
--- a/doc/lispref/symbols.texi
+++ b/doc/lispref/symbols.texi
@@ -276,8 +276,7 @@ distinct uninterned symbol whose name is also @samp{foo}.
 @defun gensym &optional prefix
 This function returns a symbol using @code{make-symbol}, whose name is
 made by appending @code{gensym-counter} to @var{prefix}.  The prefix
-defaults to @code{"G"}.  If @var{prefix} is a number, it replaces the
-value of the counter.
+defaults to @code{"g"}.
 @end defun
 
 @defun intern name &optional obarray
diff --git a/lisp/emacs-lisp/cl-macs.el b/lisp/emacs-lisp/cl-macs.el
index eee5953..3405c92 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
diff --git a/lisp/subr.el b/lisp/subr.el
index ebb8b53..52d4e19 100644
--- a/lisp/subr.el
+++ b/lisp/subr.el
@@ -286,13 +286,10 @@ without silencing all errors."
 (defun gensym (&optional prefix)
   "Return a new uninterned symbol.
 The name is made by appending `gensym-counter' to PREFIX.
-PREFIX can be a string, and defaults to \"G\".
-If PREFIX is a number, it replaces the value of `gensym-counter'."
-  (let ((pfix (if (stringp prefix) prefix "G"))
-        (num (if (integerp prefix) prefix
-               (prog1 gensym-counter
-                 (setq gensym-counter (1+ gensym-counter))))))
-    (make-symbol (format "%s%d" pfix num))))
+PREFIX is a string, and defaults to \"g\"."
+  (let ((num (prog1 gensym-counter
+               (setq gensym-counter (1+ gensym-counter)))))
+    (make-symbol (format "%s%d" prefix num))))
 
 (defun ignore (&rest _ignore)
   "Do nothing and return nil.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]