Add new procedure WRITE-SUBSTRING.
authorChris Hanson <org/chris-hanson/cph>
Mon, 9 Aug 1999 18:12:11 +0000 (18:12 +0000)
committerChris Hanson <org/chris-hanson/cph>
Mon, 9 Aug 1999 18:12:11 +0000 (18:12 +0000)
v7/doc/ref-manual/scheme.texinfo
v7/src/runtime/output.scm
v7/src/runtime/runtime.pkg
v8/src/runtime/runtime.pkg

index b531b9bb43b100add143c3f5b66de9e3d16376a6..aa4a9203f71be189c29b82e30670892408cb3085 100644 (file)
@@ -2,7 +2,7 @@
 @iftex
 @finalout
 @end iftex
-@comment $Id: scheme.texinfo,v 1.74 1999/08/04 01:42:54 cph Exp $
+@comment $Id: scheme.texinfo,v 1.75 1999/08/09 18:12:11 cph Exp $
 @comment %**start of header (This is for running Texinfo on a region.)
 @setfilename scheme.info
 @settitle MIT Scheme Reference
@@ -12525,6 +12525,15 @@ writing the contents of @var{string}, one character at a time using
 @code{write-char}, except that it is usually much faster.
 @end deffn
 
+@deffn {procedure+} write-substring string start end [output-port]
+@cindex string, output to port
+Writes the substring defined by @var{string}, @var{start}, and @var{end}
+to @var{output-port}, performs discretionary output flushing, and
+returns an unspecified value.  This is equivalent to writing the
+contents of the substring, one character at a time using
+@code{write-char}, except that it is usually much faster.
+@end deffn
+
 @deffn procedure write object [output-port]
 @cindex expression, output to port
 Writes a written representation of @var{object} to @var{output-port},
index f43234312797ab1cb76c53ec422243d79238e0ea..34386ccafccf5531f99d3d8f07f93dbac288ba47 100644 (file)
@@ -1,6 +1,6 @@
 #| -*-Scheme-*-
 
-$Id: output.scm,v 14.19 1999/02/16 19:44:51 cph Exp $
+$Id: output.scm,v 14.20 1999/08/09 18:10:38 cph Exp $
 
 Copyright (c) 1988-1999 Massachusetts Institute of Technology
 
@@ -92,6 +92,14 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
     (output-port/write-string port string)
     (output-port/discretionary-flush port)))
 
+(define (write-substring string start end #!optional port)
+  (let ((port
+        (if (default-object? port)
+            (current-output-port)
+            (guarantee-output-port port))))
+    (output-port/write-string port string start end)
+    (output-port/discretionary-flush port)))
+
 (define (wrap-custom-operation-0 operation-name)
   (lambda (#!optional port)
     (let ((port
index afb5f1b84c752676e134ac9b431151ef62b0109b..255dfac425a97ce9f755b967962793ee0b5a2ca3 100644 (file)
@@ -1,6 +1,6 @@
 #| -*-Scheme-*-
 
-$Id: runtime.pkg,v 14.329 1999/06/21 03:47:29 cph Exp $
+$Id: runtime.pkg,v 14.330 1999/08/09 18:10:41 cph Exp $
 
 Copyright (c) 1988-1999 Massachusetts Institute of Technology
 
@@ -1223,7 +1223,8 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
          write
          write-char
          write-line
-         write-string))
+         write-string
+         write-substring))
 
 (define-package (runtime interrupt-handler)
   (files "intrpt")
index f41b923529bc8b3a89d54e2972eb257ee7052f81..c3094c1944e2899089ac1687270e7c6c73033d15 100644 (file)
@@ -1,6 +1,6 @@
 #| -*-Scheme-*-
 
-$Id: runtime.pkg,v 14.334 1999/06/21 03:47:25 cph Exp $
+$Id: runtime.pkg,v 14.335 1999/08/09 18:10:44 cph Exp $
 
 Copyright (c) 1988-1999 Massachusetts Institute of Technology
 
@@ -1227,7 +1227,8 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
          write
          write-char
          write-line
-         write-string))
+         write-string
+         write-substring))
 
 (define-package (runtime interrupt-handler)
   (files "intrpt")