Mercurial > emacs
changeset 9743:6a97ed1cc733
(gud-common-init): If file arg has no directory,
let the debugger search PATH, and don't set default-directory.
author | Richard M. Stallman <rms@gnu.org> |
---|---|
date | Sat, 29 Oct 1994 11:14:05 +0000 |
parents | fe7653791d28 |
children | ca139ac056a1 |
files | lisp/gud.el |
diffstat | 1 files changed, 19 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/gud.el Sat Oct 29 09:47:12 1994 +0000 +++ b/lisp/gud.el Sat Oct 29 11:14:05 1994 +0000 @@ -983,12 +983,29 @@ (while (and w (= ?- (aref (car w) 0))) (setq w (cdr w))) (car w))) + (file-subst + (and file-word (substitute-in-file-name file-word))) (args (delq file-word (cdr words))) + ;; If a directory was specified, expand the file name. + ;; Otherwise, don't expand it, so GDB can use the PATH. + ;; A file name without directory is literally valid + ;; only if the file exists in ., and in that case, + ;; omitting the expansion here has no visible effect. (file (and file-word - (expand-file-name (substitute-in-file-name file-word)))) + (if (file-name-directory file-subst) + (expand-file-name file-subst) + file-subst))) (filepart (and file-word (file-name-nondirectory file)))) (switch-to-buffer (concat "*gud-" filepart "*")) - (and file-word (setq default-directory (file-name-directory file))) + ;; Set default-directory to the file's directory. + (and file-word + ;; Don't set default-directory if no directory was specified. + ;; In that case, either the file is found in the current directory, + ;; in which case this setq is a no-op, + ;; or it is found by searching PATH, + ;; in which case we don't know what directory it was found in. + (file-name-directory file) + (setq default-directory (file-name-directory file))) (or (bolp) (newline)) (insert "Current directory is " default-directory "\n") (apply 'make-comint (concat "gud-" filepart) program nil