From 30c17e19096651e5d3b009e23b77711938074ce8 Mon Sep 17 00:00:00 2001 From: Chris Hanson Date: Sat, 9 Jan 1993 09:41:30 +0000 Subject: [PATCH] Add a SHRINK-LENGTH field to the group data structure, and change the allocation of groups to initialize them to a fixed minimum size. --- v7/src/edwin/buffer.scm | 4 ++-- v7/src/edwin/edwin.pkg | 3 ++- v7/src/edwin/struct.scm | 22 +++++++++++----------- 3 files changed, 15 insertions(+), 14 deletions(-) diff --git a/v7/src/edwin/buffer.scm b/v7/src/edwin/buffer.scm index 322ce6754..904322c9a 100644 --- a/v7/src/edwin/buffer.scm +++ b/v7/src/edwin/buffer.scm @@ -1,6 +1,6 @@ ;;; -*-Scheme-*- ;;; -;;; $Id: buffer.scm,v 1.160 1992/11/17 21:31:20 cph Exp $ +;;; $Id: buffer.scm,v 1.161 1993/01/09 09:38:53 cph Exp $ ;;; ;;; Copyright (c) 1986, 1989-92 Massachusetts Institute of Technology ;;; @@ -81,7 +81,7 @@ The buffer is guaranteed to be deselected at that time." (define (make-buffer name mode directory) (let ((buffer (%make-buffer))) - (let ((group (make-group (string-copy "") buffer))) + (let ((group (make-group buffer))) (vector-set! buffer buffer-index:name name) (vector-set! buffer buffer-index:group group) (add-group-clip-daemon! group (buffer-clip-daemon buffer)) diff --git a/v7/src/edwin/edwin.pkg b/v7/src/edwin/edwin.pkg index 6258ec29d..891898f69 100644 --- a/v7/src/edwin/edwin.pkg +++ b/v7/src/edwin/edwin.pkg @@ -1,6 +1,6 @@ #| -*-Scheme-*- -$Id: edwin.pkg,v 1.110 1993/01/09 01:16:07 cph Exp $ +$Id: edwin.pkg,v 1.111 1993/01/09 09:39:03 cph Exp $ Copyright (c) 1989-1993 Massachusetts Institute of Technology @@ -181,6 +181,7 @@ MIT in each case. |# group-insert-string! group-insert-substring! group-left-char + group-minimum-length group-right-char prepare-gap-for-insert!)) diff --git a/v7/src/edwin/struct.scm b/v7/src/edwin/struct.scm index d74a97147..221a5ddcd 100644 --- a/v7/src/edwin/struct.scm +++ b/v7/src/edwin/struct.scm @@ -1,6 +1,6 @@ ;;; -*-Scheme-*- ;;; -;;; $Id: struct.scm,v 1.82 1993/01/09 01:16:20 cph Exp $ +;;; $Id: struct.scm,v 1.83 1993/01/09 09:41:30 cph Exp $ ;;; ;;; Copyright (c) 1985, 1989-93 Massachusetts Institute of Technology ;;; @@ -107,20 +107,19 @@ modified? point buffer - ) - -(define (make-group string buffer) - (let ((group (%make-group)) - (n (string-length string))) - (vector-set! group group-index:text string) - (vector-set! group group-index:gap-start n) - (vector-set! group group-index:gap-length 0) - (vector-set! group group-index:gap-end n) + shrink-length) + +(define (make-group buffer) + (let ((group (%make-group))) + (vector-set! group group-index:text (string-allocate group-minimum-length)) + (vector-set! group group-index:gap-start 0) + (vector-set! group group-index:gap-length group-minimum-length) + (vector-set! group group-index:gap-end 0) (vector-set! group group-index:marks '()) (let ((start (make-permanent-mark group 0 false))) (vector-set! group group-index:start-mark start) (vector-set! group group-index:display-start start)) - (let ((end (make-permanent-mark group n true))) + (let ((end (make-permanent-mark group 0 true))) (vector-set! group group-index:end-mark end) (vector-set! group group-index:display-end end)) (vector-set! group group-index:read-only? false) @@ -132,6 +131,7 @@ (vector-set! group group-index:modified? false) (vector-set! group group-index:point (make-permanent-mark group 0 true)) (vector-set! group group-index:buffer buffer) + (vector-set! group group-index:shrink-length false) group)) (define (group-length group) -- 2.25.1