emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] Changes to emacs/lisp/progmodes/gud.el


From: Nick Roberts
Subject: [Emacs-diffs] Changes to emacs/lisp/progmodes/gud.el
Date: Sat, 18 Feb 2006 22:57:05 +0000

Index: emacs/lisp/progmodes/gud.el
diff -u emacs/lisp/progmodes/gud.el:1.88 emacs/lisp/progmodes/gud.el:1.89
--- emacs/lisp/progmodes/gud.el:1.88    Fri Feb 17 11:50:48 2006
+++ emacs/lisp/progmodes/gud.el Sat Feb 18 22:57:05 2006
@@ -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




reply via email to

[Prev in Thread] Current Thread [Next in Thread]