]> git.eshelyaron.com Git - emacs.git/commitdiff
* files.el (create-file-buffer): Handle a file whose basename is all spaces.
authorGlenn Morris <rgm@gnu.org>
Fri, 23 Aug 2013 17:08:19 +0000 (13:08 -0400)
committerGlenn Morris <rgm@gnu.org>
Fri, 23 Aug 2013 17:08:19 +0000 (13:08 -0400)
Fixes: debbugs:15162
lisp/ChangeLog
lisp/files.el

index df9fce72dd9e162b1ba388e44a777691a23be64a..9fd3e687405a09f88b966a56fb549acf081abeee 100644 (file)
@@ -1,3 +1,8 @@
+2013-08-23  Glenn Morris  <rgm@gnu.org>
+
+       * files.el (create-file-buffer): Handle the vital case of a file
+       whose basename is all spaces.  (Bug#15162)
+
 2013-08-23  Stefan Monnier  <monnier@iro.umontreal.ca>
 
        * textmodes/fill.el (fill-match-adaptive-prefix): Don't throw away
index efd89605b1b1e222f7bad16145c94dceaf778057..71dc968f160d52a6945a73d45616e157306de6ae 100644 (file)
@@ -1604,12 +1604,16 @@ killed."
 FILENAME (sans directory) is used unchanged if that name is free;
 otherwise a string <2> or <3> or ... is appended to get an unused name.
 Spaces at the start of FILENAME (sans directory) are removed."
+  ;; ^ Because buffers whose name begins with a space are treated as
+  ;; internal Emacs buffers.
   (let ((lastname (file-name-nondirectory filename)))
     (if (string= lastname "")
        (setq lastname filename))
     (save-match-data
-      (string-match "^ *\\(.*\\)" lastname)
-      (generate-new-buffer (match-string 1 lastname)))))
+      (if (string-match "\\` +\\(.*\\)" lastname)
+         (if (zerop (length (setq lastname (match-string 1 lastname))))
+             (setq lastname "SPC"))))  ; bug#15162
+    (generate-new-buffer lastname)))
 
 (defun generate-new-buffer (name)
   "Create and return a buffer with a name based on NAME.