diff options
| author | Glenn Morris <rgm@gnu.org> | 2013-08-23 13:08:19 -0400 |
|---|---|---|
| committer | Glenn Morris <rgm@gnu.org> | 2013-08-23 13:08:19 -0400 |
| commit | 61611d54b50a9523f696bd95c233b35556030324 (patch) | |
| tree | ca0422ccc06afcfad302b94852f6cc93df86d41d | |
| parent | e3a6636351364fe32463d3a8196e5fc564c66422 (diff) | |
| download | emacs-61611d54b50a9523f696bd95c233b35556030324.tar.gz | |
* files.el (create-file-buffer): Handle a file whose basename is all spaces.
Fixes: debbugs:15162
| -rw-r--r-- | lisp/ChangeLog | 5 | ||||
| -rw-r--r-- | lisp/files.el | 8 |
2 files changed, 11 insertions, 2 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog index df9fce72dd9..9fd3e687405 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -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 diff --git a/lisp/files.el b/lisp/files.el index efd89605b1b..71dc968f160 100644 --- a/lisp/files.el +++ b/lisp/files.el @@ -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. |
