1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-01-30 12:21:25 -08:00

* lisp/files.el (create-file-buffer): Rework previous change.

This commit is contained in:
Glenn Morris 2013-08-23 13:34:09 -04:00
parent cb8d261243
commit bb35f42f61
2 changed files with 9 additions and 10 deletions

View 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>

View 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.