/* Generated with C2C (Cedar To C)*/ /* Copyright (C) 1992 by Xerox Corporation. All rights reserved. */ /* time: December 9, 1992 4:41:22 pm PST */ /* C2C version: October 7, 1992 (native) */ /* ref-counting: off */ /* file: RopeOtherImpl, module: RopeOtherImpl */ /* switches: bcfhklnouw */ #include #include static char versionStamp[] = "@(#)mob_version [2700058451,2909426187] RopeOtherImpl"; typedef unsigned word, *ptr; typedef unsigned char byte, *bPt; typedef unsigned short half, *hPt; typedef word (*fPt)(); #define SOURCE(p, l) /* source p, l */ #define MAX(cast, x, y) ( ( cast x) > ( cast y) ? (x) : (y) ) #define BCK(idx, lim) ( ((unsigned) idx) >= ((unsigned) lim) ? (XR_RaiseBoundsFault()) : (idx) ) #define SGNCK(i) ((int) (word) (i) < 0 ? XR_RaiseArithmeticFault(): i ) static void NoName_Q2100(); static void RopeOtherImpl_P0(); static word ReserveChars_P60(); static word Append_P120(); static word AppendChar_P180(); static word AppendRope_P240(); static word New_P300(); static word ObtainScratch_P360(); static void ReleaseScratch_P420(); static word ObtainInternal_P480(); static void ReleaseInternal_P540(); static word CreatePool_P600(); static word FromRefText_P660(); static word FromRope_P720(); static void Init_P780(); static struct {unsigned f; char r[16];} string1 = {851984, "\257\300\240\357\237\123\300\255\152\122\013\100\214\000\000"}; static struct {unsigned f; char r[12];} string2 = {589833, "\011\000\004\100\300\040\000\034\001\000\000"}; static struct {unsigned f; char r[44];} string3 = {2752556, "\260\007\006\154\145\156\147\164\150\210\241\000\200\177\377\005\004\164\145\170\164\254\206\012\011\155\141\170\114\145\156\147\164\150\210\241\000\200\177\377\243\261\000"}; static struct {unsigned f; char r[16];} string4 = {851984, "\257\300\240\357\237\123\300\255\152\122\013\100\200\000\000"}; static struct {unsigned f; char r[4];} string5 = {196611, "\004A\360"}; static struct {unsigned f; char r[16];} string6 = {851984, "\257\300\122\171\164\025\300\243\020\252\320\100\164\000\000"}; static struct {unsigned f; char r[12];} string7 = {1382377044, "extExtras"}; static struct {unsigned f; char r[16];} string8 = {851984, "\257\300\353\320\266\116\300\006\152\040\366\100\150\000\000"}; static struct {unsigned f; char r[16];} string9 = {851984, "\257\300\363\223\326\161\300\017\164\046\072\100\150\000\000"}; static struct {unsigned f; char r[16];} string10 = {851984, "\257\300\277\374\326\303\300\302\136\022\175\100\150\000\000"}; static struct {unsigned f; char r[16];} string11 = {851984, "\257\300\332\223\177\020\300\304\076\102\260\100\164\000\000"}; static struct {unsigned f; char r[24];} string12 = {1310744, "\211\010\007\120\157\157\154\117\142\152\300\353\320\266\116\300\006\152\040\366\000\000\000"}; static struct {unsigned f; char r[16];} string13 = {851984, "\257\300\070\313\200\317\300\150\067\321\062\100\150\000\000"}; static struct { word f0[14]; word f14; word f15; word f16; word f17; word f18; word f19; word f20; word f21; word f22; word f23; word f24; word f25; word f26; word f27; word f28; word f29; word f30; word f31; word f32; word f33; word f34; word f35; word f36; word f37; word f38; word f39; word f40; word f41[6]; } globalframe = { {0}, (word) Init_P780, 0, (word) FromRope_P720, 0, (word) FromRefText_P660, 0, (word) CreatePool_P600, 0, (word) ReleaseInternal_P540, 0, (word) ObtainInternal_P480, 0, (word) ReleaseScratch_P420, 0, (word) ObtainScratch_P360, 0, (word) New_P300, 0, (word) AppendRope_P240, 0, (word) AppendChar_P180, 0, (word) Append_P120, 0, (word) ReserveChars_P60, 0, (word) RopeOtherImpl_P0, {0} }; static void NoName_Q2100() { register ptr gf_c0115 = (ptr) &globalframe; word var_c13304; (* (( (ptr) gf_c0115)+9) ) = (word) XR_GetTypeIndex((word) &string1, 0, (word) &string2); (* (( (ptr) gf_c0115)+12) ) = (word) XR_GetTypeIndexS((word) (&string3)); (void) XR_DeclareGlobalFrame((word) "RopeOtherImpl", &globalframe, (word) XR_GetTypeIndex((word) &string4, 0, (word) &string5) , (word) (( (bPt) gf_c0115)+160)/* var_c12312 */ ); var_c13304 = (word) XR_ImportInterface((word) "Checksum", (word) XR_GetTypeIndexS((word) (&string6)), 3); (* (( (ptr) gf_c0115)+44)/* var_c13080 */ ) = var_c13304; (void) XR_ImportProcS(var_c13304, 68157444); var_c13304 = (word) XR_ImportInterface((word) &string7, (word) XR_GetTypeIndexS((word) (&string8)), 16); (* (( (ptr) gf_c0115)+43)/* var_c12696 */ ) = var_c13304; (void) XR_ImportProcS(var_c13304, 528130); (void) XR_ImportProcS(var_c13304, 67374593); var_c13304 = (word) XR_ImportInterface((word) "Rope", (word) XR_GetTypeIndexS((word) (&string9)), 43); (* (( (ptr) gf_c0115)+42)/* var_c12472 */ ) = var_c13304; (void) XR_ImportProcS(var_c13304, 67634434); (void) XR_ImportProcS(var_c13304, 68166660); (void) XR_ImportProcS(var_c13304, 67373825); var_c13304 = (word) XR_ImportInterface((word) "SafeStorage", (word) XR_GetTypeIndexS((word) (&string10)), 27); (* (( (ptr) gf_c0115)+45)/* var_c13272 */ ) = var_c13304; (void) XR_ImportProcS(var_c13304, 67109376); var_c13304 = (word) XR_ExportInterface((word) "RefText", (word) XR_GetTypeIndexS((word) (&string11)), 26); (* (( (ptr) gf_c0115)+46)/* var_c13336 */ ) = var_c13304; (void) XR_ExportProcS(var_c13304, (word) (( (bPt) gf_c0115)+120)/* var_c12152 */ , 67371009); (void) XR_ExportVar(var_c13304, 1, (word) (( (bPt) gf_c0115)+52)/* var_c11864 */ ); (void) XR_ExportProcS(var_c13304, (word) (( (bPt) gf_c0115)+112)/* var_c12120 */ , 67371521); (void) XR_ExportProcS(var_c13304, (word) (( (bPt) gf_c0115)+104)/* var_c12088 */ , 262913); (void) XR_ExportProcS(var_c13304, (word) (( (bPt) gf_c0115)+144)/* var_c12248 */ , 68158468); (void) XR_ExportProcS(var_c13304, (word) (( (bPt) gf_c0115)+128)/* var_c12184 */ , 68158980); (void) XR_ExportProcS(var_c13304, (word) (( (bPt) gf_c0115)+136)/* var_c12216 */ , 67634946); (void) XR_ExportProcS(var_c13304, (word) (( (bPt) gf_c0115)+152)/* var_c12280 */ , 67635458); var_c13304 = (word) XR_ExportInterface((word) &string7, (word) XR_GetTypeIndexS((word) (&string8)), 16); (* (( (ptr) gf_c0115)+46)/* var_c13336 */ ) = var_c13304; (void) XR_ExportProcS(var_c13304, (word) (( (bPt) gf_c0115)+80)/* var_c11992 */ , 67635202); (void) XR_ExportType((word) "PoolObj", (word) XR_GetTypeIndexS((word) (&string12)), (word) XR_GetTypeIndex((word) &string1, 0, (word) &string2) ); (void) XR_ExportVar(var_c13304, 10, (word) (( (bPt) gf_c0115)+20)/* pool16_v3448 */ ); (void) XR_ExportVar(var_c13304, 11, (word) (( (bPt) gf_c0115)+24)/* pool100_v3476 */ ); (void) XR_ExportVar(var_c13304, 12, (word) (( (bPt) gf_c0115)+28)/* pool512_v3504 */ ); (void) XR_ExportVar(var_c13304, 13, (word) (( (bPt) gf_c0115)+32)/* pool8192_v3532 */ ); (void) XR_ExportProcS(var_c13304, (word) (( (bPt) gf_c0115)+96)/* var_c12056 */ , 67374593); (void) XR_ExportProcS(var_c13304, (word) (( (bPt) gf_c0115)+88)/* var_c12024 */ , 528130); var_c13304 = (word) XR_ExportInterface((word) "RopeHash", (word) XR_GetTypeIndexS((word) (&string13)), 2); (* (( (ptr) gf_c0115)+46)/* var_c13336 */ ) = var_c13304; (void) XR_ExportProcS(var_c13304, (word) (( (bPt) gf_c0115)+72)/* var_c11960 */ , 67633154); (void) XR_ExportProcS(var_c13304, (word) (( (bPt) gf_c0115)+64)/* var_c11928 */ , 68419845); } static void RopeOtherImpl_P0(formal_c029, formal_c028) word formal_c029; word formal_c028; { /* RopeOtherImpl: */ SOURCE(307, 7925) SOURCE(8226, 6) (void) Init_P780(); } static word ReserveChars_P60(to_v3840, nChars_v3868) word to_v3840; word nChars_v3868; { register ptr gf_c13368 = (ptr) &globalframe; word var_c3924; word newMinLength_v5676; /* ReserveChars: */ SOURCE(711, 635) SOURCE(794, 48) newMinLength_v5676 = ((* (hPt) to_v3840 ) + nChars_v3868); SOURCE(876, 48) if (( (int)newMinLength_v5676 <= (int)(* (( (hPt) to_v3840)+1) ))) { SOURCE(913, 11) return(to_v3840); }; SOURCE(926, 91) if (( (int)newMinLength_v5676 > (int)32767)) { goto then014;}; if (((* (hPt) to_v3840 ) > (* (( (hPt) to_v3840)+1) ))) { then014: ; SOURCE(992, 25) (void) XR_RaiseBoundsFault(); }; SOURCE(1019, 329) { word expandBy_v5720; word newLength_v5748; word newText_v5776; SOURCE(1021, 51) { word x15; word x16; expandBy_v5720 = (x15 = (* (( (hPt) to_v3840)+1) ), x16 = MAX( (unsigned) , 16, x15), MAX( (unsigned) , x16, nChars_v3868)); }; SOURCE(1074, 111) { word tc17; if ((expandBy_v5720 > (32767 - (* (( (hPt) to_v3840)+1) )))) { tc17 = (word) 32767; } else { tc17 = (word) (expandBy_v5720 + (* (( (hPt) to_v3840)+1) )); }; newLength_v5748 = tc17; }; SOURCE(1187, 53) { word var_c12344; word var_c12376; var_c12344 = ((word) ((word) (newLength_v5748 + 3) >> 2) << 2); { word pd18; pd18 = (* (ptr) (* (( (ptr) gf_c13368)+4)/* untracedZone_v3420 */ ) ); var_c12376 = (word) ( *( (fPt) ((* (ptr) pd18 ))))((* (( (ptr) gf_c13368)+4)/* untracedZone_v3420 */ ), (4 + var_c12344), (* ( ( (ptr) gf_c13368)+12) ), pd18); }; (* (( (hPt) var_c12376)+1) ) = newLength_v5748; newText_v5776 = var_c12376; }; SOURCE(1242, 58) { register word i_v5832 = 0; register word noName_c12408; noName_c12408 = (* (hPt) to_v3840 ); if ((i_v5832 >= noName_c12408)) { goto lab_L100000; }; lab_L100003: ; SOURCE(1274, 26) { word limit19; word limit20; (* ((( (bPt) newText_v5776)+4)+( limit19 = (word) (* (( (hPt) newText_v5776)+1) ), BCK(i_v5832, limit19) )) ) = (word) (* ((( (bPt) to_v3840)+4)+( limit20 = (word) (* (( (hPt) to_v3840)+1) ), BCK(i_v5832, limit20) )) ); }; i_v5832 = (i_v5832 + 1); if ((i_v5832 < noName_c12408)) { goto lab_L100003; }; lab_L100000: ; }; SOURCE(1302, 26) (* (hPt) newText_v5776 ) = (* (hPt) to_v3840 ); SOURCE(1330, 16) return(newText_v5776); }; } static word Append_P120(to_v3996, from_v4024, start_v4052, len_v4080) word to_v3996; word from_v4024; word start_v4052; word len_v4080; { word var_c4148; /* Append: */ SOURCE(1354, 176) SOURCE(1479, 51) return((word) AppendRope_P240(to_v3996, from_v4024, start_v4052, len_v4080)); } static word AppendChar_P180(to_v4220, from_v4248) word to_v4220; word from_v4248; { word var_c4304; /* AppendChar: */ SOURCE(1536, 231) SOURCE(1610, 92) if (((* (hPt) to_v4220 ) >= (* (( (hPt) to_v4220)+1) ))) { SOURCE(1678, 24) to_v4220 = (word) ReserveChars_P60(to_v4220, 1); }; SOURCE(1707, 20) { word idx21; word limit22; (* ((( (bPt) to_v4220)+4)+( idx21 = (word) (* (hPt) to_v4220 ), limit22 = (word) (* (( (hPt) to_v4220)+1) ), BCK(idx21, limit22) )) ) = from_v4248; }; SOURCE(1729, 25) { word idx23; (* (hPt) to_v4220 ) = ( idx23 = (word) ((* (hPt) to_v4220 ) + 1), BCK(idx23, 32768) ); }; SOURCE(1756, 11) return(to_v4220); } static word AppendRope_P240(to_v4376, from_v4404, start_v4432, len_v4460) word to_v4376; word from_v4404; word start_v4432; word len_v4460; { register ptr gf_c13400 = (ptr) &globalframe; word var_c4516; word rem_v5876; /* AppendRope: */ SOURCE(1773, 328) SOURCE(1875, 34) { word pd24; pd24 = (* (( (ptr) (* (( (ptr) gf_c13400)+42)/* var_c12472 */ ))+15) ); rem_v5876 = ((word) ( *( (fPt) ((* (ptr) pd24 ))))(from_v4404, pd24) - start_v4432); }; SOURCE(1911, 54) if (( (int)start_v4432 < (int)0) || ( (int)rem_v5876 < (int)0)) { SOURCE(1940, 25) (void) XR_RaiseBoundsFault(); }; SOURCE(1967, 27) if (( (int)len_v4460 < (int)rem_v5876)) { SOURCE(1985, 9) rem_v5876 = len_v4460; }; SOURCE(1996, 89) if (( (int)rem_v5876 > (int)0)) { SOURCE(2014, 26) to_v4376 = (word) ReserveChars_P60(to_v4376, BCK(rem_v5876, 32768)); SOURCE(2042, 43) { word var_c12504; word pd25; pd25 = (* (( (ptr) (* (( (ptr) gf_c13400)+42)/* var_c12472 */ ))+40) ); var_c12504 = (word) ( *( (fPt) ((* (ptr) pd25 ))))(to_v4376, from_v4404, start_v4432, rem_v5876, pd25); }; }; SOURCE(2090, 11) return(to_v4376); } static word New_P300(nChars_v4588) word nChars_v4588; { register ptr gf_c13432 = (ptr) &globalframe; word var_c4632; word text_v5920 = 0; word maxLength_v5948; /* New: */ SOURCE(2107, 273) SOURCE(2183, 67) maxLength_v5948 = ((word) ((word) (((word) nChars_v4588 << 3) + 31) >> 5) << 2); SOURCE(2252, 55) if ((maxLength_v5948 > 32767)) { SOURCE(2284, 23) maxLength_v5948 = 32767; }; SOURCE(2309, 40) { word var_c12536; word var_c12568; word var_c12600; var_c12536 = BCK(maxLength_v5948, 32768); var_c12568 = ((word) ((word) (var_c12536 + 3) >> 2) << 2); { word pd26; pd26 = (* (ptr) (* (( (ptr) gf_c13432)+4)/* untracedZone_v3420 */ ) ); var_c12600 = (word) ( *( (fPt) ((* (ptr) pd26 ))))((* (( (ptr) gf_c13432)+4)/* untracedZone_v3420 */ ), (4 + var_c12568), (* ( ( (ptr) gf_c13432)+12) ), pd26); }; (* (( (hPt) var_c12600)+1) ) = var_c12536; text_v5920 = var_c12600; }; SOURCE(2351, 15) (* (hPt) text_v5920 ) = 0; SOURCE(2368, 12) return(text_v5920); } static word ObtainScratch_P360(nChars_v4764) word nChars_v4764; { register ptr gf_c13464 = (ptr) &globalframe; word var_c4808; /* ObtainScratch: */ SOURCE(2439, 309) SOURCE(2524, 224) if ((nChars_v4764 > 512)) { SOURCE(2544, 95) if ((nChars_v4764 > 8192)) { SOURCE(2565, 26) return((word) New_P300(nChars_v4764)); } else { SOURCE(2591, 48) { word pd27; pd27 = (* (( (ptr) (* (( (ptr) gf_c13464)+43)/* var_c12696 */ ))+18) ); return((word) ( *( (fPt) ((* (ptr) pd27 ))))((* (ptr) ((* (( (ptr) (* (( (ptr) gf_c13464)+43)/* var_c12696 */ ))+17) )) ), pd27) ); }; }; } else { SOURCE(2639, 109) if ((nChars_v4764 > 100)) { SOURCE(2659, 47) { word pd28; pd28 = (* (( (ptr) (* (( (ptr) gf_c13464)+43)/* var_c12696 */ ))+18) ); return((word) ( *( (fPt) ((* (ptr) pd28 ))))((* (ptr) ((* (( (ptr) (* (( (ptr) gf_c13464)+43)/* var_c12696 */ ))+16) )) ), pd28) ); }; } else { SOURCE(2706, 42) { word pd29; pd29 = (* (( (ptr) (* (( (ptr) gf_c13464)+43)/* var_c12696 */ ))+18) ); return((word) ( *( (fPt) ((* (ptr) pd29 ))))((* (ptr) ((* (( (ptr) (* (( (ptr) gf_c13464)+43)/* var_c12696 */ ))+15) )) ), pd29) ); }; }; }; } static void ReleaseScratch_P420(t_v4880) word t_v4880; { register ptr gf_c13496 = (ptr) &globalframe; /* ReleaseScratch: */ SOURCE(2752, 240) SOURCE(2798, 194) { word var_c12792; var_c12792 = (* (( (hPt) t_v4880)+1) ); switch (var_c12792) { case 16: SOURCE(2828, 33) { word t_v11720; t_v11720 = t_v4880; { word pd30; pd30 = (* (( (ptr) (* (( (ptr) gf_c13496)+43)/* var_c12696 */ ))+19) ); (void) ( *( (fPt) ((* (ptr) pd30 ))))((* (ptr) (* (( (ptr) (* (( (ptr) gf_c13496)+43)/* var_c12696 */ ))+14) ) ), t_v11720, pd30) ; }; }; break; case 100: SOURCE(2870, 34) { word t_v11672; t_v11672 = t_v4880; { word pd31; pd31 = (* (( (ptr) (* (( (ptr) gf_c13496)+43)/* var_c12696 */ ))+19) ); (void) ( *( (fPt) ((* (ptr) pd31 ))))((* (ptr) (* (( (ptr) (* (( (ptr) gf_c13496)+43)/* var_c12696 */ ))+15) ) ), t_v11672, pd31) ; }; }; break; case 512: SOURCE(2913, 34) { word t_v11624; t_v11624 = t_v4880; { word pd32; pd32 = (* (( (ptr) (* (( (ptr) gf_c13496)+43)/* var_c12696 */ ))+19) ); (void) ( *( (fPt) ((* (ptr) pd32 ))))((* (ptr) (* (( (ptr) (* (( (ptr) gf_c13496)+43)/* var_c12696 */ ))+16) ) ), t_v11624, pd32) ; }; }; break; case 8192: SOURCE(2957, 35) { word t_v11576; t_v11576 = t_v4880; { word pd33; pd33 = (* (( (ptr) (* (( (ptr) gf_c13496)+43)/* var_c12696 */ ))+19) ); (void) ( *( (fPt) ((* (ptr) pd33 ))))((* (ptr) (* (( (ptr) (* (( (ptr) gf_c13496)+43)/* var_c12696 */ ))+17) ) ), t_v11576, pd33) ; }; }; break; }; }; } static word ObtainInternal_P480(pool_v4952) word pool_v4952; { register ptr gf_c13528 = (ptr) &globalframe; word var_c12856; word var_c12888; word thisText_v4996; /* ObtainInternal: */ SOURCE(3088, 333) (void) (XR_MonitorEntry(pool_v4952)); SOURCE(3088, 333) thisText_v4996 = 0; SOURCE(3168, 253) if (( (int)(* (( (ptr) pool_v4952)+5) ) == (int) (word) -1)) { SOURCE(3200, 53) { word var_c12824; { word idx34; var_c12824 = (word) New_P300(( idx34 = (* (( (ptr) pool_v4952)+4) ), BCK(idx34, 32768) )); }; (void) (XR_MonitorExit(pool_v4952)); return(var_c12824); }; } else { SOURCE(3255, 41) { word idx35; word limit36; thisText_v4996 = (* ((( (ptr) pool_v4952)+7)+( idx35 = (* (( (ptr) pool_v4952)+5) ), limit36 = (* (( (ptr) pool_v4952)+6) ), BCK(idx35, limit36) )) ); }; SOURCE(3298, 42) (* (( (ptr) pool_v4952)+5) ) = ((* (( (ptr) pool_v4952)+5) ) - 1); SOURCE(3342, 79) if (((* (hPt) thisText_v4996 ) != 0)) { SOURCE(3370, 51) var_c12856 = (word) (( (bPt) gf_c13528)+52)/* var_c11864 */ ; var_c12888 = 0; (void) (XR_MonitorExit(pool_v4952)); goto lab_L100004; }; }; SOURCE(3088, 333) (void) (XR_MonitorExit(pool_v4952)); return(thisText_v4996); /* c2c skipped dead code */ lab_L100004: ; SOURCE(3370, 51) { word var_c076; var_c076 = var_c12888; (void) XR_RaiseError(var_c12856, (word) &var_c076); }; } static void ReleaseInternal_P540(pool_v5068, t_v5096) word pool_v5068; word t_v5096; { /* ReleaseInternal: */ SOURCE(3430, 255) (void) (XR_MonitorEntry(pool_v5068)); SOURCE(3495, 22) if ((t_v5096 == 0)) { SOURCE(3511, 6) (void) (XR_MonitorExit(pool_v5068)); return; }; SOURCE(3519, 12) (* (hPt) t_v5096 ) = 0; SOURCE(3533, 152) if (( (int)(* (( (ptr) pool_v5068)+5) ) == (int)((* (( (ptr) pool_v5068)+6) ) - 1))) { SOURCE(3576, 28) (void) (XR_MonitorExit(pool_v5068)); return; } else { SOURCE(3606, 43) (* (( (ptr) pool_v5068)+5) ) = ((* (( (ptr) pool_v5068)+5) ) + 1); SOURCE(3651, 34) { word idx37; word limit38; (* ((( (ptr) pool_v5068)+7)+( idx37 = (* (( (ptr) pool_v5068)+5) ), limit38 = (* (( (ptr) pool_v5068)+6) ), BCK(idx37, limit38) )) ) = t_v5096; }; }; SOURCE(3430, 255) (void) (XR_MonitorExit(pool_v5068)); return; } static word CreatePool_P600(charsPerText_v5168, textsInPool_v5196) word charsPerText_v5168; word textsInPool_v5196; { register ptr gf_c13560 = (ptr) &globalframe; word pool_v5240; /* CreatePool: */ SOURCE(3694, 262) SOURCE(3694, 262) pool_v5240 = 0; SOURCE(3783, 32) { word var_c12920; word var_c12952; word var_c12984; var_c12920 = BCK(textsInPool_v5196, 67108863); var_c12952 = ((word) var_c12920 << 2); var_c12984 = XR_NewObject((28 + var_c12952), (* (( (ptr) gf_c13560)+9) )); (* (( (ptr) var_c12984)+6) ) = var_c12920; (* (( (ptr) var_c12984)+5) ) = (word) -1; pool_v5240 = var_c12984; }; SOURCE(3817, 32) (* (( (ptr) pool_v5240)+4) ) = SGNCK(charsPerText_v5168); SOURCE(3851, 36) (* (( (ptr) pool_v5240)+5) ) = (textsInPool_v5196 - 1); SOURCE(3889, 67) { register word i_v6004 = 0; register word noName_c13016; noName_c13016 = textsInPool_v5196; if ((i_v6004 >= noName_c13016)) { goto lab_L100006; }; lab_L100009: ; SOURCE(3923, 33) { word var_c13048; var_c13048 = (word) New_P300(BCK(charsPerText_v5168, 32768)); { word limit39; (* ((( (ptr) pool_v5240)+7)+( limit39 = (* (( (ptr) pool_v5240)+6) ), BCK(i_v6004, limit39) )) ) = var_c13048; }; }; i_v6004 = (i_v6004 + 1); if ((i_v6004 < noName_c13016)) { goto lab_L100009; }; lab_L100006: ; }; SOURCE(3694, 262) return(pool_v5240); } static word FromRefText_P660(text_v5336, seed_v5364) word text_v5336; word seed_v5364; { register ptr gf_c13592 = (ptr) &globalframe; word hash_v5408; word len_v6048; word nLeft_v6076; word nWhole_v6104; word p_v6132; /* FromRefText: */ SOURCE(6402, 625) SOURCE(6506, 28) len_v6048 = (* (hPt) text_v5336 ); SOURCE(6536, 37) nLeft_v6076 = (len_v6048 & 1); SOURCE(6575, 25) nWhole_v6104 = (len_v6048 - nLeft_v6076); SOURCE(6602, 57) p_v6132 = (text_v5336 + 4); SOURCE(6661, 11) hash_v5408 = seed_v5364; SOURCE(6674, 102) if ((nWhole_v6104 >= 2)) { SOURCE(6711, 65) { word pd40; pd40 = (* (( (ptr) (* (( (ptr) gf_c13592)+44)/* var_c13080 */ ))+4) ); hash_v5408 = (word) ( *( (fPt) ((* (ptr) pd40 ))))(BCK(hash_v5408, 65536), ((word) nWhole_v6104 >> 1), p_v6132, 0, pd40) ; }; }; SOURCE(6781, 246) if ((nLeft_v6076 != 0)) { SOURCE(6807, 222) { word leftovers_v6200 = 0; SOURCE(6847, 79) { register word j_v6244 = 0; if ((j_v6244 >= nLeft_v6076)) { goto lab_L100010; }; lab_L100013: ; SOURCE(6875, 51) { word var_c13112; { word pd41; pd41 = (* (( (ptr) (* (( (ptr) gf_c13592)+42)/* var_c12472 */ ))+9) ); var_c13112 = (word) ( *( (fPt) ((* (ptr) pd41 ))))(text_v5336, SGNCK((nWhole_v6104 + j_v6244)), pd41); }; (* (( (bPt) &leftovers_v6200)+(BCK(j_v6244, 2) + 2)) ) = var_c13112; }; j_v6244 = (j_v6244 + 1); if ((j_v6244 < nLeft_v6076)) { goto lab_L100013; }; lab_L100010: ; }; SOURCE(6937, 90) { word pd42; pd42 = (* (( (ptr) (* (( (ptr) gf_c13592)+44)/* var_c13080 */ ))+4) ); hash_v5408 = (word) ( *( (fPt) ((* (ptr) pd42 ))))(BCK(hash_v5408, 65536), 1, (word) &leftovers_v6200, 0, pd42); }; }; }; SOURCE(6402, 625) return(hash_v5408); } static word FromRope_P720(rope_v5468, case_v5496, start_v5524, len_v5552, seed_v5580) word rope_v5468; word case_v5496; word start_v5524; word len_v5552; word seed_v5580; { register ptr gf_c13624 = (ptr) &globalframe; word hash_v5624; word rem_v6288; /* FromRope: */ SOURCE(7049, 867) SOURCE(7171, 74) { word x_v11816; { word pd43; pd43 = (* (( (ptr) (* (( (ptr) gf_c13624)+42)/* var_c12472 */ ))+15) ); x_v11816 = ((word) ( *( (fPt) ((* (ptr) pd43 ))))(rope_v5468, pd43) - start_v5524); }; rem_v6288 = SGNCK(x_v11816); }; SOURCE(7247, 27) if (( (int)rem_v6288 < (int)len_v5552)) { SOURCE(7265, 9) len_v5552 = rem_v6288; }; SOURCE(7276, 124) if ( ( ( (0 != case_v5496) ? ( (int)start_v5524 == (int)0) : 0 ) ? ( (int)rem_v6288 == (int)len_v5552) : 0 ) ) { SOURCE(7317, 83) { word var_c13176; var_c13176 = rope_v5468; if ((var_c13176 == 0)) { goto lab_L100015; }; if (((*(( short *)var_c13176 + 1)<0) == 0)) { { word text_v6332; text_v6332 = var_c13176; SOURCE(7359, 41) return((word) FromRefText_P660(text_v6332, seed_v5580)); }; } else { lab_L100015: ; }; }; }; SOURCE(7411, 507) { word buf_v6376; word p_v6404; word bytes_v6432 = 0; SOURCE(7413, 38) buf_v6376 = (word) ObtainScratch_P360(256); SOURCE(7453, 61) p_v6404 = (buf_v6376 + 4); SOURCE(7532, 11) hash_v5624 = seed_v5580; SOURCE(7545, 326) lab_L100018: ; if (( (int)len_v5552 > (int)0)) { } else { goto lab_L100016; }; SOURCE(7562, 14) (* (hPt) buf_v6376 ) = 0; SOURCE(7578, 47) { word pd44; pd44 = (* (( (ptr) (* (( (ptr) gf_c13624)+42)/* var_c12472 */ ))+40) ); bytes_v6432 = (word) ( *( (fPt) ((* (ptr) pd44 ))))(buf_v6376, rope_v5468, start_v5524, len_v5552, pd44); }; SOURCE(7627, 162) if ((0 == case_v5496)) { SOURCE(7644, 145) { register word i_v6512 = 0; register word noName_c13240; noName_c13240 = bytes_v6432; if ((i_v6512 >= noName_c13240)) { goto lab_L100019; }; lab_L100022: ; { word c_v6556; SOURCE(7672, 38) { word pd45; pd45 = (* (( (ptr) (* (( (ptr) gf_c13624)+42)/* var_c12472 */ ))+9) ); c_v6556 = (word) ( *( (fPt) ((* (ptr) pd45 ))))(buf_v6376, i_v6512, pd45); }; SOURCE(7712, 77) if ( ( (c_v6556 <= 90) ? (c_v6556 >= 65) : 0 ) ) { SOURCE(7740, 49) { word c_v11768; c_v11768 = BCK((c_v6556 + 32), 256); (* ((( (bPt) buf_v6376)+4)+i_v6512) ) = c_v11768; }; }; }; i_v6512 = (i_v6512 + 1); if ((i_v6512 < noName_c13240)) { goto lab_L100022; }; lab_L100019: ; }; }; SOURCE(7800, 29) hash_v5624 = (word) FromRefText_P660(buf_v6376, hash_v5624); SOURCE(7831, 21) start_v5524 = (start_v5524 + bytes_v6432); SOURCE(7854, 17) len_v5552 = (len_v5552 - bytes_v6432); goto lab_L100018; lab_L100016: ; SOURCE(7882, 19) (void) ReleaseScratch_P420(buf_v6376); SOURCE(7903, 13) return(hash_v5624); }; } static void Init_P780() { register ptr gf_c13656 = (ptr) &globalframe; /* Init: */ SOURCE(8030, 190) SOURCE(8053, 45) SOURCE(8054, 44) { word pd46; pd46 = (* (( (ptr) (* (( (ptr) gf_c13656)+45)/* var_c13272 */ ))+6) ); (* (( (ptr) gf_c13656)+4)/* untracedZone_v3420 */ ) = (word) ( *( (fPt) ((* (ptr) pd46 ))))(pd46); }; SOURCE(8101, 27) (* (( (ptr) gf_c13656)+5)/* pool16_v3448 */ ) = (word) CreatePool_P600(16, 10); SOURCE(8130, 28) (* (( (ptr) gf_c13656)+6)/* pool100_v3476 */ ) = (word) CreatePool_P600(100, 4); SOURCE(8160, 28) (* (( (ptr) gf_c13656)+7)/* pool512_v3504 */ ) = (word) CreatePool_P600(512, 4); SOURCE(8190, 30) (* (( (ptr) gf_c13656)+8)/* pool8192_v3532 */ ) = (word) CreatePool_P600(8192, 4); } /* file: RopeOtherImpl, module: RopeOtherImpl, compiled at: December 9, 1992 4:41:21 pm PST */ extern void XR_install_RopeOtherImpl() { NoName_Q2100(); } extern void XR_run_RopeOtherImpl() { XR_Start(&globalframe); }