nondirectory part of the file name.
(uniquify-rationalize-file-buffer-names):
Split the `newbuffile' arg into `base' and `dirname'.
Reuse old uniquify-items to avoid recomputing their base&dirname.
(uniquify-buffer-file-name): Only return the directory part.
(uniquify-rerationalize-w/o-cb): Don't bother reseting proposed names.
(rename-buffer): Use the `newname' arg as base.
(create-file-buffer): Split the file name into base and dirname.
(uniquify-make-item): Make `proposed' optional.
(uniquify-rationalize-file-buffer-names): Don't compute the
initial proposed name.
(uniquify-buffer-file-name): Remove dead code.
(uniquify-strip-common-suffix): New var.
(uniquify-rationalize): Always recompute initial proposed name.
Strip common suffix if requested.
(uniquify-rationalize-file-buffer-names): Use it and make the args
non-optional (i.e. don't support "re-rationalize all" any more).
(uniquify-rerationalize-w/o-cb): New fun.
(uniquify-maybe-rerationalize-w/o-cb): Use it to rerationalize
immediately and only the relevant buffers.
Merged from uniquify-delay-rationalize-file-buffer-names and
uniquify-delayed-rationalize-file-buffer-names.
(kill-buffer-hook, rename-buffer): Use it.
(uniquify-rationalize-file-buffer-names, rename-buffer): Use it and set
it to prevent accidental renaming of unrelated buffers.
(uniquify-delay-rationalize-file-buffer-names): Use it to avoid
the cost of uniquify when killing unrelated buffers.
(uniquify-ask-about-buffer-names-p, uniquify-ignore-buffers-re)
(uniquify-min-dir-content, uniquify-separator, uniquify-trailing-separator-p):
Remove redundant group specification.
(uniquify-file-name-nondirectory): Delete.
(uniquify-rationalize-file-buffer-names): Simplify.
Use directory names as `filename' component of uniquify-item.
(uniquify-get-proposed-name): Adjust now that `filename' does not
include `base'.
(uniquify-ref-base, uniquify-ref-filename, uniquify-ref-buffer)
(uniquify-ref-proposed, uniquify-set-proposed): Remove.
(uniquify-item): New struct. Update users of uniquify-ref-*.
(uniquify-get-proposed-name, uniquify-rationalize-a-list):
Make `depth' optional.
(uniquify-non-file-buffer-names): Remove.
(uniquify-rationalize-file-buffer-names): Don't set it up.
Use uniquify-make-item and don't pass the now-optional depth.
(uniquify-rationalize-conflicting-sublist): Check the new buffer
name directly instead of relying on uniquify-non-file-buffer-names.
(uniquify-rename-buffer): Use with-current-buffer and pass
the `unique' arg to rename-buffer.
Add to kill-buffer-hook for buffers with conflict.
(rename-buffer): Check kill-buffer-hook to see if there was a conflict.
(uniquify-delay-rationalize-file-buffer-names): Remove useless check.
(kill-buffer-hook): Don't change globally.
Rename from delay-uniquify-rationalize-file-buffer-names.
Only rationalize if the buffer is under uniquify control.
(uniquify-delayed-rationalize-file-buffer-names):
Rename from delayed-uniquify-rationalize-file-buffer-names.
(uniquify-ref-base, uniquify-ref-filename)
(uniquify-ref-buffer, uniquify-ref-proposed): New functions.
(uniquify-fix-item-base, uniquify-fix-item-filename)
(uniquify-fix-item-buffer, uniquify-fix-item-proposed): Deleted.
Callers changed.
(uniquify-set-proposed): Changed to work with a vector item.
(uniquify-rationalize-file-buffer-names): Use a list of arrays for
the fix list, and a list of strings for the non-file buffer
names. Both changes reduce consing.
(uniquify-rationalize-a-list): Local variable renaming.
(uniquify-rationalize-conflicting-sublist): Use member instead of
assoc.
(uniquify-rename-buffer): Use unless instead of if not.
Precisely when you have a buffer visiting a file in the root directory
and then revert it to a file with the same name in a different
directory.
(uniquify-fix-item-proposed): Renamed from
uniquify-fix-item-min-proposed.
(uniquify-set-proposed): New function.
(uniquify-rationalize-file-buffer-names): Code reshuffled for
clarity and speed.
(uniquify-item-greaterp): Substitutes uniquify-item-lessp. This
is equivalent to what the old code did.
(uniquify-rationalize-a-list): Never recompute the proposed
name. Sort the conflicting sublist before rationalising it: this
is equivalent to what the old code did, but one directory element
at a time, and only when necessary.
(uniquify-rationalize-conflicting-sublist): Recompute here the
proposed name.
(uniquify-fix-item-base, uniquify-fix-item-filename,
uniquify-fix-item-buffer): Changed defmacro to defalias (cosmetic change).
(uniquify-fix-item-unrationalized-buffer): Deleted: was the fourth
place in the item, but waas never used.
(uniquify-fix-item-min-proposed): New defalias: the fourth place
in the item is now used as cache for the proposed name.
(uniquify-rationalize-file-buffer-names): Move computation made on
newbuffile out of the loop, in the newbuffile-nd local var. Use
dolist (cosmetic change). Compute the proposed name for the most
common case and cache it in the fourth place in the item.
(uniquify-rationalize-file-buffer-names): Used to return a list
of flags indicating renamed buffers, but that return value was
never used.
(uniquify-item-lessp): Replaces uniquify-filename-lessp, works on
the cached proposed name, does much less consing and is quicker.
(uniquify-filename-lessp): Deleted.
(uniquify-rationalize-a-list): Use dolist (cosmetic change). Do
not bind locally the uniquify-possibly-resolvable flag. Use the
cached proposed name if possible.
(uniquify-get-proposed-name): Arguments changed, callers changed.
(uniquify-rationalize-conflicting-sublist): Explicitely reset the
uniquify-possibly-resolvable flag, which is no more bound locally.
(uniquify-rename-buffer): Do not set the unrationalised-buffer
flag, which is replaced by the cached proposed name.
All callers changed.
(uniquify-rationalize-file-buffer-names):
Use directory-file-name for directories (eliminate trailing slash).
Call uniquify-fix-item-unrationalized-buffer.
(uniquify-buffer-file-name): Use directory-file-name.
(uniquify-fix-item-unrationalized-buffer): New function.
(uniquify-unrationalized-buffer): Function deleted.