From a3ea46d36137db552b6360275a40aa2a2c44c052 Mon Sep 17 00:00:00 2001 From: Chris Hanson Date: Mon, 29 Apr 1991 11:23:46 +0000 Subject: [PATCH] M-x replace-string and M-x replace-regexp are supposed to leave point at the end of the last replacement. --- v7/src/edwin/replaz.scm | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/v7/src/edwin/replaz.scm b/v7/src/edwin/replaz.scm index b5f313454..765b7a73b 100644 --- a/v7/src/edwin/replaz.scm +++ b/v7/src/edwin/replaz.scm @@ -1,6 +1,6 @@ ;;; -*-Scheme-*- ;;; -;;; $Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/edwin/replaz.scm,v 1.67 1991/04/26 03:13:19 cph Exp $ +;;; $Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/edwin/replaz.scm,v 1.68 1991/04/29 11:23:46 cph Exp $ ;;; ;;; Copyright (c) 1986, 1989-91 Massachusetts Institute of Technology ;;; @@ -131,14 +131,18 @@ and \\ means insert what matched th \\(...\\) in REGEXP." (define (replacement-loop point) (undo-boundary! point) - (cond ((not (find-next-occurrence point)) - (done false)) - ((mark< point (re-match-end 0)) - (replacement-loop (perform-replacement))) - ((not (group-end? point)) - (replacement-loop (mark1+ point))) - (else - (done false)))) + (let ((done + (lambda () + (set-current-point! point) + (done false)))) + (cond ((not (find-next-occurrence point)) + (done)) + ((mark< point (re-match-end 0)) + (replacement-loop (perform-replacement))) + ((not (group-end? point)) + (replacement-loop (mark1+ point))) + (else + (done))))) (define (query-loop point) (undo-boundary! point) -- 2.25.1