Function: dired-rename-subdir-1
dired-rename-subdir-1 is a byte-compiled function defined in
dired-aux.el.gz.
Signature
(dired-rename-subdir-1 DIR TO)
Source Code
;; Defined in /usr/src/emacs/lisp/dired-aux.el.gz
(defun dired-rename-subdir-1 (dir to)
;; Rename DIR to TO in headerlines and dired-subdir-alist, if DIR or
;; one of its subdirectories is expanded in this buffer.
(let ((expanded-dir (expand-file-name dir))
(alist dired-subdir-alist)
(elt nil))
(while alist
(setq elt (car alist)
alist (cdr alist))
(if (dired-in-this-tree-p (car elt) expanded-dir)
;; ELT's subdir is affected by the rename
(dired-rename-subdir-2 elt dir to)))
(if (equal dir default-directory)
;; if top level directory was renamed, lots of things have to be
;; updated:
(progn
(dired-unadvertise dir) ; we no longer dired DIR...
(setq default-directory to
dired-directory (expand-file-name;; this is correct
;; with and without wildcards
(file-name-nondirectory (if (stringp dired-directory)
dired-directory
(car dired-directory)))
to))
(let ((new-name (file-name-nondirectory
(directory-file-name (if (stringp dired-directory)
dired-directory
(car dired-directory))))))
;; try to rename buffer, but just leave old name if new
;; name would already exist (don't try appending "<%d>")
(or (get-buffer new-name)
(rename-buffer new-name)))
;; ... we dired TO now:
(dired-advertise)))))