aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNick Roberts2004-02-23 00:44:04 +0000
committerNick Roberts2004-02-23 00:44:04 +0000
commitfb2c91be8ee7de88d5d852d67a1738dc407d076b (patch)
treee3a4badf3ad5f2ac3c362532f9c1c69b659326b0
parenta1a3a37ad30b61b4f4387291750921a6dca9c9e3 (diff)
downloademacs-fb2c91be8ee7de88d5d852d67a1738dc407d076b.tar.gz
emacs-fb2c91be8ee7de88d5d852d67a1738dc407d076b.zip
(gud-watch): Load tooltip, if necessary.
(gdb-var-create-handler): Force speedbar-update-flag to be non-nil. (gdb-var-delete): Make interactive (really). (gdb-edit-value): Make non-interactive.
-rw-r--r--lisp/gdb-ui.el36
1 files changed, 20 insertions, 16 deletions
diff --git a/lisp/gdb-ui.el b/lisp/gdb-ui.el
index 60ac57dd10f..32cce04c239 100644
--- a/lisp/gdb-ui.el
+++ b/lisp/gdb-ui.el
@@ -188,6 +188,7 @@ speedbar."
188(defun gud-watch () 188(defun gud-watch ()
189 "Watch expression at point." 189 "Watch expression at point."
190 (interactive) 190 (interactive)
191 (require 'tooltip)
191 (let ((expr (tooltip-identifier-from-point (point)))) 192 (let ((expr (tooltip-identifier-from-point (point))))
192 (if (and (string-equal gdb-current-language "c") 193 (if (and (string-equal gdb-current-language "c")
193 gdb-use-colon-colon-notation) 194 gdb-use-colon-colon-notation)
@@ -214,6 +215,7 @@ speedbar."
214 (match-string 3) 215 (match-string 3)
215 nil nil))) 216 nil nil)))
216 (push var gdb-var-list) 217 (push var gdb-var-list)
218 (setq speedbar-update-flag t)
217 (speedbar 1) 219 (speedbar 1)
218 (if (equal (nth 2 var) "0") 220 (if (equal (nth 2 var) "0")
219 (gdb-enqueue-input 221 (gdb-enqueue-input
@@ -304,26 +306,28 @@ speedbar."
304 (gdb-set-pending-triggers 306 (gdb-set-pending-triggers
305 (delq 'gdb-var-update (gdb-get-pending-triggers)))) 307 (delq 'gdb-var-update (gdb-get-pending-triggers))))
306 308
307(defun gdb-var-delete (text token indent) 309(defun gdb-var-delete ()
308 "Delete watched expression." 310 "Delete watched expression from the speedbar."
309 (interactive) 311 (interactive)
310 (when (eq indent 0) 312 (if (with-current-buffer gud-comint-buffer (eq gud-minor-mode 'gdba))
311 (string-match "\\(\\S-+\\)" text) 313 (let ((text (speedbar-line-text)))
312 (let* ((expr (match-string 1 text)) 314 (string-match "\\(\\S-+\\)" text)
313 (var (assoc expr gdb-var-list)) 315 (let* ((expr (match-string 1 text))
314 (varnum (cadr var))) 316 (var (assoc expr gdb-var-list))
315 (gdb-enqueue-input 317 (varnum (cadr var)))
316 (list (concat "server interpreter mi \"-var-delete " varnum "\"\n") 318 (unless (string-match "\\." varnum)
317 'ignore)) 319 (gdb-enqueue-input
318 (setq gdb-var-list (delq var gdb-var-list)) 320 (list (concat "server interpreter mi \"-var-delete "
319 (dolist (varchild gdb-var-list) 321 varnum "\"\n")
320 (if (string-match (concat (nth 1 var) "\\.") (nth 1 varchild)) 322 'ignore))
321 (setq gdb-var-list (delq varchild gdb-var-list))))) 323 (setq gdb-var-list (delq var gdb-var-list))
322 (setq gdb-var-changed t))) 324 (dolist (varchild gdb-var-list)
325 (if (string-match (concat (nth 1 var) "\\.") (nth 1 varchild))
326 (setq gdb-var-list (delq varchild gdb-var-list))))
327 (setq gdb-var-changed t))))))
323 328
324(defun gdb-edit-value (text token indent) 329(defun gdb-edit-value (text token indent)
325 "Assign a value to a variable displayed in the speedbar" 330 "Assign a value to a variable displayed in the speedbar"
326 (interactive)
327 (let* ((var (nth (- (count-lines (point-min) (point)) 2) gdb-var-list)) 331 (let* ((var (nth (- (count-lines (point-min) (point)) 2) gdb-var-list))
328 (varnum (cadr var)) (value)) 332 (varnum (cadr var)) (value))
329 (setq value (read-string "New value: ")) 333 (setq value (read-string "New value: "))