aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNick Roberts2007-01-30 22:07:12 +0000
committerNick Roberts2007-01-30 22:07:12 +0000
commit01b8fc600aa254ebffdcc107570f8af3a3e347e4 (patch)
treeb3ba1df735fc79efb842e6979e0b3d1749d181d4
parent8af39ffbb3d34d7ebc35ed025a466f3157e37f9c (diff)
downloademacs-01b8fc600aa254ebffdcc107570f8af3a3e347e4.tar.gz
emacs-01b8fc600aa254ebffdcc107570f8af3a3e347e4.zip
(gdb-var-delete-1): New function.
(gdb-var-delete): Use it. (gdb-var-update-handler-1): Handle value "invalid" for MI field `in_scope'.
-rw-r--r--lisp/progmodes/gdb-ui.el37
1 files changed, 16 insertions, 21 deletions
diff --git a/lisp/progmodes/gdb-ui.el b/lisp/progmodes/gdb-ui.el
index c2811a9658a..c4cd96010a6 100644
--- a/lisp/progmodes/gdb-ui.el
+++ b/lisp/progmodes/gdb-ui.el
@@ -848,6 +848,19 @@ type_changed=\".*?\".*?}")
848 (setq gdb-pending-triggers 848 (setq gdb-pending-triggers
849 (delq 'gdb-var-update gdb-pending-triggers))) 849 (delq 'gdb-var-update gdb-pending-triggers)))
850 850
851(defun gdb-var-delete-1 (varnum)
852 (gdb-enqueue-input
853 (list
854 (if (eq (buffer-local-value 'gud-minor-mode gud-comint-buffer)
855 'gdba)
856 (concat "server interpreter mi \"-var-delete " varnum "\"\n")
857 (concat "-var-delete " varnum "\n"))
858 'ignore))
859 (setq gdb-var-list (delq var gdb-var-list))
860 (dolist (varchild gdb-var-list)
861 (if (string-match (concat (car var) "\\.") (car varchild))
862 (setq gdb-var-list (delq varchild gdb-var-list)))))
863
851(defun gdb-var-delete () 864(defun gdb-var-delete ()
852 "Delete watch expression at point from the speedbar." 865 "Delete watch expression at point from the speedbar."
853 (interactive) 866 (interactive)
@@ -857,17 +870,7 @@ type_changed=\".*?\".*?}")
857 (varnum (car var))) 870 (varnum (car var)))
858 (if (string-match "\\." (car var)) 871 (if (string-match "\\." (car var))
859 (message-box "Can only delete a root expression") 872 (message-box "Can only delete a root expression")
860 (gdb-enqueue-input 873 (gdb-var-delete-1 varnum)))))
861 (list
862 (if (eq (buffer-local-value 'gud-minor-mode gud-comint-buffer)
863 'gdba)
864 (concat "server interpreter mi \"-var-delete " varnum "\"\n")
865 (concat "-var-delete " varnum "\n"))
866 'ignore))
867 (setq gdb-var-list (delq var gdb-var-list))
868 (dolist (varchild gdb-var-list)
869 (if (string-match (concat (car var) "\\.") (car varchild))
870 (setq gdb-var-list (delq varchild gdb-var-list))))))))
871 874
872(defun gdb-var-delete-children (varnum) 875(defun gdb-var-delete-children (varnum)
873 "Delete children of variable object at point from the speedbar." 876 "Delete children of variable object at point from the speedbar."
@@ -3443,16 +3446,8 @@ in_scope=\"\\(.*?\\)\".*?}")
3443 (setcar (nthcdr 5 var) 'changed) 3446 (setcar (nthcdr 5 var) 'changed)
3444 (setcar (nthcdr 4 var) 3447 (setcar (nthcdr 4 var)
3445 (read (match-string 2)))) 3448 (read (match-string 2))))
3446;; ((string-equal match "invalid") 3449 ((string-equal match "invalid")
3447;; (gdb-enqueue-input 3450 (gdb-var-delete-1 varnum)))))))
3448;; (list
3449;; (if (eq (buffer-local-value
3450;; 'gud-minor-mode gud-comint-buffer) 'gdba)
3451;; (concat "server interpreter mi \"-var-delete "
3452;; varnum "\"\n")
3453;; (concat "-var-delete " varnum "\n"))
3454;; 'ignore)))
3455 )))))
3456 (setq gdb-pending-triggers 3451 (setq gdb-pending-triggers
3457 (delq 'gdb-var-update gdb-pending-triggers)) 3452 (delq 'gdb-var-update gdb-pending-triggers))
3458 (gdb-speedbar-update)) 3453 (gdb-speedbar-update))