diff options
| author | Miles Bader | 2000-11-02 04:28:01 +0000 |
|---|---|---|
| committer | Miles Bader | 2000-11-02 04:28:01 +0000 |
| commit | c39e89832acff3d227f6889fa92d5beb9704857c (patch) | |
| tree | 7075f37f47e8c009ff299c0bd16cee46eed51c9d | |
| parent | 0e40b809485622e7dcf06a1da1abcbc92069c91b (diff) | |
| download | emacs-c39e89832acff3d227f6889fa92d5beb9704857c.tar.gz emacs-c39e89832acff3d227f6889fa92d5beb9704857c.zip | |
(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'.
| -rw-r--r-- | lisp/tooltip.el | 47 |
1 files changed, 26 insertions, 21 deletions
diff --git a/lisp/tooltip.el b/lisp/tooltip.el index 5950ff39308..81095aace9e 100644 --- a/lisp/tooltip.el +++ b/lisp/tooltip.el | |||
| @@ -1,6 +1,6 @@ | |||
| 1 | ;;; tooltip.el --- Show tooltip windows | 1 | ;;; tooltip.el --- Show tooltip windows |
| 2 | 2 | ||
| 3 | ;; Copyright (C) 1997, 1999 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 1997, 1999, 2000 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Author: Gerd Moellmann <gerd@acm.org> | 5 | ;; Author: Gerd Moellmann <gerd@acm.org> |
| 6 | ;; Keywords: help c mouse tools | 6 | ;; Keywords: help c mouse tools |
| @@ -93,6 +93,9 @@ Do so after `tooltip-short-delay'." | |||
| 93 | "*Non-nil means show tooltips in GUD sessions." | 93 | "*Non-nil means show tooltips in GUD sessions." |
| 94 | :type 'boolean | 94 | :type 'boolean |
| 95 | :tag "GUD" | 95 | :tag "GUD" |
| 96 | :set #'(lambda (symbol on) | ||
| 97 | (setq tooltip-gud-tips-p on) | ||
| 98 | (if on (tooltip-gud-tips-setup))) | ||
| 96 | :group 'tooltip) | 99 | :group 'tooltip) |
| 97 | 100 | ||
| 98 | 101 | ||
| @@ -184,20 +187,22 @@ With ARG, turn tooltip mode on if and only if ARG is positive." | |||
| 184 | ;; `ignore' is the default binding for mouse movements. | 187 | ;; `ignore' is the default binding for mouse movements. |
| 185 | (define-key global-map [mouse-movement] | 188 | (define-key global-map [mouse-movement] |
| 186 | (if on 'tooltip-mouse-motion 'ignore)) | 189 | (if on 'tooltip-mouse-motion 'ignore)) |
| 187 | (when (and on tooltip-gud-tips-p) | 190 | (tooltip-gud-tips-setup))) |
| 188 | (global-set-key [S-mouse-3] 'tooltip-gud-toggle-dereference) | 191 | |
| 189 | (add-hook 'gdb-mode-hook | 192 | (defun tooltip-gud-tips-setup () |
| 190 | #'(lambda () (setq tooltip-gud-debugger 'gdb))) | 193 | "Setup debugger mode-hooks for tooltips." |
| 191 | (add-hook 'sdb-mode-hook | 194 | (when (and tooltip-mode tooltip-gud-tips-p) |
| 192 | #'(lambda () (setq tooltip-gud-debugger 'sdb))) | 195 | (global-set-key [S-mouse-3] 'tooltip-gud-toggle-dereference) |
| 193 | (add-hook 'dbx-mode-hook | 196 | (add-hook 'gdb-mode-hook |
| 194 | #'(lambda () (setq tooltip-gud-debugger 'dbx))) | 197 | #'(lambda () (setq tooltip-gud-debugger 'gdb))) |
| 195 | (add-hook 'xdb-mode-hook | 198 | (add-hook 'sdb-mode-hook |
| 196 | #'(lambda () (setq tooltip-gud-debugger 'xdb))) | 199 | #'(lambda () (setq tooltip-gud-debugger 'sdb))) |
| 197 | (add-hook 'perldb-mode-hook | 200 | (add-hook 'dbx-mode-hook |
| 198 | #'(lambda () (setq tooltip-gud-debugger 'perldb)))))) | 201 | #'(lambda () (setq tooltip-gud-debugger 'dbx))) |
| 199 | 202 | (add-hook 'xdb-mode-hook | |
| 200 | 203 | #'(lambda () (setq tooltip-gud-debugger 'xdb))) | |
| 204 | (add-hook 'perldb-mode-hook | ||
| 205 | #'(lambda () (setq tooltip-gud-debugger 'perldb))))) | ||
| 201 | 206 | ||
| 202 | ;;; Timeout for tooltip display | 207 | ;;; Timeout for tooltip display |
| 203 | 208 | ||
| @@ -416,12 +421,12 @@ This function must return nil if it doesn't handle EVENT." | |||
| 416 | (eval (cons 'and tooltip-gud-display)))) | 421 | (eval (cons 'and tooltip-gud-display)))) |
| 417 | (let ((expr (tooltip-expr-to-print event))) | 422 | (let ((expr (tooltip-expr-to-print event))) |
| 418 | (when expr | 423 | (when expr |
| 419 | (setq tooltip-gud-original-filter (process-filter process)) | 424 | (let ((cmd (tooltip-gud-print-command expr))) |
| 420 | (set-process-filter process 'tooltip-gud-process-output) | 425 | (unless (null cmd) ; CMD can be nil if unknown debugger |
| 421 | (process-send-string | 426 | (setq tooltip-gud-original-filter (process-filter process)) |
| 422 | process (concat (tooltip-gud-print-command expr) "\n")) | 427 | (set-process-filter process 'tooltip-gud-process-output) |
| 423 | expr))))) | 428 | (gud-basic-call cmd) |
| 424 | 429 | expr))))))) | |
| 425 | 430 | ||
| 426 | 431 | ||
| 427 | ;;; Tooltip help. | 432 | ;;; Tooltip help. |