]> git.eshelyaron.com Git - emacs.git/commitdiff
Fix gensym
authorMark Oteiza <mvoteiza@udel.edu>
Mon, 18 Sep 2017 13:00:45 +0000 (09:00 -0400)
committerMark Oteiza <mvoteiza@udel.edu>
Mon, 18 Sep 2017 13:00:45 +0000 (09:00 -0400)
* lisp/subr.el (gensym): Actually implement the default prefix.
* test/lisp/subr-tests.el (subr-tests--gensym): New test.

lisp/subr.el
test/lisp/subr-tests.el

index 79ae1f4830d880512e635cdf18dde2f22fac4388..96b1ac19b4b0e5e425bb96b4a6cd86c9c57377c8 100644 (file)
@@ -289,7 +289,7 @@ The name is made by appending `gensym-counter' to PREFIX.
 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))))
+    (make-symbol (format "%s%d" (or prefix "g") num))))
 
 (defun ignore (&rest _ignore)
   "Do nothing and return nil.
index ac9e2df603ce95522f5654ffcb55de82be8535fc..a68688eba7a61435fe69d75649746e83bebdc109 100644 (file)
@@ -300,6 +300,12 @@ cf. Bug#25477."
       (setq res (read-passwd "pass: " 'confirm (mapconcat #'string default "")))
       (should (string= default res)))))
 
+(ert-deftest subr-tests--gensym ()
+  "Test `gensym' behavior."
+  (should (equal (symbol-name (let ((gensym-counter 0)) (gensym)))
+                 "g0"))
+  (should (eq (string-to-char (symbol-name (gensym))) ?g))
+  (should (eq (string-to-char (symbol-name (gensym "X"))) ?X)))
 
 (provide 'subr-tests)
 ;;; subr-tests.el ends here