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)))))