diff options
| -rw-r--r-- | lisp/progmodes/gdb-ui.el | 37 |
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)) |