emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] emacs/lisp/progmodes gdb-mi.el


From: Nick Roberts
Subject: [Emacs-diffs] emacs/lisp/progmodes gdb-mi.el
Date: Fri, 11 Sep 2009 11:55:12 +0000

CVSROOT:        /sources/emacs
Module name:    emacs
Changes by:     Nick Roberts <nickrob>  09/09/11 11:55:11

Modified files:
        lisp/progmodes : gdb-mi.el 

Log message:
        (gdb-var-update-regexp): Delete.
        (gdb-var-update-handler): Use json parsing.

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/emacs/lisp/progmodes/gdb-mi.el?cvsroot=emacs&r1=1.45&r2=1.46

Patches:
Index: gdb-mi.el
===================================================================
RCS file: /sources/emacs/emacs/lisp/progmodes/gdb-mi.el,v
retrieving revision 1.45
retrieving revision 1.46
diff -u -b -r1.45 -r1.46
--- gdb-mi.el   10 Sep 2009 03:42:13 -0000      1.45
+++ gdb-mi.el   11 Sep 2009 11:55:11 -0000      1.46
@@ -1136,29 +1136,25 @@
        (list "-var-update --all-values *" 'gdb-var-update-handler)))
   (gdb-add-pending 'gdb-var-update))
 
-(defconst gdb-var-update-regexp
-  "{.*?name=\"\\(.*?\\)\".*?,\\(?:value=\\(\".*?\"\\),\\)?.*?\
-in_scope=\"\\(.*?\\)\".*?}")
-
 (defun gdb-var-update-handler ()
+ (let ((changelist (gdb-get-field (gdb-json-partial-output) 'changelist)))
   (dolist (var gdb-var-list)
     (setcar (nthcdr 5 var) nil))
-  (goto-char (point-min))
-  (while (re-search-forward gdb-var-update-regexp nil t)
-    (let* ((varnum (match-string 1))
+  (dolist (change changelist)
+    (let* ((varnum (gdb-get-field change 'name))
           (var (assoc varnum gdb-var-list)))
       (when var
-       (let ((match (match-string 3)))
-         (cond ((string-equal match "false")
+       (let ((scope (gdb-get-field change 'in_scope)))
+         (cond ((string-equal scope "false")
                 (if gdb-delete-out-of-scope
                     (gdb-var-delete-1 varnum)
                   (setcar (nthcdr 5 var) 'out-of-scope)))
-               ((string-equal match "true")
+               ((string-equal scope "true")
                 (setcar (nthcdr 5 var) 'changed)
                 (setcar (nthcdr 4 var)
-                        (read (match-string 2))))
-               ((string-equal match "invalid")
-                (gdb-var-delete-1 varnum)))))))
+                        (gdb-get-field change 'value)))
+               ((string-equal scope "invalid")
+                (gdb-var-delete-1 varnum))))))))
   (gdb-delete-pending 'gdb-var-update)
   (gdb-speedbar-update))
 




reply via email to

[Prev in Thread] Current Thread [Next in Thread]