DIRECTORY Rope USING [ROPE, Text]; ConvertUnsafe: CEDAR DEFINITIONS = BEGIN ROPE: TYPE = Rope.ROPE; Text: TYPE = Rope.Text; LS: TYPE = LONG STRING; SubString: TYPE = RECORD [base: LS, offset, length: CARDINAL]; AppendRefText: UNSAFE PROC [to: LS, from: REF READONLY TEXT]; AppendRope: UNSAFE PROC [to: LS, from: ROPE]; AppendSubString: UNSAFE PROC [to: LS, from: SubString]; AppendSubStringToRefText: PROC [to: REF TEXT, from: SubString]; ToRefText: PROC [from: LS] RETURNS[REF TEXT]; ToRope: PROC [from: LS] RETURNS[Text]; SubStringToRope: PROC [from: SubString] RETURNS[Text]; EqualSubStrings: PROC [s1, s2: SubString, case: BOOL ¬ TRUE] RETURNS[BOOL]; END. x ConvertUnsafe.mesa Copyright Σ 1985, 1986, 1991 by Xerox Corporation. All rights reserved. Russ Atkinson, January 29, 1985 6:53:15 pm PST Paul Rovner, September 19, 1983 9:16 pm Last Edited by: Levin, September 22, 1983 10:39 am Doug Wyatt, November 13, 1986 6:59:53 pm PST Unsafe conversions to/from LONG STRING. raises BoundsFault if destination is too small raises BoundsFault if destination is too small raises BoundsFault if destination is too small raises BoundsFault if destination is too small raises BoundsFault if the string is longer than LAST[NAT] raises BoundsFault if the string is longer than LAST[NAT] Κ9–(cedarcode) style•NewlineDelimiter ™codešœ™Kšœ Οeœ=™HKšœ+Οk™.Kšœ'™'K™2Kšœ,™,—K˜Kšœžœžœ™'K˜šž ˜ Kšœžœžœ˜—K˜KšΟn œžœž ˜ Kšœž˜K˜Kšžœžœžœ˜Kšœžœ ˜Kšžœžœžœžœ˜Kš œ žœžœžœžœ˜>K˜šŸ œžœžœžœžœžœžœ˜=Kšœ.™.K™—š Ÿ œžœžœžœžœ˜-Kšœ.™.K™—šŸœžœžœžœ˜7Kšœ.™.K™—K˜šŸœžœžœžœ˜?Kšœ.™.K™—š Ÿ œžœžœžœžœžœ˜-Kšœ0žœžœ™9K™—šŸœžœžœžœ˜&Kšœ0žœžœ™9K™—šŸœžœžœ˜6K˜—K˜Kš Πbnœžœžœžœžœžœ˜KK˜Kšžœ˜—…—žO