comparison lisp/dired-aux.el @ 18417:9a272a7dae12

(dired-add-entry): New optional arg RELATIVE. (dired-update-file-line): Pass t for RELATIVE.
author Richard M. Stallman <rms@gnu.org>
date Mon, 23 Jun 1997 06:34:29 +0000
parents ba5fefe8ede1
children 2240a2e37b12
comparison
equal deleted inserted replaced
18416:2ec71bb15f86 18417:9a272a7dae12
755 (let ((char (following-char)) (opoint (point)) 755 (let ((char (following-char)) (opoint (point))
756 (buffer-read-only)) 756 (buffer-read-only))
757 (delete-region (point) (progn (forward-line 1) (point))) 757 (delete-region (point) (progn (forward-line 1) (point)))
758 (if file 758 (if file
759 (progn 759 (progn
760 (dired-add-entry file) 760 (dired-add-entry file nil t)
761 ;; Replace space by old marker without moving point. 761 ;; Replace space by old marker without moving point.
762 ;; Faster than goto+insdel inside a save-excursion? 762 ;; Faster than goto+insdel inside a save-excursion?
763 (subst-char-in-region opoint (1+ opoint) ?\040 char)))) 763 (subst-char-in-region opoint (1+ opoint) ?\040 char))))
764 (dired-move-to-filename)) 764 (dired-move-to-filename))
765 765
788 (defun dired-add-file (filename &optional marker-char) 788 (defun dired-add-file (filename &optional marker-char)
789 (dired-fun-in-all-buffers 789 (dired-fun-in-all-buffers
790 (file-name-directory filename) (file-name-nondirectory filename) 790 (file-name-directory filename) (file-name-nondirectory filename)
791 (function dired-add-entry) filename marker-char)) 791 (function dired-add-entry) filename marker-char))
792 792
793 (defun dired-add-entry (filename &optional marker-char) 793 (defun dired-add-entry (filename &optional marker-char relative)
794 ;; Add a new entry for FILENAME, optionally marking it 794 ;; Add a new entry for FILENAME, optionally marking it
795 ;; with MARKER-CHAR (a character, else dired-marker-char is used). 795 ;; with MARKER-CHAR (a character, else dired-marker-char is used).
796 ;; Note that this adds the entry `out of order' if files sorted by 796 ;; Note that this adds the entry `out of order' if files sorted by
797 ;; time, etc. 797 ;; time, etc.
798 ;; At least this version inserts in the right subdirectory (if present). 798 ;; At least this version inserts in the right subdirectory (if present).
799 ;; And it skips "." or ".." (see `dired-trivial-filenames'). 799 ;; And it skips "." or ".." (see `dired-trivial-filenames').
800 ;; Hidden subdirs are exposed if a file is added there. 800 ;; Hidden subdirs are exposed if a file is added there.
801 (setq filename (directory-file-name filename)) 801 (setq filename (directory-file-name filename))
802 ;; Entry is always for files, even if they happen to also be directories 802 ;; Entry is always for files, even if they happen to also be directories
803 (let ((opoint (point)) 803 (let* ((opoint (point))
804 (cur-dir (dired-current-directory)) 804 (cur-dir (dired-current-directory))
805 (orig-file-name filename) 805 (orig-file-name filename)
806 (directory (file-name-directory filename)) 806 (directory (if relative cur-dir (file-name-directory filename)))
807 reason) 807 reason)
808 (setq filename (file-name-nondirectory filename) 808 (setq filename
809 (if relative
810 (file-relative-name filename directory)
811 (file-name-nondirectory filename))
809 reason 812 reason
810 (catch 'not-found 813 (catch 'not-found
811 (if (string= directory cur-dir) 814 (if (string= directory cur-dir)
812 (progn 815 (progn
813 (skip-chars-forward "^\r\n") 816 (skip-chars-forward "^\r\n")