From f6ec17fa79b4856b25cea44cc36b7b0ea0693b6a Mon Sep 17 00:00:00 2001 From: Chris Hanson Date: Fri, 20 Nov 1992 18:23:27 +0000 Subject: [PATCH] Fix two bugs. Discard permanent marks when no longer needed. Repaginate. --- v7/src/edwin/sort.scm | 25 ++++++++++++++----------- 1 file changed, 14 insertions(+), 11 deletions(-) diff --git a/v7/src/edwin/sort.scm b/v7/src/edwin/sort.scm index 282814283..baad66ccd 100644 --- a/v7/src/edwin/sort.scm +++ b/v7/src/edwin/sort.scm @@ -1,6 +1,6 @@ ;;; -*-Scheme-*- ;;; -;;; $Id: sort.scm,v 1.1 1992/11/01 07:11:48 arthur Exp $ +;;; $Id: sort.scm,v 1.2 1992/11/20 18:23:27 cph Exp $ ;;; ;;; Copyright (c) 1992 Massachusetts Institute of Technology ;;; @@ -70,12 +70,13 @@ start2 (key-end start2))))))))) (insert-reordered-region start end sorted-list unsorted-list) - (kill-string start delete-end))) + (kill-string start delete-end) + (mark-temporary! delete-end))) (define (identify-records region forward-record record-end) (let ((limit (region-end region))) (let next-record ((start (region-start region))) - (if start + (if (and start (mark< start limit)) (let ((end (record-end start))) (if (and end (mark< end limit)) (cons (cons start end) @@ -88,19 +89,21 @@ (let next-element ((previous start) (sorted-list sorted-list) (unsorted-list unsorted-list)) - (if (not (null? sorted-list)) + (if (null? sorted-list) + (if (mark< previous end) + (insert-string (extract-string previous end) insert-mark)) (begin - (insert-string - (extract-string previous - (caar unsorted-list)) - insert-mark) + (if (mark< previous (caar unsorted-list)) + (insert-string (extract-string previous (caar unsorted-list)) + insert-mark)) (insert-string (extract-string (caar sorted-list) (cdar sorted-list)) insert-mark) (next-element (cdar unsorted-list) (cdr sorted-list) - (cdr unsorted-list))))))) + (cdr unsorted-list))))) + (mark-temporary! delete-end))) (define (sort-textual-comparison start1 end1 start2 end2) (string