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)