(gdb-info-locals-handler): Make regexps
authorNick Roberts <nickrob@snap.net.nz>
Sun, 22 May 2005 12:37:24 +0000 (12:37 +0000)
committerNick Roberts <nickrob@snap.net.nz>
Sun, 22 May 2005 12:37:24 +0000 (12:37 +0000)
more general and work when GDB variable "print pretty" is on,
as with Emacs, for example.

lisp/progmodes/gdb-ui.el

index ba0266d..9f7f69e 100644 (file)
@@ -1303,7 +1303,8 @@ static char *magick[] = {
                      (looking-at "\\(\\S-+\\):\\([0-9]+\\)")
                      (let ((line (match-string 2)) (buffer-read-only nil)
                            (file (match-string 1)))
-                       (add-text-properties (point-at-bol) (point-at-eol)
+                       (add-text-properties (line-beginning-position)
+                                            (line-end-position)
                         '(mouse-face highlight
                           help-echo "mouse-2, RET: visit breakpoint"))
                        (unless (file-exists-p file)
@@ -1504,13 +1505,13 @@ static char *magick[] = {
       (let ((buffer-read-only nil))
        (goto-char (point-min))
        (while (< (point) (point-max))
-         (add-text-properties (point-at-bol) (point-at-eol)
+         (add-text-properties (line-beginning-position) (line-end-position)
                             '(mouse-face highlight
                               help-echo "mouse-2, RET: Select frame"))
          (beginning-of-line)
          (when (and (looking-at "^#\\([0-9]+\\)")
                     (equal (match-string 1) gdb-current-stack-level))
-           (put-text-property (point-at-bol) (point-at-eol)
+           (put-text-property (line-beginning-position) (line-end-position)
                               'face '(:inverse-video t)))
          (forward-line 1))))))
 
@@ -1588,7 +1589,7 @@ static char *magick[] = {
     (let ((buffer-read-only nil))
       (goto-char (point-min))
       (while (< (point) (point-max))
-       (add-text-properties (point-at-bol) (point-at-eol)
+       (add-text-properties (line-beginning-position) (line-end-position)
                             '(mouse-face highlight
                               help-echo "mouse-2, RET: select thread"))
        (forward-line 1)))))
@@ -1974,14 +1975,14 @@ corresponding to the mode line clicked."
   (let ((buf (gdb-get-buffer 'gdb-partial-output-buffer)))
     (with-current-buffer buf
       (goto-char (point-min))
-      (while (re-search-forward "^ .*\n" nil t)
+      (while (re-search-forward "^[ }].*\n" nil t)
        (replace-match "" nil nil))
       (goto-char (point-min))
-      (while (re-search-forward "{[-0-9, {}\]*\n" nil t)
-       (replace-match "(array);\n" nil nil))
+      (while (re-search-forward "{\\(.*=.*\n\\|\n\\)" nil t)
+       (replace-match "(structure);\n" nil nil))
       (goto-char (point-min))
-      (while (re-search-forward "{.*=.*\n" nil t)
-       (replace-match "(structure);\n" nil nil))))
+      (while (re-search-forward "\\s-*{.*\n" nil t)
+       (replace-match " (array);\n" nil nil))))
   (let ((buf (gdb-get-buffer 'gdb-locals-buffer)))
     (and buf (with-current-buffer buf
               (let ((p (point))
@@ -2316,8 +2317,8 @@ BUFFER nil or omitted means use the current buffer."
          (delete-overlay overlay))))
 
 (defun gdb-put-breakpoint-icon (enabled bptno)
-  (let ((start (progn (beginning-of-line) (- (point) 1)))
-       (end (progn (end-of-line) (+ (point) 1)))
+  (let ((start (- (line-beginning-position) 1))
+       (end (+ (line-end-position) 1))
        (putstring (if enabled "B" "b")))
     (add-text-properties
      0 1 '(help-echo "mouse-1: set/clear bkpt, mouse-3: enable/disable bkpt")