summaryrefslogtreecommitdiff
path: root/lisp/gud.el
diff options
context:
space:
mode:
authorStefan Monnier <monnier@iro.umontreal.ca>2001-05-23 18:41:33 +0000
committerStefan Monnier <monnier@iro.umontreal.ca>2001-05-23 18:41:33 +0000
commitd2d1851b5d3b7583e7a7db2f8b3db2d33c753f5c (patch)
treed12c140a71ae15e78d23cb9e92d23ab855db091c /lisp/gud.el
parent5e3d4fbce30d4d07e781a943d7fd6330d6d586bd (diff)
downloademacs-d2d1851b5d3b7583e7a7db2f8b3db2d33c753f5c.tar.gz
(gud-gdb-run-command-fetch-lines): Use forward-line
rather than beginning-of-line to avoid problems with fields. (gud-perldb-massage-args): Use unless and push. (gud-chdir-before-run): New var. (gud-common-init): Use it.
Diffstat (limited to 'lisp/gud.el')
-rw-r--r--lisp/gud.el19
1 files changed, 12 insertions, 7 deletions
diff --git a/lisp/gud.el b/lisp/gud.el
index 0161e854854..9119a2b9497 100644
--- a/lisp/gud.el
+++ b/lisp/gud.el
@@ -580,7 +580,7 @@ BUFFER is the GUD buffer in which to run the command."
(set-buffer buffer)
(if (save-excursion
(goto-char (point-max))
- (beginning-of-line)
+ (forward-line 0)
(not (looking-at comint-prompt-regexp)))
nil
;; Much of this copied from GDB complete, but I'm grabbing the stack
@@ -1201,7 +1201,7 @@ directories if your program contains sources from more than one directory."
(setq seen-e t))
(funcall shift))
- (when (not seen-e)
+ (unless seen-e
(if (or (not args)
(string-match "^-" (car args)))
(error "Can't use stdin as the script to debug."))
@@ -1212,9 +1212,9 @@ directories if your program contains sources from more than one directory."
;; as -e macs.
(if (and args (equal "--" (car args)))
(funcall shift)
- (and seen-e (setq new-args (cons "--" new-args))))
+ (and seen-e (push "--" new-args)))
- (setq new-args (cons "-emacs" new-args))
+ (push "-emacs" new-args)
(while args
(funcall shift))
@@ -2021,12 +2021,17 @@ comint mode, which see."
;; in the selected window.
;;;###autoload (add-hook 'same-window-regexps "\\*gud-.*\\*\\(\\|<[0-9]+>\\)")
+(defcustom gud-chdir-before-run t
+ "Non-nil if GUD should `cd' to the debugged executable."
+ :group 'gud
+ :type 'boolean)
+
;; Perform initializations common to all debuggers.
;; The first arg is the specified command line,
;; which starts with the program to debug.
;; The other three args specify the values to use
;; for local variables in the debugger buffer.
-(defun gud-common-init (command-line massage-args marker-filter find-file)
+(defun gud-common-init (command-line massage-args marker-filter &optional find-file)
(let* ((words (split-string command-line))
(program (car words))
;; Extract the file name from WORDS
@@ -2054,6 +2059,7 @@ comint mode, which see."
(pop-to-buffer (concat "*gud" filepart "*"))
;; Set default-directory to the file's directory.
(and file-word
+ gud-chdir-before-run
;; 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,
@@ -2075,8 +2081,7 @@ comint mode, which see."
(gud-mode)
(make-local-variable 'gud-marker-filter)
(setq gud-marker-filter marker-filter)
- (make-local-variable 'gud-find-file)
- (setq gud-find-file find-file)
+ (if find-file (set (make-local-variable 'gud-find-file) find-file))
(set-process-filter (get-buffer-process (current-buffer)) 'gud-filter)
(set-process-sentinel (get-buffer-process (current-buffer)) 'gud-sentinel)