changeset 64346:ef82d5d73c0d

(gdb-var-update, gdb-var-update-handler): Don't consider gdbmi (gdb-mi.el has its own update functions). (gdb-var-delete): Make it work for gdbmi as well. (gdb-speedbar-expand-node): Move var-update here for gdbmi.
author Nick Roberts <nickrob@snap.net.nz>
date Fri, 15 Jul 2005 14:45:09 +0000
parents 1009f071639a
children e99898c983f2
files lisp/progmodes/gdb-ui.el
diffstat 1 files changed, 14 insertions(+), 19 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/progmodes/gdb-ui.el	Fri Jul 15 14:44:33 2005 +0000
+++ b/lisp/progmodes/gdb-ui.el	Fri Jul 15 14:45:09 2005 +0000
@@ -503,15 +503,11 @@
        (setq gdb-var-list (nreverse var-list))))))
 
 (defun gdb-var-update ()
-  (if (not (member 'gdb-var-update gdb-pending-triggers))
-      (progn
-	(gdb-enqueue-input
-	 (list
-	  (if (with-current-buffer gud-comint-buffer (eq gud-minor-mode 'gdba))
-	      "server interpreter mi \"-var-update *\"\n"
-	    "-var-update *\n")
-				 'gdb-var-update-handler))
-	(push 'gdb-var-update gdb-pending-triggers))))
+  (when (not (member 'gdb-var-update gdb-pending-triggers))
+    (gdb-enqueue-input
+     (list "server interpreter mi \"-var-update *\"\n"
+	   'gdb-var-update-handler))
+    (push 'gdb-var-update gdb-pending-triggers)))
 
 (defconst gdb-var-update-regexp "name=\"\\(.*?\\)\"")
 
@@ -522,13 +518,9 @@
 	(let ((varnum (match-string 1)))
 	  (gdb-enqueue-input
 	   (list
-	    (if (with-current-buffer gud-comint-buffer
-		  (eq gud-minor-mode 'gdba))
-		(concat "server interpreter mi \"-var-evaluate-expression "
-			varnum "\"\n")
-	      (concat "-var-evaluate-expression " varnum "\n"))
-		     `(lambda () (gdb-var-evaluate-expression-handler
-				  ,varnum t)))))))
+	    (concat "server interpreter mi \"-var-evaluate-expression "
+		    varnum "\"\n")
+	    `(lambda () (gdb-var-evaluate-expression-handler ,varnum t)))))))
   (setq gdb-pending-triggers
    (delq 'gdb-var-update gdb-pending-triggers))
   (when (and (boundp 'speedbar-frame) (frame-live-p speedbar-frame))
@@ -544,9 +536,10 @@
     (speedbar-timer-fn)))
 
 (defun gdb-var-delete ()
-  "Delete watched expression from the speedbar."
+  "Delete watch expression at point from the speedbar."
   (interactive)
-  (if (with-current-buffer gud-comint-buffer (eq gud-minor-mode 'gdba))
+  (if (with-current-buffer
+	  gud-comint-buffer (memq gud-minor-mode '(gdbmi gdba)))
       (let ((text (speedbar-line-text)))
 	(string-match "\\(\\S-+\\)" text)
 	(let* ((expr (match-string 1 text))
@@ -595,7 +588,9 @@
   (cond ((string-match "+" text)        ;expand this node
 	 (if (with-current-buffer gud-comint-buffer (eq gud-minor-mode 'gdba))
 	     (gdb-var-list-children token)
-	   (gdbmi-var-list-children token)))
+	   (progn
+	     (gdbmi-var-update)
+	     (gdbmi-var-list-children token))))
 	((string-match "-" text)	;contract this node
 	 (dolist (var gdb-var-list)
 	   (if (string-match (concat token "\\.") (nth 1 var))