/* Generated with C2C (Cedar To C)*/ /* Copyright (C) 1992 by Xerox Corporation. All rights reserved. */ /* time: February 21, 1992 11:09:26 pm PST */ /* C2C version: October 16, 1990 (native) */ /* ref-counting: off */ /* file: RopeFileStreamImpl, module: RopeFileStreamImpl */ /* switches: bcfhklnouw */ #include <cedar/InstallationSupport.h> #include <cedar/CedarExtra.h> static char versionStamp[] = "@(#)mob←version [1564014747,399322368] RopeFileStreamImpl"; typedef unsigned word, *ptr; typedef unsigned char byte, *bPt; typedef unsigned short half, *hPt; typedef word (*fPt)(); typedef struct {word f0, f1, f2;} W3; typedef struct {word f0, f1, f2, f3, f4, f5, f6, f7;} W8; typedef struct {word f0, f1;} W2; typedef struct {W8 f; W2 r;} W10; typedef W3 *W3Pt; #define SOURCE(p, l) /* source p, l */ #define SGNCK(i) ((int) (word) (i) < 0 ? XR←RaiseArithmeticFault(): i ) static void NoName←Q516(); static void RopeFileStreamImpl←P0(); static word StreamDeactivate←P60(); static word StreamEqual←P120(); static void StreamDescribe←P180(); static word StreamMove←P240(); static word NoName←Q576(); static word ByteSequenceObjectFromStream←P300(); static word FromStream←P360(); static void NoName←Q636(); static struct {unsigned f; char r[16];} string1 = {851984, "\257\300\135\070\370\233\300\027\315\055\000\100\214\000\000"}; static struct {unsigned f; char r[4];} string2 = {131074, "\004\007\000"}; static struct {unsigned f; char r[16];} string3 = {917520, "\216\257\300\363\223\326\161\300\017\164\046\072\104\350\000"}; static struct {unsigned f; char r[4];} string4 = {65537, "\001\000\000"}; static struct {unsigned f; char r[8];} string5 = {458760, "<anon: "}; static struct {unsigned f; char r[4];} string6 = {65540, ">\000\000"}; static struct {unsigned f; char r[4];} string7 = {131076, "??\000"}; static struct {unsigned f; char r[16];} string8 = {851984, "\257\300\135\070\370\233\300\027\315\055\000\100\200\000\000"}; static struct {unsigned f; char r[4];} string9 = {196611, "\004G\000"}; static struct {unsigned f; char r[16];} string10 = {851984, "\257\300\255\053\300\023\300\142\135\315\105\100\150\000\000"}; static struct {unsigned f; char r[16];} string11 = {851984, "\257\300\015\277\004\146\300\034\367\146\045\100\164\000\000"}; static struct {unsigned f; char r[16];} string12 = {851984, "\257\300\363\223\326\161\300\017\164\046\072\100\150\000\000"}; static struct {unsigned f; char r[8];} string13 = {1383034981, "File"}; static struct {unsigned f; char r[16];} string14 = {851984, "\257\300\262\334\125\203\300\272\176\356\230\100\150\000\000"}; static struct { word f0[11]; word f11; word f12; word f13; word f14; word f15; word f16; word f17; word f18; word f19; word f20; word f21; word f22; word f23; word f24[6]; } globalframe = { {0}, (word) FromStream←P360, 0, (word) ByteSequenceObjectFromStream←P300, 0, (word) StreamMove←P240, 0, (word) StreamDescribe←P180, 0, (word) StreamEqual←P120, 0, (word) StreamDeactivate←P60, 0, (word) RopeFileStreamImpl←P0, {0} }; static void NoName←Q516() { register ptr gf←c057 = (ptr) &globalframe; word var←c10628; (* (( (ptr) gf←c057)+4) ) = (word) XR←GetTypeIndex((word) &string1, 0, (word) &string2); (* (( (ptr) gf←c057)+6) ) = (word) XR←GetTypeIndex((word) &string3, 0, (word) &string4); (* (ptr) (( (bPt) gf←c057)+32) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c057)+6) ), (word) &string5); (* (ptr) (( (bPt) gf←c057)+36) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c057)+6) ), (word) &string6); (* (ptr) (( (bPt) gf←c057)+40) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c057)+6) ), (word) &string7); (void) XR←DeclareGlobalFrame((word) "RopeFileStreamImpl", &globalframe, (word) XR←GetTypeIndex((word) &string8, 0, (word) &string9) , (word) (( (bPt) gf←c057)+92)/* var←c10244 */ ); var←c10628 = (word) XR←ImportInterface((word) "Convert", (word) XR←GetTypeIndexS((word) (&string10)), 73); (* (( (ptr) gf←c057)+26)/* var←c10500 */ ) = var←c10628; (void) XR←ImportProcS(var←c10628, 67641858); var←c10628 = (word) XR←ImportInterface((word) "IO", (word) XR←GetTypeIndexS((word) (&string11)), 103); (* (( (ptr) gf←c057)+25)/* var←c10276 */ ) = var←c10628; (void) XR←ImportProcS(var←c10628, 67917827); (void) XR←ImportProcS(var←c10628, 67377921); (void) XR←ImportProcS(var←c10628, 68160002); (void) XR←ImportProcS(var←c10628, 530946); (void) XR←ImportProcS(var←c10628, 530434); var←c10628 = (word) XR←ImportInterface((word) "Rope", (word) XR←GetTypeIndexS((word) (&string12)), 43); (* (( (ptr) gf←c057)+27)/* var←c10532 */ ) = var←c10628; (void) XR←ImportProcS(var←c10628, 68419845); var←c10628 = (word) XR←ImportInterface((word) &string13, (word) XR←GetTypeIndexS((word) (&string14)), 7); (* (( (ptr) gf←c057)+28)/* var←c10596 */ ) = var←c10628; (void) XR←ImportProcS(var←c10628, 67633666); (void) XR←ImportProcS(var←c10628, 68681734); var←c10628 = (word) XR←ExportInterface((word) &string13, (word) XR←GetTypeIndexS((word) (&string14)), 7); (* (( (ptr) gf←c057)+29)/* var←c10660 */ ) = var←c10628; (void) XR←ExportProcS(var←c10628, (word) (( (bPt) gf←c057)+44)/* var←c10052 */ , 68158212); (void) XR←ExportProcS(var←c10628, (word) (( (bPt) gf←c057)+52)/* var←c10084 */ , 67372033); } static void RopeFileStreamImpl←P0(formal←c017, formal←c016) word formal←c017; word formal←c016; { /* RopeFileStreamImpl: */ } static word StreamDeactivate←P60(self←v3136, final←v3164) word self←v3136; word final←v3164; { register ptr gf←c10692 = (ptr) &globalframe; word var←c3208; word data←v3980; /* StreamDeactivate: */ SOURCE(424, 271) (void) (XR←MonitorEntry(self←v3136)); SOURCE(524, 30) data←v3980 = XR←Narrow((* (( (ptr) self←v3136)+5) ), (* (( (ptr) gf←c10692)+4) )); SOURCE(556, 50) if (((* (ptr) data←v3980 ) == 0)) { SOURCE(582, 24) (void) (XR←MonitorExit(self←v3136)); return(2); }; SOURCE(608, 70) if ((0 != final←v3164)) { SOURCE(624, 21) { word pd15; pd15 = (* (( (ptr) (* (( (ptr) gf←c10692)+25)/* var←c10276 */ ))+28) ); (void) ( *( (fPt) ((* (ptr) pd15 ))))((* (ptr) data←v3980 ), 0, pd15); }; SOURCE(647, 17) (* (ptr) data←v3980 ) = 0; SOURCE(666, 12) (void) (XR←MonitorExit(self←v3136)); return(0); }; SOURCE(681, 14) (void) (XR←MonitorExit(self←v3136)); return(1); } static word StreamEqual←P120(self←v3268, other←v3296) word self←v3268; word other←v3296; { register ptr gf←c10724 = (ptr) &globalframe; word var←c3340; word data←v4024; /* StreamEqual: */ SOURCE(699, 124) (void) (XR←MonitorEntry(self←v3268)); SOURCE(776, 30) data←v4024 = XR←Narrow((* (( (ptr) self←v3268)+5) ), (* (( (ptr) gf←c10724)+4) )); SOURCE(808, 15) (void) (XR←MonitorExit(self←v3268)); return(0); } static void StreamDescribe←P180(formal←c034, self←v3400) word formal←c034; word self←v3400; { register ptr gf←c10756 = (ptr) &globalframe; word fileName←v3444; word created←v3472; word open←v3500; word data←v4068; /* StreamDescribe: */ SOURCE(827, 221) (void) (XR←MonitorEntry(self←v3400)); SOURCE(827, 221) fileName←v3444 = 0; SOURCE(827, 221) created←v3472 = 0; SOURCE(937, 30) data←v4068 = XR←Narrow((* (( (ptr) self←v3400)+5) ), (* (( (ptr) gf←c10756)+4) )); SOURCE(969, 79) fileName←v3444 = (* (( (ptr) data←v4068)+1) ); created←v3472 = (* (( (ptr) data←v4068)+2) ); open←v3500 = ((* (ptr) data←v4068 ) != 0); /* removed tail goto */ (void) (XR←MonitorExit(self←v3400)); (* (ptr) formal←c034 ) = fileName←v3444; (* (( (ptr) formal←c034)+1) ) = created←v3472; (* (( (ptr) formal←c034)+2) ) = open←v3500; return; } static word StreamMove←P240(formal←c068, formal←c069, formal←c070) word formal←c068; W3 formal←c069; word formal←c070; { W10 var←c10788; /* declaration of self←v3560 skipped */ /* declaration of block←v3588 skipped */ /* declaration of start←v3616 skipped */ /* declaration of charsMoved←v3660 skipped */ (* (( (ptr) &var←c10788)+4)/* self←v3560 */ ) = formal←c068; (* (W3Pt) (( (ptr) &var←c10788)+5)/* block←v3588 */ ) = formal←c069; (* (( (ptr) &var←c10788)+8)/* start←v3616 */ ) = formal←c070; /* StreamMove: */ SOURCE(1052, 306) (void) (XR←MonitorEntry(* (( (ptr) &var←c10788)+4)/* self←v3560 */ )); SOURCE(1052, 306) (* (( (ptr) &var←c10788)+9)/* charsMoved←v3660 */ ) = 0; SOURCE(1192, 166) { word var←c065; var←c065 = (word) &var←c10788; (void) (word) XR←Enable(( ((word) (fPt) NoName←Q576) ), ( ((word) (fPt) NoName←Q636) ), var←c065); }; SOURCE(1052, 306) (void) (XR←MonitorExit(* (( (ptr) &var←c10788)+4)/* self←v3560 */ )); return((* (( (ptr) &var←c10788)+9)/* charsMoved←v3660 */ )); } static word NoName←Q576(formal←c062) word formal←c062; { register ptr gf←c061 = (ptr) &globalframe; SOURCE(1215, 30) { word data←v4112; SOURCE(1215, 30) data←v4112 = XR←Narrow((* (( (ptr) (* (( (ptr) formal←c062)+4) ))+5) ), (* (( (ptr) gf←c061)+4) )); SOURCE(1247, 111) if (((* (ptr) data←v4112 ) != 0)) { SOURCE(1275, 31) { word pd16; pd16 = (* (( (ptr) (* (( (ptr) gf←c061)+25)/* var←c10276 */ ))+30) ); (void) ( *( (fPt) ((* (ptr) pd16 ))))((* (ptr) data←v4112 ), (* (( (ptr) formal←c062)+8) ), pd16); }; SOURCE(1308, 50) { word pd17; pd17 = (* (( (ptr) (* (( (ptr) gf←c061)+25)/* var←c10276 */ ))+14) ); (* (( (ptr) formal←c062)+9) ) = (word) ( *( (fPt) ((* (ptr) pd17 ))))((* (ptr) data←v4112 ), (* (W3Pt) (( (ptr) formal←c062)+5) ), pd17); }; }; }; return(0); } static word ByteSequenceObjectFromStream←P300(stream←v3720) word stream←v3720; { register ptr gf←c10820 = (ptr) &globalframe; word var←c3764; word length←v4156; word data←v4184; /* ByteSequenceObjectFromStream: */ SOURCE(1367, 547) SOURCE(1462, 34) { word pd18; pd18 = (* (( (ptr) (* (( (ptr) gf←c10820)+25)/* var←c10276 */ ))+31) ); length←v4156 = (word) ( *( (fPt) ((* (ptr) pd18 ))))(stream←v3720, pd18); }; SOURCE(1498, 74) data←v4184 = XR←NewObject(12, (* (( (ptr) gf←c10820)+4) )); (* (ptr) data←v4184 ) = stream←v3720; (* (( (ptr) data←v4184)+2) ) = (* (( (ptr) gf←c10820)+10) ); SOURCE(1574, 22) { word pd19; pd19 = (* (( (ptr) (* (( (ptr) gf←c10820)+25)/* var←c10276 */ ))+30) ); (void) ( *( (fPt) ((* (ptr) pd19 ))))(stream←v3720, 0, pd19); }; SOURCE(1648, 100) { word var←c10436; { word var←c10468; { word pd20; pd20 = (* (( (ptr) (* (( (ptr) gf←c10820)+25)/* var←c10276 */ ))+92) ); var←c10468 = (word) ( *( (fPt) ((* (ptr) pd20 ))))(stream←v3720, 30, 0, pd20); }; { word pd21; pd21 = (* (( (ptr) (* (( (ptr) gf←c10820)+26)/* var←c10500 */ ))+38) ); var←c10436 = (word) ( *( (fPt) ((* (ptr) pd21 ))))(var←c10468, 0, pd21); }; }; { word pd22; pd22 = (* (( (ptr) (* (( (ptr) gf←c10820)+27)/* var←c10532 */ ))+5) ); (* (( (ptr) data←v4184)+1) ) = (word) ( *( (fPt) ((* (ptr) pd22 ))))((* (( (ptr) gf←c10820)+8) ), var←c10436, (* (( (ptr) gf←c10820)+9) ), 0, 0, pd22); }; }; SOURCE(1750, 164) { word pd23; pd23 = (* (( (ptr) (* (( (ptr) gf←c10820)+28)/* var←c10596 */ ))+4) ); return((word) ( *( (fPt) ((* (ptr) pd23 ))))(SGNCK(length←v4156), data←v4184, (word) (( (bPt) gf←c10820)+76)/* var←c10180 */ , (word) ( ( (bPt) gf←c10820)+84)/* var←c10212 */ , (word) (( (bPt) gf←c10820)+68)/* var←c10148 */ , (word) (( (bPt) gf←c10820)+60)/* var←c10116 */ , pd23) ); }; } static word FromStream←P360(stream←v3824, start←v3852, len←v3880, flatten←v3908) word stream←v3824; word start←v3852; word len←v3880; word flatten←v3908; { register ptr gf←c10852 = (ptr) &globalframe; word rope←v3952; /* FromStream: */ SOURCE(1920, 379) SOURCE(1920, 379) rope←v3952 = 0; SOURCE(2050, 249) if ((0 != flatten←v3908)) { SOURCE(2068, 26) { word pd24; pd24 = (* (( (ptr) (* (( (ptr) gf←c10852)+25)/* var←c10276 */ ))+30) ); (void) ( *( (fPt) ((* (ptr) pd24 ))))(stream←v3824, start←v3852, pd24); }; SOURCE(2096, 37) { word pd25; pd25 = (* (( (ptr) (* (( (ptr) gf←c10852)+25)/* var←c10276 */ ))+92) ); rope←v3952 = (word) ( *( (fPt) ((* (ptr) pd25 ))))(stream←v3824, len←v3880, 0, pd25); }; SOURCE(2135, 16) { word pd26; pd26 = (* (( (ptr) (* (( (ptr) gf←c10852)+25)/* var←c10276 */ ))+28) ); (void) ( *( (fPt) ((* (ptr) pd26 ))))(stream←v3824, 0, pd26); }; } else { SOURCE(2160, 141) { word byteSequenceObject←v4228; SOURCE(2162, 77) byteSequenceObject←v4228 = (word) ByteSequenceObjectFromStream←P300(stream←v3824); SOURCE(2241, 58) { word pd27; pd27 = (* (( (ptr) (* (( (ptr) gf←c10852)+28)/* var←c10596 */ ))+6) ); rope←v3952 = (word) ( *( (fPt) ((* (ptr) pd27 ))))(byteSequenceObject←v4228, 0, pd27); }; }; }; SOURCE(1920, 379) return(rope←v3952); } static void NoName←Q636(formal←c056, formal←c200000, formal←c200001, formal←c200002, formal←c200003) word formal←c056; word formal←c200000; word formal←c200001; word formal←c200002; word formal←c200003; { if ((formal←c200001 == XR←Unwind)) { (void) (XR←MonitorExit(* (( (ptr) formal←c200000)+4) )); }; (* (ptr) formal←c056 ) = 0; (* (( (ptr) formal←c056)+1) ) = 0; return; } /* file: RopeFileStreamImpl, module: RopeFileStreamImpl, compiled at: February 21, 1992 11:09:26 pm PST */ extern void XR←install←RopeFileStreamImpl() { NoName←Q516(); } extern void XR←run←RopeFileStreamImpl() { XR←Start(&globalframe); }