aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRichard M. Stallman1994-03-28 18:48:16 +0000
committerRichard M. Stallman1994-03-28 18:48:16 +0000
commit4d4cd289b45ae706b4f723c3a11955447020d43e (patch)
treece553aff0395f25b3522db244f93a705a73d7ea9
parent3e01fd9daa06241e8b3a48812c64969cc79c8092 (diff)
downloademacs-4d4cd289b45ae706b4f723c3a11955447020d43e.tar.gz
emacs-4d4cd289b45ae706b4f723c3a11955447020d43e.zip
(emerge-goto-line): New function.
(emerge-convert-diffs-to-markers): Use it.
-rw-r--r--lisp/emerge.el22
1 files changed, 17 insertions, 5 deletions
diff --git a/lisp/emerge.el b/lisp/emerge.el
index 1bab1ce5099..482dfe4bf61 100644
--- a/lisp/emerge.el
+++ b/lisp/emerge.el
@@ -1432,6 +1432,12 @@ These characteristics are restored by `emerge-restore-buffer-characteristics'."
1432 (emerge-restore-variables emerge-saved-variables 1432 (emerge-restore-variables emerge-saved-variables
1433 B-values)))) 1433 B-values))))
1434 1434
1435;; Move to line DESIRED-LINE assuming we are at line CURRENT-LINE.
1436;; Return DESIRED-LINE.
1437(defun emerge-goto-line (desired-line current-line)
1438 (forward-line (- desired-line current-line))
1439 current-line)
1440
1435(defun emerge-convert-diffs-to-markers (A-buffer 1441(defun emerge-convert-diffs-to-markers (A-buffer
1436 B-buffer 1442 B-buffer
1437 merge-buffer 1443 merge-buffer
@@ -1449,7 +1455,13 @@ These characteristics are restored by `emerge-restore-buffer-characteristics'."
1449 B-buffer 1455 B-buffer
1450 (save-restriction 1456 (save-restriction
1451 (widen) 1457 (widen)
1452 (count-lines 1 B-point-min))))) 1458 (count-lines 1 B-point-min))))
1459 ;; Record current line number in each buffer
1460 ;; so we don't have to count from the beginning.
1461 (a-line A-hidden-lines)
1462 (b-line B-hidden-lines))
1463 (emerge-eval-in-buffer A-buffer (goto-char (point-min)))
1464 (emerge-eval-in-buffer B-buffer (goto-char (point-min)))
1453 (while lineno-list 1465 (while lineno-list
1454 (let* ((list-element (car lineno-list)) 1466 (let* ((list-element (car lineno-list))
1455 a-begin-marker 1467 a-begin-marker
@@ -1466,15 +1478,15 @@ These characteristics are restored by `emerge-restore-buffer-characteristics'."
1466 ;; place markers at the appropriate places in the buffers 1478 ;; place markers at the appropriate places in the buffers
1467 (emerge-eval-in-buffer 1479 (emerge-eval-in-buffer
1468 A-buffer 1480 A-buffer
1469 (goto-line (+ a-begin A-hidden-lines)) 1481 (setq a-line (emerge-goto-line (+ a-begin A-hidden-lines) a-line))
1470 (setq a-begin-marker (point-marker)) 1482 (setq a-begin-marker (point-marker))
1471 (goto-line (+ a-end A-hidden-lines)) 1483 (setq a-line (emerge-goto-line (+ a-end A-hidden-lines) a-line))
1472 (setq a-end-marker (point-marker))) 1484 (setq a-end-marker (point-marker)))
1473 (emerge-eval-in-buffer 1485 (emerge-eval-in-buffer
1474 B-buffer 1486 B-buffer
1475 (goto-line (+ b-begin B-hidden-lines)) 1487 (setq b-line (emerge-goto-line (+ b-begin B-hidden-lines) b-line))
1476 (setq b-begin-marker (point-marker)) 1488 (setq b-begin-marker (point-marker))
1477 (goto-line (+ b-end B-hidden-lines)) 1489 (setq b-line (emerge-goto-line (+ b-end B-hidden-lines) b-line))
1478 (setq b-end-marker (point-marker))) 1490 (setq b-end-marker (point-marker)))
1479 (setq merge-begin-marker (set-marker 1491 (setq merge-begin-marker (set-marker
1480 (make-marker) 1492 (make-marker)