Implement new procedures `guarantee-newline' and
authorChris Hanson <org/chris-hanson/cph>
Tue, 25 Apr 1989 02:04:27 +0000 (02:04 +0000)
committerChris Hanson <org/chris-hanson/cph>
Tue, 25 Apr 1989 02:04:27 +0000 (02:04 +0000)
`guarantee-newlines', which are like `insert-newline' and
`insert-newlines' respectively, except that they output one fewer
newline if point is at the beginning of a line.

v7/src/edwin/simple.scm

index ff403e154a2116ff293907658038ea871687e22d..31f9306abfe97fcc6a3a281a7e0e158389f3f857 100644 (file)
@@ -1,6 +1,6 @@
 ;;; -*-Scheme-*-
 ;;;
-;;;    $Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/edwin/simple.scm,v 1.27 1989/04/15 00:53:03 cph Exp $
+;;;    $Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/edwin/simple.scm,v 1.28 1989/04/25 02:04:27 cph Exp $
 ;;;
 ;;;    Copyright (c) 1985, 1989 Massachusetts Institute of Technology
 ;;;
           (group-insert-substring! (mark-group point) (mark-index point)
                                    (make-string n #\newline) 0 n)))))
 
+(define (guarantee-newline #!optional point)
+  (let ((point (if (default-object? point) (current-point) point)))
+    (if (not (line-start? point))
+       (insert-newline point))))
+
+(define (guarantee-newlines n #!optional point)
+  (let ((point (if (default-object? point) (current-point) point)))
+    (insert-newlines (if (line-start? point) (-1+ n) n) point)))
+
 (define (extract-left-char #!optional point)
   (let ((point (if (default-object? point) (current-point) point)))
     (let ((group (mark-group point))
   (let ((point (if (default-object? point) (current-point) point)))
     (group-insert-substring! (mark-group point) (mark-index point)
                             string start end)))
-
+\f
 (define (extract-string mark #!optional point)
   (let ((point (if (default-object? point) (current-point) point)))
     (let ((group (mark-group mark))
       (if (< index1 index2)
          (group-extract-string group index1 index2)
          (group-extract-string group index2 index1)))))
-\f
+
 (define (delete-string mark #!optional point)
   (let ((point (if (default-object? point) (current-point) point)))
     (let ((group (mark-group mark))