diff options
| author | Nick Roberts | 2006-12-26 22:02:17 +0000 |
|---|---|---|
| committer | Nick Roberts | 2006-12-26 22:02:17 +0000 |
| commit | 6c8aa2cd79f9a0ac5c1f9f0d534c9938a48efb0f (patch) | |
| tree | 0a69b318a5c04c70f98f57818113393ba135485b /lisp | |
| parent | aa32fd711bdbfda60d511e12aec5a97b16d4bb16 (diff) | |
| download | emacs-6c8aa2cd79f9a0ac5c1f9f0d534c9938a48efb0f.tar.gz emacs-6c8aa2cd79f9a0ac5c1f9f0d534c9938a48efb0f.zip | |
(gud-watch): Allow duplicate names for watch
expressions.
(gdb-var-delete): Handle duplicate names. Print message for non
root expressions.
(gdb-partial-output-name): Start buffer name with a space.
(gdb-info-breakpoints-custom, gdb-reset): Handle space in above
buffer name.
Diffstat (limited to 'lisp')
| -rw-r--r-- | lisp/progmodes/gdb-ui.el | 51 |
1 files changed, 19 insertions, 32 deletions
diff --git a/lisp/progmodes/gdb-ui.el b/lisp/progmodes/gdb-ui.el index 438a4b7ee22..3a253796f28 100644 --- a/lisp/progmodes/gdb-ui.el +++ b/lisp/progmodes/gdb-ui.el | |||
| @@ -710,11 +710,6 @@ With arg, enter name of variable to be watched in the minibuffer." | |||
| 710 | (buffer-substring (region-beginning) (region-end)) | 710 | (buffer-substring (region-beginning) (region-end)) |
| 711 | (tooltip-identifier-from-point (point)))))) | 711 | (tooltip-identifier-from-point (point)))))) |
| 712 | (speedbar 1) | 712 | (speedbar 1) |
| 713 | (catch 'already-watched | ||
| 714 | (dolist (var gdb-var-list) | ||
| 715 | (unless (string-match "\\." (car var)) | ||
| 716 | (if (string-equal expr (nth 1 var)) | ||
| 717 | (throw 'already-watched nil)))) | ||
| 718 | (set-text-properties 0 (length expr) nil expr) | 713 | (set-text-properties 0 (length expr) nil expr) |
| 719 | (gdb-enqueue-input | 714 | (gdb-enqueue-input |
| 720 | (list | 715 | (list |
| @@ -722,7 +717,7 @@ With arg, enter name of variable to be watched in the minibuffer." | |||
| 722 | (concat | 717 | (concat |
| 723 | "server interpreter mi \"-var-create - * " expr "\"\n") | 718 | "server interpreter mi \"-var-create - * " expr "\"\n") |
| 724 | (concat"-var-create - * " expr "\n")) | 719 | (concat"-var-create - * " expr "\n")) |
| 725 | `(lambda () (gdb-var-create-handler ,expr)))))))) | 720 | `(lambda () (gdb-var-create-handler ,expr))))))) |
| 726 | (message "gud-watch is a no-op in this mode.")))) | 721 | (message "gud-watch is a no-op in this mode.")))) |
| 727 | 722 | ||
| 728 | (defconst gdb-var-create-regexp | 723 | (defconst gdb-var-create-regexp |
| @@ -851,29 +846,21 @@ type_changed=\".*?\".*?}") | |||
| 851 | (interactive) | 846 | (interactive) |
| 852 | (if (memq (buffer-local-value 'gud-minor-mode gud-comint-buffer) | 847 | (if (memq (buffer-local-value 'gud-minor-mode gud-comint-buffer) |
| 853 | '(gdbmi gdba)) | 848 | '(gdbmi gdba)) |
| 854 | (let ((text (speedbar-line-text))) | 849 | (let* ((var (nth (- (count-lines (point-min) (point)) 2) gdb-var-list)) |
| 855 | ;; Can't use \\S-+ for whitespace because | 850 | (varnum (car var))) |
| 856 | ;; speedbar has a whacky syntax table. | 851 | (if (string-match "\\." (car var)) |
| 857 | (string-match "\\([^ \t]+\\)" text) | 852 | (message-box "Can only delete a root expression") |
| 858 | (let ((expr (match-string 1 text)) var varnum) | 853 | (gdb-enqueue-input |
| 859 | (catch 'expr-found | 854 | (list |
| 860 | (dolist (var1 gdb-var-list) | 855 | (if (eq (buffer-local-value 'gud-minor-mode gud-comint-buffer) |
| 861 | (when (string-equal expr (nth 1 var1)) | 856 | 'gdba) |
| 862 | (setq var var1) | 857 | (concat "server interpreter mi \"-var-delete " varnum "\"\n") |
| 863 | (setq varnum (car var1)) | 858 | (concat "-var-delete " varnum "\n")) |
| 864 | (throw 'expr-found nil)))) | 859 | 'ignore)) |
| 865 | (unless (string-match "\\." (car var)) | 860 | (setq gdb-var-list (delq var gdb-var-list)) |
| 866 | (gdb-enqueue-input | 861 | (dolist (varchild gdb-var-list) |
| 867 | (list | 862 | (if (string-match (concat (car var) "\\.") (car varchild)) |
| 868 | (if (eq (buffer-local-value 'gud-minor-mode gud-comint-buffer) | 863 | (setq gdb-var-list (delq varchild gdb-var-list)))))))) |
| 869 | 'gdba) | ||
| 870 | (concat "server interpreter mi \"-var-delete " varnum "\"\n") | ||
| 871 | (concat "-var-delete " varnum "\n")) | ||
| 872 | 'ignore)) | ||
| 873 | (setq gdb-var-list (delq var gdb-var-list)) | ||
| 874 | (dolist (varchild gdb-var-list) | ||
| 875 | (if (string-match (concat (car var) "\\.") (car varchild)) | ||
| 876 | (setq gdb-var-list (delq varchild gdb-var-list))))))))) | ||
| 877 | 864 | ||
| 878 | (defun gdb-var-delete-children (varnum) | 865 | (defun gdb-var-delete-children (varnum) |
| 879 | "Delete children of variable object at point from the speedbar." | 866 | "Delete children of variable object at point from the speedbar." |
| @@ -1017,7 +1004,7 @@ The key should be one of the cars in `gdb-buffer-rules-assoc'." | |||
| 1017 | 'gdb-partial-output-name) | 1004 | 'gdb-partial-output-name) |
| 1018 | 1005 | ||
| 1019 | (defun gdb-partial-output-name () | 1006 | (defun gdb-partial-output-name () |
| 1020 | (concat "*partial-output-" | 1007 | (concat " *partial-output-" |
| 1021 | (gdb-get-target-string) | 1008 | (gdb-get-target-string) |
| 1022 | "*")) | 1009 | "*")) |
| 1023 | 1010 | ||
| @@ -1788,7 +1775,7 @@ static char *magick[] = { | |||
| 1788 | (dolist (buffer (buffer-list)) | 1775 | (dolist (buffer (buffer-list)) |
| 1789 | (with-current-buffer buffer | 1776 | (with-current-buffer buffer |
| 1790 | (if (and (memq gud-minor-mode '(gdba gdbmi)) | 1777 | (if (and (memq gud-minor-mode '(gdba gdbmi)) |
| 1791 | (not (string-match "\\`\\*.+\\*\\'" (buffer-name)))) | 1778 | (not (string-match "\\` ?\\*.+\\*\\'" (buffer-name)))) |
| 1792 | (gdb-remove-breakpoint-icons (point-min) (point-max))))) | 1779 | (gdb-remove-breakpoint-icons (point-min) (point-max))))) |
| 1793 | (with-current-buffer (gdb-get-buffer 'gdb-breakpoints-buffer) | 1780 | (with-current-buffer (gdb-get-buffer 'gdb-breakpoints-buffer) |
| 1794 | (save-excursion | 1781 | (save-excursion |
| @@ -2937,7 +2924,7 @@ Kills the gdb buffers, and resets variables and the source buffers." | |||
| 2937 | (unless (eq buffer gud-comint-buffer) | 2924 | (unless (eq buffer gud-comint-buffer) |
| 2938 | (with-current-buffer buffer | 2925 | (with-current-buffer buffer |
| 2939 | (if (memq gud-minor-mode '(gdbmi gdba)) | 2926 | (if (memq gud-minor-mode '(gdbmi gdba)) |
| 2940 | (if (string-match "\\`\\*.+\\*\\'" (buffer-name)) | 2927 | (if (string-match "\\` ?\\*.+\\*\\'" (buffer-name)) |
| 2941 | (kill-buffer nil) | 2928 | (kill-buffer nil) |
| 2942 | (gdb-remove-breakpoint-icons (point-min) (point-max) t) | 2929 | (gdb-remove-breakpoint-icons (point-min) (point-max) t) |
| 2943 | (setq gud-minor-mode nil) | 2930 | (setq gud-minor-mode nil) |