Mercurial > emacs
comparison lisp/dired.el @ 73099:59243837a57a
(dired-build-subdir-alist): When file ends in colon,
don't exit the loop, just disregard that file.
author | Richard M. Stallman <rms@gnu.org> |
---|---|
date | Sun, 24 Sep 2006 20:37:13 +0000 |
parents | 28b70fec3284 |
children | dae82b8b0355 |
comparison
equal
deleted
inserted
replaced
73098:28a1d231aeec | 73099:59243837a57a |
---|---|
2202 (and (string-match "R" switches) | 2202 (and (string-match "R" switches) |
2203 (string-match "\\`/.*:\\(/.*\\)" default-directory) | 2203 (string-match "\\`/.*:\\(/.*\\)" default-directory) |
2204 (concat "\\`" (match-string 1 default-directory))))) | 2204 (concat "\\`" (match-string 1 default-directory))))) |
2205 (goto-char (point-min)) | 2205 (goto-char (point-min)) |
2206 (setq dired-subdir-alist nil) | 2206 (setq dired-subdir-alist nil) |
2207 (while (and (re-search-forward dired-subdir-regexp nil t) | 2207 (while (re-search-forward dired-subdir-regexp nil t) |
2208 ;; Avoid taking a file name ending in a colon | 2208 ;; Avoid taking a file name ending in a colon |
2209 ;; as a subdir name. | 2209 ;; as a subdir name. |
2210 (not (save-excursion | 2210 (unless (save-excursion |
2211 (goto-char (match-beginning 0)) | 2211 (goto-char (match-beginning 0)) |
2212 (beginning-of-line) | 2212 (beginning-of-line) |
2213 (forward-char 2) | 2213 (forward-char 2) |
2214 (save-match-data (looking-at dired-re-perms))))) | 2214 (save-match-data (looking-at dired-re-perms))) |
2215 (save-excursion | 2215 (save-excursion |
2216 (goto-char (match-beginning 1)) | 2216 (goto-char (match-beginning 1)) |
2217 (setq new-dir-name | 2217 (setq new-dir-name |
2218 (buffer-substring-no-properties (point) (match-end 1)) | 2218 (buffer-substring-no-properties (point) (match-end 1)) |
2219 new-dir-name | 2219 new-dir-name |
2220 (save-match-data | 2220 (save-match-data |
2221 (if (and R-ftp-base-dir-regex | 2221 (if (and R-ftp-base-dir-regex |
2222 (not (string= new-dir-name default-directory)) | 2222 (not (string= new-dir-name default-directory)) |
2223 (string-match R-ftp-base-dir-regex new-dir-name)) | 2223 (string-match R-ftp-base-dir-regex new-dir-name)) |
2224 (concat default-directory | 2224 (concat default-directory |
2225 (substring new-dir-name (match-end 0))) | 2225 (substring new-dir-name (match-end 0))) |
2226 (expand-file-name new-dir-name)))) | 2226 (expand-file-name new-dir-name)))) |
2227 (delete-region (point) (match-end 1)) | 2227 (delete-region (point) (match-end 1)) |
2228 (insert new-dir-name)) | 2228 (insert new-dir-name))) |
2229 (setq count (1+ count)) | 2229 (setq count (1+ count)) |
2230 (dired-alist-add-1 new-dir-name | 2230 (dired-alist-add-1 new-dir-name |
2231 ;; Place a sub directory boundary between lines. | 2231 ;; Place a sub directory boundary between lines. |
2232 (save-excursion | 2232 (save-excursion |
2233 (goto-char (match-beginning 0)) | 2233 (goto-char (match-beginning 0)) |
2234 (beginning-of-line) | 2234 (beginning-of-line) |
2235 (point-marker)))) | 2235 (point-marker)))) |
2236 (if (and (> count 1) (interactive-p)) | 2236 (if (and (> count 1) (interactive-p)) |
2237 (message "Buffer includes %d directories" count)) | 2237 (message "Buffer includes %d directories" count))) |
2238 ;; We don't need to sort it because it is in buffer order per | 2238 ;; We don't need to sort it because it is in buffer order per |
2239 ;; constructionem. Return new alist: | 2239 ;; constructionem. Return new alist: |
2240 dired-subdir-alist))) | 2240 dired-subdir-alist)) |
2241 | 2241 |
2242 (defun dired-alist-add-1 (dir new-marker) | 2242 (defun dired-alist-add-1 (dir new-marker) |
2243 ;; Add new DIR at NEW-MARKER. Don't sort. | 2243 ;; Add new DIR at NEW-MARKER. Don't sort. |
2244 (setq dired-subdir-alist | 2244 (setq dired-subdir-alist |
2245 (cons (cons (dired-normalize-subdir dir) new-marker) | 2245 (cons (cons (dired-normalize-subdir dir) new-marker) |