From df94fa1e38259d1066763019ca711bfb4114efe1 Mon Sep 17 00:00:00 2001 From: Nick Roberts Date: Mon, 9 May 2005 21:55:33 +0000 Subject: (gud-tooltip-mode): Require tooltip to be safe. (gud-tooltip-print-command): Add gdbmi case. (gud-tooltip-tips): Call gdb-tooltip-print-1 first if there is preprocessor info. --- lisp/progmodes/gud.el | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/lisp/progmodes/gud.el b/lisp/progmodes/gud.el index 544a480463..5c81ba7f6f 100644 --- a/lisp/progmodes/gud.el +++ b/lisp/progmodes/gud.el @@ -3207,6 +3207,7 @@ This event can be examined by forms in GUD-TOOLTIP-DISPLAY.") "Toggle the display of GUD tooltips." :global t :group 'gud + (require 'tooltip) (if gud-tooltip-mode (progn (add-hook 'change-major-mode-hook 'gud-tooltip-change-major-mode) @@ -3253,7 +3254,7 @@ If GUD-TOOLTIP-DEREFERENCE is t, also prepend a `*' to EXPR." (setq expr (concat "*" expr))) (case gud-minor-mode ((gdb gdba) (concat "server print " expr)) - (dbx (concat "print " expr)) + ((dbx gdbmi) (concat "print " expr)) (xdb (concat "p " expr)) (sdb (concat expr "/")) (perldb expr))) @@ -3293,9 +3294,14 @@ This function must return nil if it doesn't handle EVENT." expr)))) (let ((cmd (gud-tooltip-print-command expr))) (unless (null cmd) ; CMD can be nil if unknown debugger - (if (eq gud-minor-mode 'gdba) - (gdb-enqueue-input - (list (concat cmd "\n") 'gdb-tooltip-print)) + (if (memq gud-minor-mode '(gdba gdbmi)) + (if gdb-macro-info + (gdb-enqueue-input + (list (concat + gdb-server-prefix "macro expand " expr "\n") + `(lambda () (gdb-tooltip-print-1 ,expr)))) + (gdb-enqueue-input + (list (concat cmd "\n") 'gdb-tooltip-print))) (setq gud-tooltip-original-filter (process-filter process)) (set-process-filter process 'gud-tooltip-process-output) (gud-basic-call cmd)) -- cgit v1.2.3