Function: uniquify-get-unique-names
uniquify-get-unique-names is a byte-compiled function defined in
uniquify.el.gz.
Signature
(uniquify-get-unique-names BUFFERS)
Documentation
Return a list with unique names for buffers in BUFFERS.
The names are unique only among BUFFERS, and may conflict with other
buffers not in that list. Each string has a text property
uniquify-orig-buffer that stores the corresponding buffer.
This does not rename the buffers or change any state; the unique name is only present in the returned alist.
Source Code
;; Defined in /usr/src/emacs/lisp/uniquify.el.gz
(defun uniquify-get-unique-names (buffers)
"Return a list with unique names for buffers in BUFFERS.
The names are unique only among BUFFERS, and may conflict with other
buffers not in that list. Each string has a text property
`uniquify-orig-buffer' that stores the corresponding buffer.
This does not rename the buffers or change any state; the unique name is
only present in the returned alist."
(let ((buffer-names (make-hash-table :size (length buffers) :test 'equal))
fix-lists-by-base)
(dolist (buf buffers)
(with-current-buffer buf
(setq uniquify--stateless-curname (buffer-name buf))
(puthash (buffer-name buf) buf buffer-names)
(when uniquify-managed
(let ((base (uniquify-item-base (car uniquify-managed))))
(push
(uniquify-make-item base (uniquify-buffer-file-name buf) buf nil)
(alist-get base fix-lists-by-base nil nil #'equal))))))
(dolist (pair fix-lists-by-base)
(uniquify-rationalize--generic
(cdr pair)
(lambda (item name) ; rename-buffer
(with-current-buffer (uniquify-item-buffer item)
(remhash uniquify--stateless-curname buffer-names)
(setq uniquify--stateless-curname name)
(puthash name (current-buffer) buffer-names)))
(lambda (name) ; get-buffer
(gethash name buffer-names)))))
(mapcar (lambda (buf)
(with-current-buffer buf
(let ((name
(if (eq uniquify--stateless-curname
(buffer-name buf))
(copy-sequence uniquify--stateless-curname)
uniquify--stateless-curname)))
(when name
(put-text-property 0 1 'uniquify-orig-buffer buf name))
(kill-local-variable 'uniquify--stateless-curname)
name)))
buffers))