]> git.eshelyaron.com Git - emacs.git/commitdiff
(gdb-var-set-format-regexp): New constant. emacs-pretest-22.1.90
authorNick Roberts <nickrob@snap.net.nz>
Wed, 30 Jan 2008 22:07:41 +0000 (22:07 +0000)
committerNick Roberts <nickrob@snap.net.nz>
Wed, 30 Jan 2008 22:07:41 +0000 (22:07 +0000)
(gdb-var-set-format-handler): New function.
(gdb-var-set-format): Use it.

lisp/progmodes/gdb-ui.el

index 4e6727cdbad3b28634df958a250d719c5c9e9fc3..a3a40e03574a7db8c05288de1d2ff8b71bb71db3 100644 (file)
@@ -886,13 +886,22 @@ type_changed=\".*?\".*?}")
   (let* ((var (nth (- (count-lines (point-min) (point)) 2) gdb-var-list))
         (varnum (car var)))
     (gdb-enqueue-input
-     (list 
+     (list
       (if (eq (buffer-local-value 'gud-minor-mode gud-comint-buffer) 'gdba)
          (concat "server interpreter mi \"-var-set-format "
                  varnum " " format "\"\n")
        (concat "-var-set-format " varnum " " format "\n"))
-      'ignore))
-    (gdb-var-update-1)))
+          `(lambda () (gdb-var-set-format-handler ,varnum))))))
+
+(defconst gdb-var-set-format-regexp
+  "format=\"\\(.*?\\)\",.*value=\"\\(.*?\\)\"")
+
+(defun gdb-var-set-format-handler (varnum)
+  (goto-char (point-min))
+  (if (re-search-forward gdb-var-set-format-regexp nil t)
+      (let ((var (assoc varnum gdb-var-list)))
+       (setcar (nthcdr 4 var) (match-string 2))
+       (gdb-var-update-1))))
 
 (defun gdb-var-delete-1 (varnum)
   (gdb-enqueue-input