]> git.eshelyaron.com Git - emacs.git/commitdiff
(gdb-goto-breakpoint): String match more
authorNick Roberts <nickrob@snap.net.nz>
Sat, 3 Jul 2004 09:21:12 +0000 (09:21 +0000)
committerNick Roberts <nickrob@snap.net.nz>
Sat, 3 Jul 2004 09:21:12 +0000 (09:21 +0000)
carefully.
(gdb-delete-breakpoint, gdb-toggle-breakpoint): Handle gdbmi.

lisp/progmodes/gdb-ui.el

index 1e2ef00580e8e0d95dba31666231d120d0cd197a..1972074fdb1a7235cab8aa567297145cb2d0e0d9 100644 (file)
@@ -1202,48 +1202,52 @@ static char *magick[] = {
   (interactive)
   (save-excursion
     (beginning-of-line 1)
-    (if (not (looking-at "\\([0-9]+\\).*point\\s-*\\S-*\\s-*\\(.\\)"))
-       (error "Not recognized as break/watchpoint line")
-      (gdb-enqueue-input
-       (list
-       (concat
-        (if (eq ?y (char-after (match-beginning 2)))
-            (concat gdb-server-prefix "disable ")
-          (concat gdb-server-prefix "enable "))
-        (match-string 1) "\n")
-       'ignore)))))
+    (if (if (with-current-buffer gud-comint-buffer (eq gud-minor-mode 'gdba))
+           (looking-at "\\([0-9]+\\).*point\\s-*\\S-*\\s-*\\(.\\)")
+         (looking-at
+      "\\([0-9]+\\)\\s-*\\S-*\\s-*\\S-*\\s-*\\(.\\)\\s-*\\S-*\\s-*\\S-*:[0-9]+"))
+       (gdb-enqueue-input
+        (list
+         (concat gdb-server-prefix
+                 (if (eq ?y (char-after (match-beginning 2)))
+                     "disable "
+                   "enable ")
+                 (match-string 1) "\n") 'ignore))
+      (error "Not recognized as break/watchpoint line"))))
 
 (defun gdb-delete-breakpoint ()
   "Delete the breakpoint at current line."
   (interactive)
   (beginning-of-line 1)
-  (if (not (looking-at "\\([0-9]+\\).*point\\s-*\\S-*\\s-*\\(.\\)"))
-      (error "Not recognized as break/watchpoint line")
-    (gdb-enqueue-input
-     (list (concat gdb-server-prefix "delete " (match-string 1) "\n") 'ignore))))
+  (if (if (with-current-buffer gud-comint-buffer (eq gud-minor-mode 'gdba))
+         (looking-at "\\([0-9]+\\).*point\\s-*\\S-*\\s-*\\(.\\)")
+       (looking-at
+        "\\([0-9]+\\)\\s-*\\S-*\\s-*\\S-*\\s-*.\\s-*\\S-*\\s-*\\S-*:[0-9]+"))
+      (gdb-enqueue-input
+       (list
+       (concat gdb-server-prefix "delete " (match-string 1) "\n") 'ignore))
+    (error "Not recognized as break/watchpoint line")))
 
 (defun gdb-goto-breakpoint ()
   "Display the breakpoint location specified at current line."
   (interactive)
   (save-excursion
     (beginning-of-line 1)
-    (if (with-current-buffer gud-comint-buffer (eq gud-minor-mode 'gdba))
-       (progn
-         (re-search-forward "in\\s-+\\S-+\\s-+at\\s-+" nil t)
-         (looking-at "\\(\\S-*\\):\\([0-9]+\\)"))
-    (looking-at
-     "[0-9]*\\s-*\\S-*\\s-*\\S-*\\s-*.\\s-*\\S-*\\s-*\\(\\S-*\\):\\([0-9]+\\)")))
-  (if (match-string 2)
-      (let ((line (match-string 2))
-           (file (match-string 1)))
-       (save-selected-window
-         (let* ((buf (find-file-noselect (if (file-exists-p file)
-                                             file
-                                           (expand-file-name file gdb-cdir))))
-                (window (gdb-display-buffer buf)))
-                (with-current-buffer buf
-                  (goto-line (string-to-number line))
-                  (set-window-point window (point))))))))
+    (if (if (with-current-buffer gud-comint-buffer (eq gud-minor-mode 'gdba))
+           (looking-at ".*in\\s-+\\S-+\\s-+at\\s-+\\(\\S-*\\):\\([0-9]+\\)")
+         (looking-at
+     "[0-9]+\\s-*\\S-*\\s-*\\S-*\\s-*.\\s-*\\S-*\\s-*\\(\\S-*\\):\\([0-9]+\\)"))
+       (let ((line (match-string 2))
+             (file (match-string 1)))
+         (save-selected-window
+           (let* ((buf (find-file-noselect (if (file-exists-p file)
+                                               file
+                                             (expand-file-name file gdb-cdir))))
+                  (window (gdb-display-buffer buf)))
+             (with-current-buffer buf
+               (goto-line (string-to-number line))
+               (set-window-point window (point))))))
+      (error "Not recognized as break/watchpoint line"))))
 
 (defun gdb-mouse-goto-breakpoint (event)
   "Display the breakpoint location that you click on."