Function: dired-rename-subdir

dired-rename-subdir is a byte-compiled function defined in dired-aux.el.gz.

Signature

(dired-rename-subdir FROM-DIR TO-DIR)

Source Code

;; Defined in /usr/src/emacs/lisp/dired-aux.el.gz
(defun dired-rename-subdir (from-dir to-dir)
  (setq from-dir (file-name-as-directory from-dir)
	to-dir (file-name-as-directory to-dir))
  (dired-fun-in-all-buffers from-dir nil
			    #'dired-rename-subdir-1 from-dir to-dir)
  ;; Update visited file name of all affected buffers
  (let ((expanded-from-dir (expand-file-name from-dir))
	(blist (buffer-list)))
    (while blist
      (with-current-buffer (car blist)
	(if (and buffer-file-name
		 (dired-in-this-tree-p buffer-file-name expanded-from-dir))
	    (let ((modflag (buffer-modified-p))
		  (to-file (replace-regexp-in-string
			    (concat "^" (regexp-quote from-dir))
			    to-dir
			    buffer-file-name)))
	      (set-visited-file-name to-file)
	      (set-buffer-modified-p modflag))))
      (setq blist (cdr blist)))))