From e3456652af4eb1f2a567791bc8df0634ebf3fe49 Mon Sep 17 00:00:00 2001 From: Nick Roberts Date: Wed, 26 Apr 2006 23:03:56 +0000 Subject: [PATCH] (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. --- lisp/progmodes/gud.el | 27 ++++++++++++++++++++++----- 1 file 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 , -- 2.39.5