changeset 62845:28ffa958559d

(gdb-assembler-custom): Be more careful about preserving point.
author Nick Roberts <nickrob@snap.net.nz>
date Sat, 28 May 2005 12:15:33 +0000
parents e0779e343555
children 93362151dd3a
files lisp/progmodes/gdb-ui.el
diffstat 1 files changed, 17 insertions(+), 15 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/progmodes/gdb-ui.el	Sat May 28 12:12:06 2005 +0000
+++ b/lisp/progmodes/gdb-ui.el	Sat May 28 12:15:33 2005 +0000
@@ -2439,20 +2439,21 @@
   (let ((buffer (gdb-get-buffer 'gdb-assembler-buffer))
 	(pos 1) (address) (flag) (bptno))
     (with-current-buffer buffer
-      (if (not (equal gdb-frame-address "main"))
-	  (progn
-	    (goto-char (point-min))
-	    (if (and gdb-frame-address
-		     (re-search-forward gdb-frame-address nil t))
-		(progn
-		  (setq pos (point))
-		  (beginning-of-line)
-		  (or gdb-overlay-arrow-position
-		      (setq gdb-overlay-arrow-position (make-marker)))
-		  (set-marker gdb-overlay-arrow-position
-			      (point) (current-buffer))))))
-      ;; remove all breakpoint-icons in assembler buffer before updating.
-      (gdb-remove-breakpoint-icons (point-min) (point-max)))
+      (save-excursion
+	(if (not (equal gdb-frame-address "main"))
+	    (progn
+	      (goto-char (point-min))
+	      (if (and gdb-frame-address
+		       (re-search-forward gdb-frame-address nil t))
+		  (progn
+		    (setq pos (point))
+		    (beginning-of-line)
+		    (or gdb-overlay-arrow-position
+			(setq gdb-overlay-arrow-position (make-marker)))
+		    (set-marker gdb-overlay-arrow-position
+				(point) (current-buffer))))))
+	;; remove all breakpoint-icons in assembler buffer before updating.
+	(gdb-remove-breakpoint-icons (point-min) (point-max))))
     (with-current-buffer (gdb-get-buffer 'gdb-breakpoints-buffer)
       (goto-char (point-min))
       (while (< (point) (- (point-max) 1))
@@ -2465,9 +2466,10 @@
 	      (setq flag (char-after (match-beginning 2)))
 	      (setq address (match-string 3))
 	      (with-current-buffer buffer
+		(save-excursion
 		  (goto-char (point-min))
 		  (if (re-search-forward address nil t)
-		      (gdb-put-breakpoint-icon (eq flag ?y) bptno)))))))
+		      (gdb-put-breakpoint-icon (eq flag ?y) bptno))))))))
     (if (not (equal gdb-frame-address "main"))
 	(set-window-point (get-buffer-window buffer 0) pos))))