aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNick Roberts2005-11-24 00:36:03 +0000
committerNick Roberts2005-11-24 00:36:03 +0000
commit1e906233d407595cb068bd027f5536dc4fdd8112 (patch)
tree81104e426376ca1d7333234886235d1bca3abadc
parent66395e6be053fb79f093ebbc8abf8e527224e68b (diff)
downloademacs-1e906233d407595cb068bd027f5536dc4fdd8112.tar.gz
emacs-1e906233d407595cb068bd027f5536dc4fdd8112.zip
(gud-speedbar-menu-items): Add gdb-speedbar-auto-raise as radio button.
(gud-speedbar-buttons): Raise speedbar if requested. Don't match on "char **...". (gud-speedbar-buttons): Add (pointer) value for non-leaves. Make it editable.
-rw-r--r--lisp/progmodes/gud.el24
1 files changed, 22 insertions, 2 deletions
diff --git a/lisp/progmodes/gud.el b/lisp/progmodes/gud.el
index e045ae76a29..3e13d7d1c0b 100644
--- a/lisp/progmodes/gud.el
+++ b/lisp/progmodes/gud.el
@@ -52,6 +52,7 @@
52(defvar gdb-show-changed-values) 52(defvar gdb-show-changed-values)
53(defvar gdb-var-changed) 53(defvar gdb-var-changed)
54(defvar gdb-var-list) 54(defvar gdb-var-list)
55(defvar gdb-speedbar-auto-raise)
55(defvar tool-bar-map) 56(defvar tool-bar-map)
56 57
57;; ====================================================================== 58;; ======================================================================
@@ -410,6 +411,10 @@ t means that there is no stack, and we are in display-file mode.")
410 (memq gud-minor-mode '(gdbmi gdba)))] 411 (memq gud-minor-mode '(gdbmi gdba)))]
411 ["Delete expression" gdb-var-delete 412 ["Delete expression" gdb-var-delete
412 (with-current-buffer gud-comint-buffer 413 (with-current-buffer gud-comint-buffer
414 (memq gud-minor-mode '(gdbmi gdba)))]
415 ["Auto raise frame" gdb-speedbar-auto-raise
416 :style toggle :selected gdb-speedbar-auto-raise
417 :visible (with-current-buffer gud-comint-buffer
413 (memq gud-minor-mode '(gdbmi gdba)))]) 418 (memq gud-minor-mode '(gdbmi gdba)))])
414 "Additional menu items to add to the speedbar frame.") 419 "Additional menu items to add to the speedbar frame.")
415 420
@@ -444,6 +449,8 @@ required by the caller."
444 (looking-at "Watch Expressions:"))))) 449 (looking-at "Watch Expressions:")))))
445 (erase-buffer) 450 (erase-buffer)
446 (insert "Watch Expressions:\n") 451 (insert "Watch Expressions:\n")
452 (if gdb-speedbar-auto-raise
453 (raise-frame speedbar-frame))
447 (let ((var-list gdb-var-list)) 454 (let ((var-list gdb-var-list))
448 (while var-list 455 (while var-list
449 (let* ((depth 0) (start 0) (char ?+) 456 (let* ((depth 0) (start 0) (char ?+)
@@ -453,7 +460,7 @@ required by the caller."
453 start (1+ (match-beginning 0)))) 460 start (1+ (match-beginning 0))))
454 (if (or (equal (nth 2 var) "0") 461 (if (or (equal (nth 2 var) "0")
455 (and (equal (nth 2 var) "1") 462 (and (equal (nth 2 var) "1")
456 (string-match "char \\*" (nth 3 var)))) 463 (string-match "char \\*$" (nth 3 var))))
457 (speedbar-make-tag-line 'bracket ?? nil nil 464 (speedbar-make-tag-line 'bracket ?? nil nil
458 (concat (car var) "\t" (nth 4 var)) 465 (concat (car var) "\t" (nth 4 var))
459 'gdb-edit-value 466 'gdb-edit-value
@@ -465,10 +472,21 @@ required by the caller."
465 (if (and (cadr var-list) 472 (if (and (cadr var-list)
466 (string-match varnum (cadr (cadr var-list)))) 473 (string-match varnum (cadr (cadr var-list))))
467 (setq char ?-)) 474 (setq char ?-))
475 (if (string-match "\\*$" (nth 3 var))
476 (speedbar-make-tag-line 'bracket char
477 'gdb-speedbar-expand-node varnum
478 (concat (car var) "\t"
479 (nth 3 var)"\t"
480 (nth 4 var))
481 'gdb-edit-value nil
482 (if (and (nth 5 var)
483 gdb-show-changed-values)
484 'font-lock-warning-face
485 nil) depth)
468 (speedbar-make-tag-line 'bracket char 486 (speedbar-make-tag-line 'bracket char
469 'gdb-speedbar-expand-node varnum 487 'gdb-speedbar-expand-node varnum
470 (concat (car var) "\t" (nth 3 var)) 488 (concat (car var) "\t" (nth 3 var))
471 nil nil nil depth))) 489 nil nil nil depth))))
472 (setq var-list (cdr var-list)))) 490 (setq var-list (cdr var-list))))
473 (setq gdb-var-changed nil))) 491 (setq gdb-var-changed nil)))
474 (t (if (and (save-excursion 492 (t (if (and (save-excursion
@@ -3079,6 +3097,8 @@ class of the file (using s to separate nested class ids)."
3079 ("\\$\\(\\w+\\)" (1 font-lock-variable-name-face)) 3097 ("\\$\\(\\w+\\)" (1 font-lock-variable-name-face))
3080 ("^\\s-*\\([a-z]+\\)" (1 font-lock-keyword-face)))) 3098 ("^\\s-*\\([a-z]+\\)" (1 font-lock-keyword-face))))
3081 3099
3100;; FIXME: The keyword "end" associated with "document"
3101;; should have font-lock-keyword-face (currently font-lock-doc-face).
3082(defvar gdb-script-font-lock-syntactic-keywords 3102(defvar gdb-script-font-lock-syntactic-keywords
3083 '(("^document\\s-.*\\(\n\\)" (1 "< b")) 3103 '(("^document\\s-.*\\(\n\\)" (1 "< b"))
3084 ;; It would be best to change the \n in front, but it's more difficult. 3104 ;; It would be best to change the \n in front, but it's more difficult.