]> git.eshelyaron.com Git - emacs.git/commitdiff
* lisp/files.el (create-file-buffer): Rework previous change.
authorGlenn Morris <rgm@gnu.org>
Fri, 23 Aug 2013 17:34:09 +0000 (13:34 -0400)
committerGlenn Morris <rgm@gnu.org>
Fri, 23 Aug 2013 17:34:09 +0000 (13:34 -0400)
lisp/ChangeLog
lisp/files.el

index f633f5f5de7fc72944ac37ac03257463a5296cf1..6d3b09c34491c0d0b1e330eaa48ee11430be74f6 100644 (file)
@@ -2,8 +2,8 @@
 
        * files.el (interpreter-mode-alist): Use tcl-mode for expect scripts.
 
-       * files.el (create-file-buffer): Handle the vital case of a file
-       whose basename is all spaces.  (Bug#15162)
+       * files.el (create-file-buffer): If the result would begin with
+       spaces, prepend a "|" instead of removing them.  (Bug#15162)
 
 2013-08-23  Stefan Monnier  <monnier@iro.umontreal.ca>
 
index 9adbca1036968002a9eb798d77386960d9891e7d..04ea47fa6efc8c218220d32d1ab8d4e06d51a0e7 100644 (file)
@@ -1603,17 +1603,16 @@ killed."
   "Create a suitably named buffer for visiting FILENAME, and return it.
 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.
+
+Emacs treats buffers whose names begin with a space as internal buffers.
+To avoid confusion when visiting a file whose name begins with a space,
+this function prepends a \"|\" to the final result if necessary."
   (let ((lastname (file-name-nondirectory filename)))
     (if (string= lastname "")
        (setq lastname filename))
-    (save-match-data
-      (if (string-match "\\` +\\(.*\\)" lastname)
-         (if (zerop (length (setq lastname (match-string 1 lastname))))
-             (setq lastname "SPC"))))  ; bug#15162
-    (generate-new-buffer lastname)))
+    (generate-new-buffer (if (string-match-p "\\` " lastname)
+                            (concat "|" lastname)
+                          lastname))))
 
 (defun generate-new-buffer (name)
   "Create and return a buffer with a name based on NAME.