# HG changeset patch # User Nick Roberts # Date 1140303425 0 # Node ID dccdda472b02949c66ce88c224dd82eb1a5aacd5 # Parent f648ed5b429aa7a23b2e4a340d2831f254b61de6 (gud-speedbar-buttons): Update properly for shadow face. Don't provide binding to edit variable when it is out of scope. diff -r f648ed5b429a -r dccdda472b02 lisp/progmodes/gud.el --- a/lisp/progmodes/gud.el Sat Feb 18 22:55:09 2006 +0000 +++ b/lisp/progmodes/gud.el Sat Feb 18 22:57:05 2006 +0000 @@ -453,46 +453,55 @@ (insert "Watch Expressions:\n") (if gdb-speedbar-auto-raise (raise-frame speedbar-frame)) - (let ((var-list gdb-var-list)) + (let ((var-list gdb-var-list) parent) (while var-list - (let* (char (depth 0) (start 0) - (var (car var-list)) (varnum (nth 1 var))) + (let* (char (depth 0) (start 0) (var (car var-list)) + (varnum (nth 1 var)) (status (nth 5 var))) (while (string-match "\\." varnum start) (setq depth (1+ depth) start (1+ (match-beginning 0)))) + (if (eq depth 0) (setq parent nil)) (if (or (equal (nth 2 var) "0") (and (equal (nth 2 var) "1") (string-match "char \\*$" (nth 3 var)))) - (speedbar-make-tag-line 'bracket ?? nil nil - (concat (car var) "\t" (nth 4 var)) - 'gdb-edit-value - nil - (if gdb-show-changed-values - (case (nth 5 var) - (changed 'font-lock-warning-face) - (out-of-scope 'shadow) - (nil nil)) - nil) depth) + (speedbar-make-tag-line + 'bracket ?? nil nil + (concat (car var) "\t" (nth 4 var)) + (if (or parent (eq status 'out-of-scope)) + nil 'gdb-edit-value) + nil + (if gdb-show-changed-values + (or parent (case status + (changed 'font-lock-warning-face) + (out-of-scope 'shadow) + (nil nil))) + nil) depth) + (if (eq status 'out-of-scope) (setq parent 'shadow)) (if (and (cadr var-list) (string-match (concat varnum "\\.") (cadr (cadr var-list)))) (setq char ?-) (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)))) + (speedbar-make-tag-line + 'bracket char + 'gdb-speedbar-expand-node varnum + (concat (car var) "\t" + (nth 3 var)"\t" + (nth 4 var)) + (if (or parent status 'out-of-scope) + nil 'gdb-edit-value) + nil + (if (and status gdb-show-changed-values) + 'shadow nil) + depth) + (speedbar-make-tag-line + 'bracket char + 'gdb-speedbar-expand-node varnum + (concat (car var) "\t" (nth 3 var)) + nil nil + (if (and (nth 5 var) gdb-show-changed-values) 'shadow nil) + depth)))) (setq var-list (cdr var-list)))) (setq gdb-var-changed nil))) (t (unless (and (save-excursion