From 9055ce6510b629715a79b686192bc2857a25f87e Mon Sep 17 00:00:00 2001 From: Chris Hanson Date: Mon, 17 Apr 1995 21:46:25 +0000 Subject: [PATCH] Add new procedure GROUP-INSERT-CHARS!. --- v7/src/edwin/edwin.pkg | 3 ++- v7/src/edwin/grpops.scm | 19 +++++++++++++------ 2 files changed, 15 insertions(+), 7 deletions(-) diff --git a/v7/src/edwin/edwin.pkg b/v7/src/edwin/edwin.pkg index 911ab7e7c..bb9fff2dd 100644 --- a/v7/src/edwin/edwin.pkg +++ b/v7/src/edwin/edwin.pkg @@ -1,6 +1,6 @@ #| -*-Scheme-*- -$Id: edwin.pkg,v 1.168 1995/04/15 06:48:48 cph Exp $ +$Id: edwin.pkg,v 1.169 1995/04/17 21:46:25 cph Exp $ Copyright (c) 1989-95 Massachusetts Institute of Technology @@ -183,6 +183,7 @@ MIT in each case. |# group-extract-and-delete-string! group-extract-string group-insert-char! + group-insert-chars! group-insert-string! group-insert-substring! group-left-char diff --git a/v7/src/edwin/grpops.scm b/v7/src/edwin/grpops.scm index 14d394e73..6ca13f0ff 100644 --- a/v7/src/edwin/grpops.scm +++ b/v7/src/edwin/grpops.scm @@ -1,8 +1,8 @@ ;;; -*-Scheme-*- ;;; -;;; $Id: grpops.scm,v 1.21 1993/08/13 23:20:39 cph Exp $ +;;; $Id: grpops.scm,v 1.22 1995/04/17 21:46:10 cph Exp $ ;;; -;;; Copyright (c) 1986, 1989-93 Massachusetts Institute of Technology +;;; Copyright (c) 1986, 1989-95 Massachusetts Institute of Technology ;;; ;;; This material was developed by the Scheme project at the ;;; Massachusetts Institute of Technology, Department of @@ -110,10 +110,17 @@ ;;;; Insertions (define (group-insert-char! group index char) + (group-insert-chars! group index char 1)) + +(define (group-insert-chars! group index char n) (let ((interrupt-mask (set-interrupt-enables! interrupt-mask/gc-ok))) - (prepare-gap-for-insert! group index 1) - (string-set! (group-text group) index char) - (finish-group-insert! group index 1) + (prepare-gap-for-insert! group index n) + (let ((text (group-text group)) + (end (fix:+ index n))) + (do ((index index (fix:+ index 1))) + ((fix:= index end)) + (string-set! text index char))) + (finish-group-insert! group index n) (set-interrupt-enables! interrupt-mask) unspecific)) @@ -128,7 +135,7 @@ (finish-group-insert! group index n)) (set-interrupt-enables! interrupt-mask) unspecific)) - + (define (prepare-gap-for-insert! group new-start n) (if (or (group-read-only? group) (and (group-text-properties group) -- 2.25.1