(FILECREATED " 7-Jun-85 19:09:50" {PHYLUM}<NOTECARDS>RELEASE1.2I>FGHPATCH014.;1 4036   

      changes to:  (VARS FGHPATCH014COMS)
		   (FNS NC.TextCopySubstance))


(* Copyright (c) 1985 by Xerox Corporation. All rights reserved.)

(PRETTYCOMPRINT FGHPATCH014COMS)

(RPAQQ FGHPATCH014COMS ((* * For NCTEXTSUBSTANCE)
			(GLOBALVARS NC.TEditFormatIDs)
			(VARS (NC.TEditFormatIDs (LIST 31415 31416 31417)))
			(FNS NC.TextCopySubstance)
			(* * For NCDATABASE)
			(GLOBALVARS NC.TEditFormatIDs)
			(FNS NC.GetTextSubstance)))
(* * For NCTEXTSUBSTANCE)

(DECLARE: DOEVAL@COMPILE DONTCOPY

(GLOBALVARS NC.TEditFormatIDs)
)

(RPAQ NC.TEditFormatIDs (LIST 31415 31416 31417))
(DEFINEQ

(NC.TextCopySubstance
  (LAMBDA (ID FromStream ToStream)                           (* fgh: " 7-Jun-85 19:09")

          (* * Copy a text substance from FromStream to ToStream.)


    (PROG (FromStartPtr FromEndPtr ToEndPtrLoc ToEndPtr ToStartPtr)

          (* * Set up start/end pointers on ToStream)


          (SETQ ToStartPtr (IPLUS (GETFILEPTR ToStream)
				  6))
          (NC.PutPtr ToStream ToStartPtr)
          (SETQ ToEndPtrLoc (GETFILEPTR ToStream))
          (NC.PutPtr ToStream 0)

          (* * Get FromStream start/end pointers)


          (SETQ FromStartPtr (NC.GetPtr FromStream 3))
          (SETQ FromEndPtr (NC.GetPtr FromStream 3))

          (* * Copy the bytes, fixing up the file absolute pointers on the way.)


          (COND
	    ((IGREATERP (IDIFFERENCE FromEndPtr FromStartPtr)
			2)
	      (SETFILEPTR FromStream (IDIFFERENCE FromEndPtr 2))
	      (COND
		((FMEMB (\WIN FromStream)
			NC.TEditFormatIDs)
		  (COPYBYTES FromStream ToStream FromStartPtr (IDIFFERENCE FromEndPtr 8))
		  (\DWOUT ToStream (IPLUS (IDIFFERENCE (\DWIN FromStream)
						       FromStartPtr)
					  ToStartPtr))
		  (RPTQ 2 (\WOUT ToStream (\WIN FromStream))))
		(T (COPYBYTES FromStream ToStream FromStartPtr FromEndPtr))))
	    (T (COPYBYTES FromStream ToStream FromStartPtr FromEndPtr)))

          (* * Set up the ned ptr on the ToStream)


          (SETQ ToEndPtr (GETFILEPTR ToStream))
          (SETFILEPTR ToStream ToEndPtrLoc)
          (NC.PutPtr ToStream ToEndPtr)
          (RETURN T))))
)
(* * For NCDATABASE)

(DECLARE: DOEVAL@COMPILE DONTCOPY

(GLOBALVARS NC.TEditFormatIDs)
)
(DEFINEQ

(NC.GetTextSubstance
  (LAMBDA (DatabaseStream ID Region)                         (* fgh: " 7-Jun-85 16:44")
                                                             (* Get a text stream from the database file)
    (LET ((TempStream (OPENSTREAM (PACK* (QUOTE {CORE})
					 (GENSYM))
				  (QUOTE BOTH)
				  (QUOTE NEW)))
       StartPtr EndPtr StartFormatPtr TempFileEof TextStream)
      (SETQ StartPtr (NC.GetPtr DatabaseStream))
      (SETQ EndPtr (NC.GetPtr DatabaseStream))

          (* * Copy text stream to a NODIRCORE file)


      (COPYBYTES DatabaseStream TempStream StartPtr EndPtr)

          (* * fix up file absolute pinter to the beginning of the formatting nformation)


      (COND
	((IGREATERP (SETQ TempFileEof (GETEOFPTR TempStream))
		    2)
	  (SETFILEPTR TempStream (IDIFFERENCE TempFileEof 2))
	  (COND
	    ((FMEMB (\WIN TempStream)
		    NC.TEditFormatIDs)
	      (SETFILEPTR TempStream (IDIFFERENCE TempFileEof 8))
	      (SETQ StartFormatPtr (\DWIN TempStream))
	      (SETFILEPTR TempStream (IDIFFERENCE TempFileEof 8))
	      (\DWOUT TempStream (IDIFFERENCE StartFormatPtr StartPtr))))))

          (* * return an open textstream on the temp file)


      (SETQ TextStream (OPENTEXTSTREAM TempStream NIL NIL NIL (NC.MakeTEditPropsList)))
      (STREAMPROP TextStream (QUOTE NoteCardID)
		  ID)
      TextStream)))
)
(PUTPROPS FGHPATCH014 COPYRIGHT ("Xerox Corporation" 1985))
(DECLARE: DONTCOPY
  (FILEMAP (NIL (690 2353 (NC.TextCopySubstance 700 . 2351)) (2449 3954 (NC.GetTextSubstance 2459 . 3952
)))))
STOP