From 9ccd2bb378b7a1df0d8cd4650a816e12f2fc3050 Mon Sep 17 00:00:00 2001 From: Nick Roberts Date: Thu, 24 Sep 2009 12:30:08 +0000 Subject: [PATCH] Don't require speedbar. (gdb-jsonify-buffer): Handle case where "=" is part of value string. --- lisp/progmodes/gdb-mi.el | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/lisp/progmodes/gdb-mi.el b/lisp/progmodes/gdb-mi.el index d9e26eb30f5..f547f9a17c5 100644 --- a/lisp/progmodes/gdb-mi.el +++ b/lisp/progmodes/gdb-mi.el @@ -102,9 +102,7 @@ (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 "}")))