# HG changeset patch # User Nick Roberts # Date 1132792563 0 # Node ID 9af04bbaf1e0d4c59610e4b522519856f4eba0d7 # Parent ca31f8486563d98bc885b7dc78a184a3e03665b5 (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. diff -r ca31f8486563 -r 9af04bbaf1e0 lisp/progmodes/gud.el --- a/lisp/progmodes/gud.el Thu Nov 24 00:34:59 2005 +0000 +++ b/lisp/progmodes/gud.el Thu Nov 24 00:36:03 2005 +0000 @@ -52,6 +52,7 @@ (defvar gdb-show-changed-values) (defvar gdb-var-changed) (defvar gdb-var-list) +(defvar gdb-speedbar-auto-raise) (defvar tool-bar-map) ;; ====================================================================== @@ -410,6 +411,10 @@ (memq gud-minor-mode '(gdbmi gdba)))] ["Delete expression" gdb-var-delete (with-current-buffer gud-comint-buffer + (memq gud-minor-mode '(gdbmi gdba)))] + ["Auto raise frame" gdb-speedbar-auto-raise + :style toggle :selected gdb-speedbar-auto-raise + :visible (with-current-buffer gud-comint-buffer (memq gud-minor-mode '(gdbmi gdba)))]) "Additional menu items to add to the speedbar frame.") @@ -444,6 +449,8 @@ (looking-at "Watch Expressions:"))))) (erase-buffer) (insert "Watch Expressions:\n") + (if gdb-speedbar-auto-raise + (raise-frame speedbar-frame)) (let ((var-list gdb-var-list)) (while var-list (let* ((depth 0) (start 0) (char ?+) @@ -453,7 +460,7 @@ start (1+ (match-beginning 0)))) (if (or (equal (nth 2 var) "0") (and (equal (nth 2 var) "1") - (string-match "char \\*" (nth 3 var)))) + (string-match "char \\*$" (nth 3 var)))) (speedbar-make-tag-line 'bracket ?? nil nil (concat (car var) "\t" (nth 4 var)) 'gdb-edit-value @@ -465,10 +472,21 @@ (if (and (cadr var-list) (string-match varnum (cadr (cadr var-list)))) (setq char ?-)) + (if (string-match "\\*$" (nth 3 var)) + (speedbar-make-tag-line 'bracket char + 'gdb-speedbar-expand-node varnum + (concat (car var) "\t" + (nth 3 var)"\t" + (nth 4 var)) + 'gdb-edit-value nil + (if (and (nth 5 var) + gdb-show-changed-values) + 'font-lock-warning-face + nil) depth) (speedbar-make-tag-line 'bracket char 'gdb-speedbar-expand-node varnum (concat (car var) "\t" (nth 3 var)) - nil nil nil depth))) + nil nil nil depth)))) (setq var-list (cdr var-list)))) (setq gdb-var-changed nil))) (t (if (and (save-excursion @@ -3079,6 +3097,8 @@ ("\\$\\(\\w+\\)" (1 font-lock-variable-name-face)) ("^\\s-*\\([a-z]+\\)" (1 font-lock-keyword-face)))) +;; FIXME: The keyword "end" associated with "document" +;; should have font-lock-keyword-face (currently font-lock-doc-face). (defvar gdb-script-font-lock-syntactic-keywords '(("^document\\s-.*\\(\n\\)" (1 "< b")) ;; It would be best to change the \n in front, but it's more difficult.