# HG changeset patch # User Nick Roberts # Date 1170194832 0 # Node ID 26b46f8828ba8b77adb3790491954a64afd361ed # Parent 2a21a7f5e91c859ae1a35f9b18a0ac24b679e8fd (gdb-var-delete-1): New function. (gdb-var-delete): Use it. (gdb-var-update-handler-1): Handle value "invalid" for MI field `in_scope'. diff -r 2a21a7f5e91c -r 26b46f8828ba lisp/progmodes/gdb-ui.el --- a/lisp/progmodes/gdb-ui.el Tue Jan 30 22:06:26 2007 +0000 +++ b/lisp/progmodes/gdb-ui.el Tue Jan 30 22:07:12 2007 +0000 @@ -848,6 +848,19 @@ (setq gdb-pending-triggers (delq 'gdb-var-update gdb-pending-triggers))) +(defun gdb-var-delete-1 (varnum) + (gdb-enqueue-input + (list + (if (eq (buffer-local-value 'gud-minor-mode gud-comint-buffer) + 'gdba) + (concat "server interpreter mi \"-var-delete " varnum "\"\n") + (concat "-var-delete " varnum "\n")) + 'ignore)) + (setq gdb-var-list (delq var gdb-var-list)) + (dolist (varchild gdb-var-list) + (if (string-match (concat (car var) "\\.") (car varchild)) + (setq gdb-var-list (delq varchild gdb-var-list))))) + (defun gdb-var-delete () "Delete watch expression at point from the speedbar." (interactive) @@ -857,17 +870,7 @@ (varnum (car var))) (if (string-match "\\." (car var)) (message-box "Can only delete a root expression") - (gdb-enqueue-input - (list - (if (eq (buffer-local-value 'gud-minor-mode gud-comint-buffer) - 'gdba) - (concat "server interpreter mi \"-var-delete " varnum "\"\n") - (concat "-var-delete " varnum "\n")) - 'ignore)) - (setq gdb-var-list (delq var gdb-var-list)) - (dolist (varchild gdb-var-list) - (if (string-match (concat (car var) "\\.") (car varchild)) - (setq gdb-var-list (delq varchild gdb-var-list)))))))) + (gdb-var-delete-1 varnum))))) (defun gdb-var-delete-children (varnum) "Delete children of variable object at point from the speedbar." @@ -3443,16 +3446,8 @@ (setcar (nthcdr 5 var) 'changed) (setcar (nthcdr 4 var) (read (match-string 2)))) -;; ((string-equal match "invalid") -;; (gdb-enqueue-input -;; (list -;; (if (eq (buffer-local-value -;; 'gud-minor-mode gud-comint-buffer) 'gdba) -;; (concat "server interpreter mi \"-var-delete " -;; varnum "\"\n") -;; (concat "-var-delete " varnum "\n")) -;; 'ignore))) - ))))) + ((string-equal match "invalid") + (gdb-var-delete-1 varnum))))))) (setq gdb-pending-triggers (delq 'gdb-var-update gdb-pending-triggers)) (gdb-speedbar-update))