]> git.eshelyaron.com Git - emacs.git/commitdiff
Don't require speedbar.
authorNick Roberts <nickrob@snap.net.nz>
Thu, 24 Sep 2009 12:30:08 +0000 (12:30 +0000)
committerNick Roberts <nickrob@snap.net.nz>
Thu, 24 Sep 2009 12:30:08 +0000 (12:30 +0000)
(gdb-jsonify-buffer): Handle case where "=" is part of value string.

lisp/progmodes/gdb-mi.el

index d9e26eb30f57067717977713e37d37b316430315..f547f9a17c508fbf6579feeeab463cfaa6982849 100644 (file)
 (require 'gud)
 (require 'json)
 (require 'bindat)
-(require 'speedbar)
-(eval-when-compile
-  (require 'cl))
+(eval-when-compile (require 'cl))
 
 (defvar tool-bar-map)
 (defvar speedbar-initial-expansion-list-name)
@@ -2066,7 +2064,6 @@ incompatible with GDB/MI output syntax."
       (save-excursion
         (while (re-search-forward (concat "[\\[,]\\(" fix-key "=\\)") nil t)
           (replace-match "" nil nil nil 1))))
-    ;; Emacs bug #3794
     (when fix-list
       (save-excursion
         ;; Find positions of braces which enclose broken list
@@ -2084,9 +2081,9 @@ incompatible with GDB/MI output syntax."
               (insert "]"))))))
     (goto-char (point-min))
     (insert "{")
-    ;; TODO: This breaks badly with foo= inside constants
-    (while (re-search-forward "\\([[:alpha:]-_]+\\)=" nil t)
-      (replace-match "\"\\1\":" nil nil))
+    (while (re-search-forward
+           "\\([[:alnum:]-_]+\\)=\\({\\|\\[\\|\"\"\\|\".*?[^\\]\"\\)" nil t)
+      (replace-match "\"\\1\":\\2" nil nil))
     (goto-char (point-max))
     (insert "}")))