# HG changeset patch # User Richard M. Stallman # Date 783429245 0 # Node ID 6a97ed1cc7338fbca39554c23dee7eebc9baba0f # Parent fe7653791d28603b26b8b301311f73d395395583 (gud-common-init): If file arg has no directory, let the debugger search PATH, and don't set default-directory. diff -r fe7653791d28 -r 6a97ed1cc733 lisp/gud.el --- 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