Mercurial > emacs
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") |