diff options
author | Nick Roberts <nickrob@snap.net.nz> | 2006-04-26 23:03:56 +0000 |
---|---|---|
committer | Nick Roberts <nickrob@snap.net.nz> | 2006-04-26 23:03:56 +0000 |
commit | 372c6f567246899ba37e4f015bf1949dcc64800e (patch) | |
tree | 687dc75a1378d82aab4fb9d077397012e8dde156 | |
parent | 8d3362773fe75655784e9536dbdc31b8a59210f4 (diff) | |
download | emacs-372c6f567246899ba37e4f015bf1949dcc64800e.tar.gz |
(gud-comint-buffer): Move forward to stop byte compiler warnings.
(gud-basic-call, gud-find-expr): Let user select an expression
for printing. Print expression as well as value in GUD buffer.
-rw-r--r-- | lisp/progmodes/gud.el | 27 |
1 files changed, 22 insertions, 5 deletions
diff --git a/lisp/progmodes/gud.el b/lisp/progmodes/gud.el index e1e2b9e28cd..1549150dfa8 100644 --- a/lisp/progmodes/gud.el +++ b/lisp/progmodes/gud.el @@ -83,6 +83,8 @@ Supported debuggers include gdb, sdb, dbx, xdb, perldb, pdb (Python), jdb, and b (defvar gud-minor-mode nil) (put 'gud-minor-mode 'permanent-local t) +(defvar gud-comint-buffer nil) + (defvar gud-keep-buffer nil) (defun gud-symbol (sym &optional soft minor-mode) @@ -740,8 +742,6 @@ To run GDB in text command mode, set `gud-gdb-command-name' to ;; The completion list is constructed by the process filter. (defvar gud-gdb-fetched-lines) -(defvar gud-comint-buffer nil) - (defun gud-gdb-complete-command (&optional command a b) "Perform completion on the GDB command preceding point. This is implemented using the GDB `complete' command which isn't @@ -2889,8 +2889,11 @@ Obeying it means displaying in another window the specified file and line." (set-buffer gud-comint-buffer) (save-restriction (widen) - (goto-char (process-mark proc)) - (forward-line 0) + (if (marker-position gud-delete-prompt-marker) + ;; We get here when printing an expression. + (goto-char gud-delete-prompt-marker) + (goto-char (process-mark proc)) + (forward-line 0)) (if (looking-at comint-prompt-regexp) (set-marker gud-delete-prompt-marker (point))) (if (memq gud-minor-mode '(gdbmi gdba)) @@ -2911,7 +2914,21 @@ Obeying it means displaying in another window the specified file and line." (defvar gud-find-expr-function 'gud-find-c-expr) (defun gud-find-expr (&rest args) - (apply gud-find-expr-function args)) + (let ((expr (if (and transient-mark-mode mark-active) + (buffer-substring (region-beginning) (region-end)) + (apply gud-find-expr-function args)))) + (save-match-data + (if (string-match "\n" expr) + (error "Expression must not include a newline")) + (with-current-buffer gud-comint-buffer + (save-excursion + (goto-char (process-mark (get-buffer-process gud-comint-buffer))) + (forward-line 0) + (when (looking-at comint-prompt-regexp) + (set-marker gud-delete-prompt-marker (point)) + (set-marker-insertion-type gud-delete-prompt-marker t)) + (insert (concat expr " = "))))) + expr)) ;; The next eight functions are hacked from gdbsrc.el by ;; Debby Ayers <ayers@asc.slb.com>, |