]> git.eshelyaron.com Git - emacs.git/commitdiff
Fix a bug in 'generate-new-buffer-name'
authorEli Zaretskii <eliz@gnu.org>
Sat, 5 Aug 2017 09:52:55 +0000 (12:52 +0300)
committerEli Zaretskii <eliz@gnu.org>
Sat, 5 Aug 2017 09:52:55 +0000 (12:52 +0300)
* src/buffer.c (Fgenerate_new_buffer_name): Test IGNORE for being
nil before calling string-equal, since the latter will compare
"nil and 'nil' as equal.  (Bug#27966)

* test/src/buffer-tests.el
(test-generate-new-buffer-name-bug27966): New test.

src/buffer.c
test/src/buffer-tests.el

index 649ddbe1839c7d34a12c9ad4e69fcf4e5c6dbd0f..0d0f43e937b411cd14c32217013663d900ff2fb4 100644 (file)
@@ -1077,7 +1077,8 @@ is first appended to NAME, to speed up finding a non-existent buffer.  */)
 
   CHECK_STRING (name);
 
-  if (!NILP (Fstring_equal (name, ignore)) || NILP (Fget_buffer (name)))
+  if ((!NILP (ignore) && !NILP (Fstring_equal (name, ignore)))
+      || NILP (Fget_buffer (name)))
     return name;
 
   if (SREF (name, 0) != ' ') /* See bug#1229.  */
index 793dddd8bd442c1c3877d40448dd13e2a1659130..87406740a78a95496b087c50db234a3c02fd024a 100644 (file)
@@ -45,4 +45,9 @@ with parameters from the *Messages* buffer modification."
             (should (eq buf (current-buffer))))
         (when msg-ov (delete-overlay msg-ov))))))
 
+(ert-deftest test-generate-new-buffer-name-bug27966 ()
+  (should-not (string-equal "nil"
+                            (progn (get-buffer-create "nil")
+                                   (generate-new-buffer-name "nil")))))
+
 ;;; buffer-tests.el ends here