/[emacs]/emacs/lisp/uniquify.el
ViewVC logotype

Diff of /emacs/lisp/uniquify.el

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.44 by monnier, Tue May 6 14:29:39 2003 UTC revision 1.45 by monnier, Wed May 7 15:53:08 2003 UTC
# Line 160  contains the name of the directory which Line 160  contains the name of the directory which
160  ;; uniquify-fix-list data structure  ;; uniquify-fix-list data structure
161  (defstruct (uniquify-item  (defstruct (uniquify-item
162              (:constructor nil) (:copier nil)              (:constructor nil) (:copier nil)
163              (:constructor uniquify-make-item (base filename buffer proposed)))              (:constructor uniquify-make-item (base dirname buffer proposed)))
164    base filename buffer proposed)    base dirname buffer proposed)
165    
166  ;; Internal variables used free  ;; Internal variables used free
167  (defvar uniquify-possibly-resolvable nil)  (defvar uniquify-possibly-resolvable nil)
# Line 251  in `uniquify-list-buffers-directory-mode Line 251  in `uniquify-list-buffers-directory-mode
251      (uniquify-rationalize-conflicting-sublist conflicting-sublist      (uniquify-rationalize-conflicting-sublist conflicting-sublist
252                                                old-proposed depth)))                                                old-proposed depth)))
253    
254  (defun uniquify-get-proposed-name (base filename &optional depth)  (defun uniquify-get-proposed-name (base dirname &optional depth)
255    (unless depth (setq depth uniquify-min-dir-content))    (unless depth (setq depth uniquify-min-dir-content))
256    (assert (equal (directory-file-name filename) filename))  ;No trailing slash.    (assert (equal (directory-file-name dirname) dirname)) ;No trailing slash.
257    
258    ;; Distinguish directories by adding extra separator.    ;; Distinguish directories by adding extra separator.
259    (if (and uniquify-trailing-separator-p    (if (and uniquify-trailing-separator-p
260             (file-directory-p (expand-file-name base filename))             (file-directory-p (expand-file-name base dirname))
261             (not (string-equal base "")))             (not (string-equal base "")))
262        (cond ((eq uniquify-buffer-name-style 'forward)        (cond ((eq uniquify-buffer-name-style 'forward)
263               (setq base (file-name-as-directory base)))               (setq base (file-name-as-directory base)))
# Line 267  in `uniquify-list-buffers-directory-mode Line 267  in `uniquify-list-buffers-directory-mode
267    
268    (let ((extra-string nil)    (let ((extra-string nil)
269          (n depth))          (n depth))
270      (while (and (> n 0) filename)      (while (and (> n 0) dirname)
271        (let ((file (file-name-nondirectory filename)))        (let ((file (file-name-nondirectory dirname)))
272          (when (setq filename (file-name-directory filename))          (when (setq dirname (file-name-directory dirname))
273            (setq filename (directory-file-name filename)))            (setq dirname (directory-file-name dirname)))
274          (setq n (1- n))          (setq n (1- n))
275          (push (if (zerop (length file)) ;nil or "".          (push (if (zerop (length file)) ;nil or "".
276                    (prog1 "" (setq filename nil)) ;Could be `filename' iso "".                    (prog1 "" (setq dirname nil)) ;Could be `dirname' iso "".
277                  file)                  file)
278                extra-string)))                extra-string)))
279      (when (zerop n)      (when (zerop n)
280        (if (and filename extra-string        (if (and dirname extra-string
281                 (equal filename (file-name-directory filename)))                 (equal dirname (file-name-directory dirname)))
282            ;; We're just before the root.  Let's add the leading / already.            ;; We're just before the root.  Let's add the leading / already.
283            ;; With "/a/b"+"/c/d/b" this leads to "/a/b" and "d/b" but with            ;; With "/a/b"+"/c/d/b" this leads to "/a/b" and "d/b" but with
284            ;; "/a/b"+"/c/a/b" this leads to "/a/b" and "a/b".            ;; "/a/b"+"/c/a/b" this leads to "/a/b" and "a/b".
# Line 322  in `uniquify-list-buffers-directory-mode Line 322  in `uniquify-list-buffers-directory-mode
322              (setf (uniquify-item-proposed item)              (setf (uniquify-item-proposed item)
323                    (uniquify-get-proposed-name                    (uniquify-get-proposed-name
324                     (uniquify-item-base item)                     (uniquify-item-base item)
325                     (uniquify-item-filename item)                     (uniquify-item-dirname item)
326                     depth)))                     depth)))
327            (uniquify-rationalize-a-list conf-list depth))            (uniquify-rationalize-a-list conf-list depth))
328        (unless (string= old-name "")        (unless (string= old-name "")

Legend:
Removed from v.1.44  
changed lines
  Added in v.1.45

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26