# HG changeset patch # User Miles Bader # Date 973139281 0 # Node ID 61f4c87b845c37fba1b9f81cc90fd9d25f8b0418 # Parent 1e844cbdaf3e21adb528e9c288122e270357e9cd (tooltip-gud-tips-setup): New function. (tooltip-gud-tips-p): Add :set to call tooltip-gud-tips-setup. (tooltip-mode): Call tooltip-gud-tips-setup. (tooltip-gud-tips): Use `gud-basic-call' instead of process-send-string, so the prompt gets frobbed appropriately. Handle nil return value from `tooltip-gud-print-command'. diff -r 1e844cbdaf3e -r 61f4c87b845c lisp/tooltip.el --- a/lisp/tooltip.el Thu Nov 02 02:29:18 2000 +0000 +++ b/lisp/tooltip.el Thu Nov 02 04:28:01 2000 +0000 @@ -1,6 +1,6 @@ ;;; tooltip.el --- Show tooltip windows -;; Copyright (C) 1997, 1999 Free Software Foundation, Inc. +;; Copyright (C) 1997, 1999, 2000 Free Software Foundation, Inc. ;; Author: Gerd Moellmann ;; Keywords: help c mouse tools @@ -93,6 +93,9 @@ "*Non-nil means show tooltips in GUD sessions." :type 'boolean :tag "GUD" + :set #'(lambda (symbol on) + (setq tooltip-gud-tips-p on) + (if on (tooltip-gud-tips-setup))) :group 'tooltip) @@ -184,20 +187,22 @@ ;; `ignore' is the default binding for mouse movements. (define-key global-map [mouse-movement] (if on 'tooltip-mouse-motion 'ignore)) - (when (and on tooltip-gud-tips-p) - (global-set-key [S-mouse-3] 'tooltip-gud-toggle-dereference) - (add-hook 'gdb-mode-hook - #'(lambda () (setq tooltip-gud-debugger 'gdb))) - (add-hook 'sdb-mode-hook - #'(lambda () (setq tooltip-gud-debugger 'sdb))) - (add-hook 'dbx-mode-hook - #'(lambda () (setq tooltip-gud-debugger 'dbx))) - (add-hook 'xdb-mode-hook - #'(lambda () (setq tooltip-gud-debugger 'xdb))) - (add-hook 'perldb-mode-hook - #'(lambda () (setq tooltip-gud-debugger 'perldb)))))) + (tooltip-gud-tips-setup))) - +(defun tooltip-gud-tips-setup () + "Setup debugger mode-hooks for tooltips." + (when (and tooltip-mode tooltip-gud-tips-p) + (global-set-key [S-mouse-3] 'tooltip-gud-toggle-dereference) + (add-hook 'gdb-mode-hook + #'(lambda () (setq tooltip-gud-debugger 'gdb))) + (add-hook 'sdb-mode-hook + #'(lambda () (setq tooltip-gud-debugger 'sdb))) + (add-hook 'dbx-mode-hook + #'(lambda () (setq tooltip-gud-debugger 'dbx))) + (add-hook 'xdb-mode-hook + #'(lambda () (setq tooltip-gud-debugger 'xdb))) + (add-hook 'perldb-mode-hook + #'(lambda () (setq tooltip-gud-debugger 'perldb))))) ;;; Timeout for tooltip display @@ -416,12 +421,12 @@ (eval (cons 'and tooltip-gud-display)))) (let ((expr (tooltip-expr-to-print event))) (when expr - (setq tooltip-gud-original-filter (process-filter process)) - (set-process-filter process 'tooltip-gud-process-output) - (process-send-string - process (concat (tooltip-gud-print-command expr) "\n")) - expr))))) - + (let ((cmd (tooltip-gud-print-command expr))) + (unless (null cmd) ; CMD can be nil if unknown debugger + (setq tooltip-gud-original-filter (process-filter process)) + (set-process-filter process 'tooltip-gud-process-output) + (gud-basic-call cmd) + expr))))))) ;;; Tooltip help.