diff options
| author | Nick Roberts | 2005-02-19 05:08:49 +0000 |
|---|---|---|
| committer | Nick Roberts | 2005-02-19 05:08:49 +0000 |
| commit | 9efdfc10ec2c6f8953421aaacf5573b038063807 (patch) | |
| tree | 5f03b45459a5b6ad95bbeeb35a13bb2847469d1e | |
| parent | 8c4e7434d23ae46e8961989cdab8d42ac5623a13 (diff) | |
| download | emacs-9efdfc10ec2c6f8953421aaacf5573b038063807.tar.gz emacs-9efdfc10ec2c6f8953421aaacf5573b038063807.zip | |
(gdb-var-update-handler)
(gdb-speedbar-timer-fn): Ensure speedbar updates with new values
for watch expressions,
(gdb-var-create-handler): Don't set speedbar-update-flag.
(gdb-post-prompt): Simplify test for speedbar.
| -rw-r--r-- | lisp/progmodes/gdb-ui.el | 26 |
1 files changed, 18 insertions, 8 deletions
diff --git a/lisp/progmodes/gdb-ui.el b/lisp/progmodes/gdb-ui.el index 4eeb8fa1886..3c1251ba59b 100644 --- a/lisp/progmodes/gdb-ui.el +++ b/lisp/progmodes/gdb-ui.el | |||
| @@ -338,7 +338,6 @@ detailed description of this mode. | |||
| 338 | (match-string 3) | 338 | (match-string 3) |
| 339 | nil nil))) | 339 | nil nil))) |
| 340 | (push var gdb-var-list) | 340 | (push var gdb-var-list) |
| 341 | (setq speedbar-update-flag t) | ||
| 342 | (speedbar 1) | 341 | (speedbar 1) |
| 343 | (if (equal (nth 2 var) "0") | 342 | (if (equal (nth 2 var) "0") |
| 344 | (gdb-enqueue-input | 343 | (gdb-enqueue-input |
| @@ -433,7 +432,18 @@ detailed description of this mode. | |||
| 433 | `(lambda () (gdb-var-evaluate-expression-handler | 432 | `(lambda () (gdb-var-evaluate-expression-handler |
| 434 | ,varnum t))))))) | 433 | ,varnum t))))))) |
| 435 | (setq gdb-pending-triggers | 434 | (setq gdb-pending-triggers |
| 436 | (delq 'gdb-var-update gdb-pending-triggers))) | 435 | (delq 'gdb-var-update gdb-pending-triggers)) |
| 436 | (when (and (boundp 'speedbar-frame) (frame-live-p speedbar-frame)) | ||
| 437 | ;; dummy command to update speedbar at right time | ||
| 438 | (gdb-enqueue-input (list "server pwd\n" 'gdb-speedbar-timer-fn)) | ||
| 439 | ;; keep gdb-pending-triggers non-nil till end | ||
| 440 | (push 'gdb-speedbar-timer gdb-pending-triggers))) | ||
| 441 | |||
| 442 | (defun gdb-speedbar-timer-fn () | ||
| 443 | (setq gdb-pending-triggers | ||
| 444 | (delq 'gdb-speedbar-timer gdb-pending-triggers)) | ||
| 445 | (with-current-buffer gud-comint-buffer | ||
| 446 | (speedbar-timer-fn))) | ||
| 437 | 447 | ||
| 438 | (defun gdb-var-delete () | 448 | (defun gdb-var-delete () |
| 439 | "Delete watched expression from the speedbar." | 449 | "Delete watched expression from the speedbar." |
| @@ -882,12 +892,12 @@ happens to be appropriate." | |||
| 882 | (gdb-invalidate-threads) | 892 | (gdb-invalidate-threads) |
| 883 | (unless (eq system-type 'darwin) ;Breaks on Darwin's GDB-5.3. | 893 | (unless (eq system-type 'darwin) ;Breaks on Darwin's GDB-5.3. |
| 884 | ;; FIXME: with GDB-6 on Darwin, this might very well work. | 894 | ;; FIXME: with GDB-6 on Darwin, this might very well work. |
| 885 | (dolist (frame (frame-list)) | 895 | ;; only needed/used with speedbar/watch expressions |
| 886 | (when (string-equal (frame-parameter frame 'name) "Speedbar") | 896 | (when (and (boundp 'speedbar-frame) (frame-live-p speedbar-frame)) |
| 887 | (setq gdb-var-changed t) ; force update | 897 | (setq gdb-var-changed t) ; force update |
| 888 | (dolist (var gdb-var-list) | 898 | (dolist (var gdb-var-list) |
| 889 | (setcar (nthcdr 5 var) nil)))) | 899 | (setcar (nthcdr 5 var) nil)) |
| 890 | (gdb-var-update)))) | 900 | (gdb-var-update))))) |
| 891 | (let ((sink gdb-output-sink)) | 901 | (let ((sink gdb-output-sink)) |
| 892 | (cond | 902 | (cond |
| 893 | ((eq sink 'user) t) | 903 | ((eq sink 'user) t) |