aboutsummaryrefslogtreecommitdiffstats
path: root/lisp
diff options
context:
space:
mode:
authorNick Roberts2006-12-26 22:02:17 +0000
committerNick Roberts2006-12-26 22:02:17 +0000
commit6c8aa2cd79f9a0ac5c1f9f0d534c9938a48efb0f (patch)
tree0a69b318a5c04c70f98f57818113393ba135485b /lisp
parentaa32fd711bdbfda60d511e12aec5a97b16d4bb16 (diff)
downloademacs-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.el51
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)