Function: dired-virtual-guess-dir
dired-virtual-guess-dir is a byte-compiled function defined in
dired-x.el.gz.
Signature
(dired-virtual-guess-dir)
Documentation
Guess and return appropriate working directory of this buffer.
The buffer is assumed to be in Dired or ls -lR format. The guess is based upon buffer contents. If nothing could be guessed, returns nil.
Source Code
;; Defined in /usr/src/emacs/lisp/dired-x.el.gz
(defun dired-virtual-guess-dir ()
"Guess and return appropriate working directory of this buffer.
The buffer is assumed to be in Dired or ls -lR format. The guess is
based upon buffer contents. If nothing could be guessed, returns
nil."
(let ((regexp "^\\( \\)?\\([^ \n\r]*\\)\\(:\\)[\n\r]")
(subexpr 2))
(goto-char (point-min))
(cond ((looking-at regexp)
;; If a saved dired buffer, look to which dir and
;; perhaps wildcard it belongs:
(let ((dir (buffer-substring (match-beginning subexpr)
(match-end subexpr))))
(file-name-as-directory dir)))
;; Else no match for headerline found. It's a raw ls listing.
;; In raw ls listings the directory does not have a headerline
;; try parent of first subdir, if any
((re-search-forward regexp nil t)
(file-name-directory
(directory-file-name
(file-name-as-directory
(buffer-substring (match-beginning subexpr)
(match-end subexpr))))))
(t ; if all else fails
nil))))