Home My Page Projects Code Snippets Project Openings SML/NJ
Summary Tracker SCM

SCM Repository

[smlnj] Diff of /sml/trunk/src/system/Basis/Implementation/IO/text-io-fn.sml
ViewVC logotype

Diff of /sml/trunk/src/system/Basis/Implementation/IO/text-io-fn.sml

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1349, Wed Sep 3 22:22:18 2003 UTC revision 1350, Fri Sep 5 21:34:27 2003 UTC
# Line 27  Line 27 
27      structure PIO = OSPrimIO.PrimIO      structure PIO = OSPrimIO.PrimIO
28      structure A = CharArray      structure A = CharArray
29      structure V = CharVector      structure V = CharVector
30        structure AS = CharArraySlice
31        structure VS = CharVectorSlice
32    
33    (* an element for initializing buffers *)    (* an element for initializing buffers *)
34      val someElem = #"\000"      val someElem = #"\000"
# Line 57  Line 59 
59              (* end case *)              (* end case *)
60            end            end
61  **)  **)
62      val vecExtract = V.extract      val vecExtract = VS.vector o VS.slice
63      val vecSub = V.sub      val vecSub = V.sub
64      val arrUpdate = A.update      val arrUpdate = A.update
65      val substringBase = Substring.base      val substringBase = Substring.base
# Line 473  Line 475 
475                end                end
476    
477        (* a version of copyVec for BLOCK_BUF output of strings and substrings. *)        (* a version of copyVec for BLOCK_BUF output of strings and substrings. *)
478          fun blockBufCopyVec (src, srcI, srcLen, dst, dstI) = (          fun blockBufCopyVec (src, srcI, srcLen, dst, dstI) =
479                A.copyVec {              (AS.copyVec { src = VS.slice (src, srcI, SOME srcLen),
480                    src = src, si = srcI, len = SOME srcLen, dst = dst, di = dstI                            dst = dst, di = dstI };
                 };  
481                false)                false)
482    
483          fun output (strm as OSTRM os, v) = let          fun output (strm as OSTRM os, v) = let
# Line 502  Line 503 
503                            in                            in
504                              if (avail < dataLen)                              if (avail < dataLen)
505                                then let                                then let
506                                  val _ = A.copyVec{                                  val _ =
507                                          src=v, si=0, len=SOME avail, dst=buf, di=i                                      AS.copyVec { src=VS.slice(v,0,SOME avail),
508                                        }                                                   dst=buf, di=i }
509                                  val _ = #writeArr os {buf=buf, i=0, sz=NONE}                                  val _ = #writeArr os {buf=buf, i=0, sz=NONE}
510                                        handle ex => (                                        handle ex => (
511                                          pos := bufLen;                                          pos := bufLen;
# Line 685  Line 686 
686                            in                            in
687                              if (avail < dataLen)                              if (avail < dataLen)
688                                then let                                then let
689                                  val _ = A.copyVec{                                  val _ =
690                                          src=v, si=dataStart, len=SOME avail, dst=buf, di=i                                      AS.copyVec { src = VS.slice
691                                        }                                                     (v,dataStart,SOME avail),
692                                                     dst = buf, di = i }
693                                  val _ = #writeArr os {buf=buf, i=0, sz=NONE}                                  val _ = #writeArr os {buf=buf, i=0, sz=NONE}
694                                        handle ex => (                                        handle ex => (
695                                          pos := bufLen;                                          pos := bufLen;

Legend:
Removed from v.1349  
changed lines
  Added in v.1350

root@smlnj-gforge.cs.uchicago.edu
ViewVC Help
Powered by ViewVC 1.0.0