aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--doc/emacs/ChangeLog3
-rw-r--r--doc/emacs/buffers.texi27
-rw-r--r--doc/emacs/files.texi6
-rw-r--r--doc/lispref/ChangeLog2
-rw-r--r--doc/lispref/files.texi5
-rw-r--r--doc/misc/ChangeLog2
-rw-r--r--doc/misc/vip.texi6
-rw-r--r--etc/NEWS4
-rw-r--r--lisp/ChangeLog5
-rw-r--r--lisp/bookmark.el3
-rw-r--r--lisp/files.el2
-rw-r--r--lisp/uniquify.el30
12 files changed, 58 insertions, 37 deletions
diff --git a/doc/emacs/ChangeLog b/doc/emacs/ChangeLog
index f277526aea..8f10c90dc0 100644
--- a/doc/emacs/ChangeLog
+++ b/doc/emacs/ChangeLog
@@ -1,5 +1,8 @@
2014-06-08 Glenn Morris <[email protected]>
+ * buffers.texi (Uniquify): Copyedits.
+ * files.texi (Visiting): Update for uniquify changes.
+
* dired.texi (Marks vs Flags):
* rmail.texi (Rmail Scrolling): Markup fixes re SPC.
diff --git a/doc/emacs/buffers.texi b/doc/emacs/buffers.texi
index 89b56da772..54a84989e2 100644
--- a/doc/emacs/buffers.texi
+++ b/doc/emacs/buffers.texi
@@ -608,20 +608,16 @@ convenient to switch between buffers.
@cindex unique buffer names
@cindex directories in buffer names
When several buffers visit identically-named files, Emacs must give
-the buffers distinct names. The default method
-(@code{uniquify-buffer-name-style} set to
-@code{post-forward-angle-brackets}) for making buffer names unique
-adds @samp{<dir1>}, @samp{<dir2>}, etc.@: to the end of the buffer
-names, where @file{dir1} and @file{dir2} are the minimal parts of the
-leading directories needed to make the buffer name unique. For
-example, if you have files @file{/foo/bar/mumble/name} and
-@file{/baz/quux/mumble/name} visited, their buffers will be named
-@samp{name<bar/mumble>} and @samp{name<quux/mumble>} correspondingly.
+the buffers distinct names. The default method adds a suffix based on
+the names of the directories that contain the files. For example, if
+you visit files @file{/foo/bar/mumble/name} and
+@file{/baz/quux/mumble/name} at the same time, their buffers will be
+named @samp{name<bar/mumble>} and @samp{name<quux/mumble>}, respectively.
+Emacs adds as many directory parts as are needed to make a unique name.
@vindex uniquify-buffer-name-style
- There are several styles to make buffer names unique. To select
-one, customize the variable @code{uniquify-buffer-name-style}
-(@pxref{Easy Customization}).
+ You can choose from several different styles for constructing unique
+buffer names, by customizing the option @code{uniquify-buffer-name-style}.
The @code{forward} naming method includes part of the file's
directory name at the beginning of the buffer name; using this method,
@@ -631,8 +627,8 @@ buffers visiting the files @file{/u/rms/tmp/Makefile} and
In contrast, the @code{post-forward} naming method would call the
buffers @samp{Makefile|tmp} and @samp{Makefile|zaphod}. The default
-method @code{post-forward-angle-brackets} is like @code{post-forward}
-except that it prepends the unique path in angle brackets. The
+method @code{post-forward-angle-brackets} is like @code{post-forward},
+except that it encloses the unique path in angle brackets. The
@code{reverse} naming method would call them @samp{Makefile\tmp} and
@samp{Makefile\zaphod}. The nontrivial difference between
@code{post-forward} and @code{reverse} occurs when just one directory
@@ -641,8 +637,7 @@ the directory names in reverse order, so that @file{/top/middle/file}
becomes @samp{file\middle\top}, while @code{post-forward} puts them in
forward order after the file name, as in @samp{file|top/middle}. If
@code{uniquify-buffer-name-style} is set to @code{nil}, the buffer
-names simply get a @samp{<2>} etc. prepended. This used to be the
-default behavior in Emacs versions up to 24.4.
+names simply get @samp{<2>}, @samp{<3>}, etc. appended.
Which rule to follow for putting the directory names in the buffer
name is not very important if you are going to @emph{look} at the
diff --git a/doc/emacs/files.texi b/doc/emacs/files.texi
index 894e61d0f0..ee80c49af0 100644
--- a/doc/emacs/files.texi
+++ b/doc/emacs/files.texi
@@ -171,9 +171,9 @@ the mode line (@pxref{Mode Line}). Emacs normally constructs the
buffer name from the file name, omitting the directory name. For
example, a file named @file{/usr/rms/emacs.tex} is visited in a buffer
named @samp{emacs.tex}. If there is already a buffer with that name,
-Emacs constructs a unique name; the normal method is to append
-@samp{<2>}, @samp{<3>}, and so on, but you can select other methods.
-@xref{Uniquify}.
+Emacs constructs a unique name; the normal method is to add a suffix
+based on the directory name (e.g., @samp{<rms>}, @samp{<tmp>},
+and so on), but you can select other methods. @xref{Uniquify}.
@cindex creating files
To create a new file, just visit it using the same command, @kbd{C-x
diff --git a/doc/lispref/ChangeLog b/doc/lispref/ChangeLog
index 1a4c9c3a57..aa5589e1c1 100644
--- a/doc/lispref/ChangeLog
+++ b/doc/lispref/ChangeLog
@@ -1,5 +1,7 @@
2014-06-08 Glenn Morris <[email protected]>
+ * files.texi (Subroutines of Visiting): Mention uniquify.
+
* numbers.texi (Comparison of Numbers): Copyedits.
2014-06-06 Glenn Morris <[email protected]>
diff --git a/doc/lispref/files.texi b/doc/lispref/files.texi
index 278b49e51e..b071c6a8f3 100644
--- a/doc/lispref/files.texi
+++ b/doc/lispref/files.texi
@@ -254,11 +254,16 @@ is permanent local, so it is unaffected by changes of major modes.
which are sometimes useful in user Lisp code: @code{create-file-buffer}
and @code{after-find-file}. This section explains how to use them.
+@c FIXME This does not describe the default behavior, because
+@c uniquify is enabled by default and advises this function.
+@c This is confusing. uniquify should be folded into the function proper.
@defun create-file-buffer filename
This function creates a suitably named buffer for visiting
@var{filename}, and returns it. It uses @var{filename} (sans directory)
as the name if that name is free; otherwise, it appends a string such as
@samp{<2>} to get an unused name. See also @ref{Creating Buffers}.
+Note that the @file{uniquify} library affects the result of this
+function. @xref{Uniquify,,, emacs, The GNU Emacs Manual}.
@strong{Please note:} @code{create-file-buffer} does @emph{not}
associate the new buffer with a file and does not select the buffer.
diff --git a/doc/misc/ChangeLog b/doc/misc/ChangeLog
index 6ddf4266db..8e9eb83ca0 100644
--- a/doc/misc/ChangeLog
+++ b/doc/misc/ChangeLog
@@ -1,5 +1,7 @@
2014-06-08 Glenn Morris <[email protected]>
+ * vip.texi (Files): Defer to Emacs manual for uniquify details.
+
* info.texi (Help-Small-Screen): Clarify details of S-SPC.
(Help-Small-Screen, Help-]): Do not mention S-SPC.
(Emacs Info Variables): Markup fix.
diff --git a/doc/misc/vip.texi b/doc/misc/vip.texi
index 193d50f3a4..e11a5eb4c8 100644
--- a/doc/misc/vip.texi
+++ b/doc/misc/vip.texi
@@ -895,9 +895,9 @@ just type @samp{vip.el} followed by @key{RET}. If the file @file{vip.el}
already exists in the directory, Emacs will visit that file, and if not,
the file will be created. Emacs will use the file name (@file{vip.el}, in
this case) as the name of the buffer visiting the file. In order to make
-the buffer name unique, Emacs may append @samp{<2>}, @samp{<3>} etc., to
-the buffer name. As the @dfn{file name completion} is provided here, you
-can sometime save typing. For instance, suppose there is only one file in the
+the buffer name unique, Emacs may add a suffix (@pxref{Uniquify,,,
+emacs, The GNU Emacs Manual}). As @dfn{file name completion} is provided here, you
+can sometimes save typing. For instance, suppose there is only one file in the
default directory whose name starts with @samp{v}, that is @samp{vip.el}.
Then if you just type @kbd{v @key{TAB}} then it will be completed to
@samp{vip.el}. Thus, in this case, you just have to type @kbd{v v @key{TAB}
diff --git a/etc/NEWS b/etc/NEWS
index ebd816f5d6..3deb493029 100644
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -402,6 +402,10 @@ conventions. To use it, add it to the `fill-nobreak-predicate' hook.
+++
** Uniquify is enabled by default, with `post-forward-angle-brackets' style.
+In other words, if you visit two files that have the same base name,
+then rather than creating buffers basename and basename<2>,
+Emacs uses basename<dirA> and basename<dirB>. To change this,
+customize `uniquify-buffer-name-style'. Set it to nil for the old behavior.
+++
** New command `C-x SPC' (`rectangle-mark-mode') makes a rectangular region.
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index 6e89afc671..66afe67a61 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,3 +1,8 @@
+2014-06-08 Glenn Morris <[email protected]>
+
+ * bookmark.el (bookmark-load):
+ * uniquify.el (uniquify-buffer-name-style): Doc fixes.
+
2014-06-06 Juri Linkov <[email protected]>
* desktop.el: Activate auto-saving on window configuration changes.
diff --git a/lisp/bookmark.el b/lisp/bookmark.el
index 5307cada0a..eab2ea7144 100644
--- a/lisp/bookmark.el
+++ b/lisp/bookmark.el
@@ -1420,8 +1420,7 @@ explicitly.
If you load a file containing bookmarks with the same names as
bookmarks already present in your Emacs, the new bookmarks will get
-unique numeric suffixes \"<2>\", \"<3>\", ... following the same
-method buffers use to resolve name collisions."
+unique numeric suffixes \"<2>\", \"<3>\", etc."
(interactive
(list (read-file-name
(format "Load bookmarks from: (%s) "
diff --git a/lisp/files.el b/lisp/files.el
index 2e66a303dc..718421b189 100644
--- a/lisp/files.el
+++ b/lisp/files.el
@@ -1654,6 +1654,8 @@ killed."
(let (kill-buffer-query-functions kill-buffer-hook)
(kill-buffer obuf))))))
+;; FIXME we really need to fold the uniquify stuff in here by default,
+;; not using advice, and add it to the doc string.
(defun create-file-buffer (filename)
"Create a suitably named buffer for visiting FILENAME, and return it.
FILENAME (sans directory) is used unchanged if that name is free;
diff --git a/lisp/uniquify.el b/lisp/uniquify.el
index 5d973c7289..f0e86dc544 100644
--- a/lisp/uniquify.el
+++ b/lisp/uniquify.el
@@ -26,7 +26,7 @@
;;; Commentary:
-;; Emacs's standard method for making buffer names unique adds <2>, <3>,
+;; Emacs's traditional method for making buffer names unique adds <2>, <3>,
;; etc. to the end of (all but one of) the buffers. This file replaces
;; that behavior, for buffers visiting files and dired buffers, with a
;; uniquification that adds parts of the file name until the buffer names
@@ -94,23 +94,27 @@
(defcustom uniquify-buffer-name-style 'post-forward-angle-brackets
- "If non-nil, buffer names are uniquified with parts of directory name.
-The value determines the buffer name style and is one of `forward',
-`reverse', `post-forward', or `post-forward-angle-brackets'.
-For example, files `/foo/bar/mumble/name' and `/baz/quux/mumble/name'
+ "How to construct unique buffer names for files with the same base name.
+The value can be one of: `forward', `reverse', `post-forward',
+`post-forward-angle-brackets', or nil.
+
+For example, the files `/foo/bar/mumble/name' and `/baz/quux/mumble/name'
would have the following buffer names in the various styles:
- forward bar/mumble/name quux/mumble/name
- reverse name\\mumble\\bar name\\mumble\\quux
- post-forward name|bar/mumble name|quux/mumble
- post-forward-angle-brackets name<bar/mumble> name<quux/mumble>
- nil name name<2>
-Of course, the \"mumble\" part may be stripped as well, depending on the setting
-of `uniquify-strip-common-suffix'."
+
+ forward bar/mumble/name quux/mumble/name
+ reverse name\\mumble\\bar name\\mumble\\quux
+ post-forward name|bar/mumble name|quux/mumble
+ post-forward-angle-brackets name<bar/mumble> name<quux/mumble>
+ nil name name<2>
+
+The \"mumble\" part may be stripped as well, depending on the
+setting of `uniquify-strip-common-suffix'. For more options that
+you can set, browse the `uniquify' custom group."
:type '(radio (const forward)
(const reverse)
(const post-forward)
(const post-forward-angle-brackets)
- (const :tag "standard Emacs behavior (nil)" nil))
+ (const :tag "numeric suffixes" nil))
:version "24.4"
:require 'uniquify
:group 'uniquify)