/* Generated with C2C (Cedar To C)*/ /* Copyright (C) 1993 by Xerox Corporation. All rights reserved. */ /* time: January 27, 1993 4:57:23 pm PST */ /* C2C version: October 7, 1992 (native) */ /* ref-counting: off */ /* file: RopeFileImpl, module: RopeFileImpl */ /* switches: bcfhklnouw */ #include #include #define XRM_BITRSHIFT(x, y) ((word)(x) >> (word)(y)) #define XRM_BITLSHIFT(x, y) ((word)(x) << (word)(y)) static char versionStamp[] = "@(#)mob_version [444809019,3469543428] RopeFileImpl"; typedef unsigned word, *ptr; typedef unsigned char byte, *bPt; typedef unsigned short half, *hPt; typedef word (*fPt)(); typedef struct {word f0, f1;} W2; typedef W2 *W2Pt; typedef struct {word f0, f1, f2;} W3; typedef struct {word f0, f1, f2, f3, f4, f5, f6, f7;} W8; typedef struct {W8 f; W2 r;} W10; #define SOURCE(p, l) /* source p, l */ #define SGNCK(i) ((int) (word) (i) < 0 ? XR_RaiseArithmeticFault(): i ) #define MAX(cast, x, y) ( ( cast x) > ( cast y) ? (x) : (y) ) #define BCK(idx, lim) ( ((unsigned) idx) >= ((unsigned) lim) ? (XR_RaiseBoundsFault()) : (idx) ) #define IOP2(op, x, y) ( (word) ((x) op (y)) ) #define MIN(cast, x, y) ( ( cast x) < ( cast y) ? (x) : (y) ) static void NoName_Q3288(); static void RopeFileImpl_P0(); static word NewBuffer_P60(); static word Flattery_P120(); static word CreateByteSequenceObject_P180(); static word FromByteSequenceObject_P240(); static void Note_P300(); static void Touch_P360(); static void Remove_P420(); static word FindOld_P480(); static word GetDeactivationTargets_P540(); static word GetObjectList_P600(); static void LimitActive_P660(); static word RopeFileFetch_P720(); static word RopeFileMap_P780(); static word NoName_Q3348(); static word RopeFileMove_P840(); static word ObtainBuffer_P900(); static word FindBuffer_P960(); static void ReleaseBuffer_P1020(); static void Finalizer_P1080(); static void KillBuffers_P1140(); static void Deactivate_P1200(); static void RopeFilesCommand_P1260(); static void P_P3012(); static void NoName_Q3408(); static struct {unsigned f; char r[80];} string1 = {5111888, "\260\006\005\146\151\162\163\164\216\211\022\021\106\151\156\141\154\151\172\141\142\154\145\117\142\152\145\143\164\300\250\013\333\033\300\120\151\334\170\005\004\162\145\163\164\214\216\211\022\021\106\151\156\141\154\151\172\141\142\154\145\117\142\152\145\143\164\300\250\013\333\033\300\120\151\334\170\261\000"}; static struct {unsigned f; char r[4];} string2 = {131074, "\004\003\000"}; static struct {unsigned f; char r[16];} string3 = {851984, "\257\300\032\203\077\073\300\316\315\010\004\100\214\000\000"}; static struct {unsigned f; char r[4];} string4 = {196611, "\004@A"}; static struct {unsigned f; char r[16];} string5 = {851984, "\257\300\363\223\326\161\300\017\164\046\072\104\304\000\000"}; static struct {unsigned f; char r[24];} string6 = {1376277, "\007\000\001\002\007\020\001\002\000\007\036\002\004\003\002\004\014\016\015\003\001\000\000"}; static struct {unsigned f; char r[16];} string7 = {917520, "\216\257\300\363\223\326\161\300\017\164\046\072\104\350\000"}; static struct {unsigned f; char r[4];} string8 = {65537, "\001\000\000"}; static struct {unsigned f; char r[16];} string9 = {851984, "\257\300\262\334\125\203\300\272\176\356\230\100\164\000\000"}; static struct {unsigned f; char r[4];} string10 = {131074, "\003\005\000"}; static struct {unsigned f; char r[48];} string11 = {2883632, "\260\006\005\146\151\162\163\164\216\257\300\262\334\125\203\300\272\176\356\230\100\164\005\004\162\145\163\164\214\216\257\300\262\334\125\203\300\272\176\356\230\100\164\261\000\000\000"}; static struct {unsigned f; char r[4];} string12 = {131076, "\216\251\000"}; static struct {unsigned f; char r[44];} string13 = {2752556, "\260\006\005\146\151\162\163\164\257\300\015\277\004\146\300\034\367\146\045\112\114\005\004\162\145\163\164\214\257\300\015\277\004\146\300\034\367\146\045\112\114\261\000"}; static struct {unsigned f; char r[28];} string14 = {1572888, "\006\002\000\007\000\040\016\000\003\001\000\000\000\000\014\014\000\014\014\014\014\000\010\001\000\000\000"}; static struct {unsigned f; char r[4];} string15 = {65540, "O\000\000"}; static struct {unsigned f; char r[4];} string16 = {65540, "X\000\000"}; static struct {unsigned f; char r[16];} string17 = {983056, "%g\012 %g %9d %g\012"}; static struct {unsigned f; char r[52];} string18 = {3342388, "RopeFileImpl: Failed to get expected amount of data"}; static struct {unsigned f; char r[8];} string19 = {458760, "BadMove"}; static struct {unsigned f; char r[48];} string20 = {2949168, "Lists the files currently in use as RopeFiles\000\000"}; static struct {unsigned f; char r[12];} string21 = {589836, "RopeFiles\000\000"}; static struct {unsigned f; char r[16];} string22 = {851984, "\257\300\032\203\077\073\300\316\315\010\004\100\164\000\000"}; static struct {unsigned f; char r[16];} string23 = {917518, "\006\004\070\001\074\001\100\100\001\100\170\004\100\177\000"}; static struct {unsigned f; char r[16];} string24 = {851984, "\257\300\363\223\326\161\300\017\164\046\072\100\150\000\000"}; static struct {unsigned f; char r[16];} string25 = {851984, "\257\300\250\013\333\033\300\120\151\334\170\100\150\000\000"}; static struct {unsigned f; char r[16];} string26 = {851984, "\257\300\157\176\027\244\300\037\074\133\137\100\150\000\000"}; static struct {unsigned f; char r[16];} string27 = {851984, "\257\300\354\241\072\167\300\017\164\046\072\100\164\000\000"}; static struct {unsigned f; char r[16];} string28 = {851984, "\257\300\061\347\231\302\300\102\104\205\246\100\150\000\000"}; static struct {unsigned f; char r[16];} string29 = {851984, "\257\300\373\225\000\071\300\362\156\307\320\100\150\000\000"}; static struct {unsigned f; char r[16];} string30 = {851984, "\257\300\015\277\004\146\300\034\367\146\045\100\164\000\000"}; static struct {unsigned f; char r[16];} string31 = {851984, "\257\300\262\334\125\203\300\272\176\356\230\100\150\000\000"}; static struct { word f0[8]; word f8; word f9; word f10[28]; word f38; word f39; word f40; word f41; word f42; word f43; word f44; word f45; word f46; word f47; word f48; word f49; word f50; word f51; word f52; word f53; word f54; word f55; word f56; word f57; word f58; word f59; word f60; word f61; word f62; word f63; word f64; word f65; word f66; word f67; word f68; word f69; word f70; word f71; word f72; word f73; word f74; word f75; word f76; word f77; word f78; word f79; word f80; word f81[9]; } globalframe = { {0}, (word) 16384, (word) 32756, {0}, (word) RopeFilesCommand_P1260, 0, (word) Deactivate_P1200, 0, (word) KillBuffers_P1140, 0, (word) Finalizer_P1080, 0, (word) ReleaseBuffer_P1020, 0, (word) FindBuffer_P960, 0, (word) ObtainBuffer_P900, 0, (word) RopeFileMove_P840, 0, (word) RopeFileMap_P780, 0, (word) RopeFileFetch_P720, 0, (word) LimitActive_P660, 0, (word) GetObjectList_P600, 0, (word) GetDeactivationTargets_P540, 0, (word) FindOld_P480, 0, (word) Remove_P420, 0, (word) Touch_P360, 0, (word) Note_P300, 0, (word) FromByteSequenceObject_P240, 0, (word) CreateByteSequenceObject_P180, 0, (word) Flattery_P120, 0, (word) NewBuffer_P60, 0, (word) RopeFileImpl_P0, {0} }; static void NoName_Q3288() { register ptr gf_c0208 = (ptr) &globalframe; word var_c22968; (* (( (ptr) gf_c0208)+17) ) = (word) XR_GetTypeIndex((word) &string1, 0, (word) &string2); (* (( (ptr) gf_c0208)+18) ) = (word) XR_GetTypeIndex((word) &string3, 0, (word) &string4); (* (( (ptr) gf_c0208)+20) ) = (word) XR_GetTypeIndex((word) &string5, 0, (word) &string6); (* (( (ptr) gf_c0208)+21) ) = (word) XR_GetTypeIndex((word) &string7, 0, (word) &string8); (* (( (ptr) gf_c0208)+24) ) = (word) XR_GetTypeIndex((word) &string9, 0, (word) &string10); (* (( (ptr) gf_c0208)+25) ) = (word) XR_GetTypeIndex((word) &string11, 0, (word) &string2); (* (( (ptr) gf_c0208)+26) ) = (word) XR_GetTypeIndex((word) &string12, 0, (word) &string8); (* (( (ptr) gf_c0208)+29) ) = (word) XR_GetTypeIndex((word) &string13, 0, (word) &string14); (* (ptr) (( (bPt) gf_c0208)+120) ) = (word) XR_GetRefLiteral((* (( (ptr) gf_c0208)+21) ), (word) &string15); (* (ptr) (( (bPt) gf_c0208)+124) ) = (word) XR_GetRefLiteral((* (( (ptr) gf_c0208)+21) ), (word) &string16); (* (ptr) (( (bPt) gf_c0208)+128) ) = (word) XR_GetRefLiteral((* (( (ptr) gf_c0208)+21) ), (word) &string17); (* (ptr) (( (bPt) gf_c0208)+132) ) = (word) XR_GetRefLiteral((* (( (ptr) gf_c0208)+21) ), (word) &string18); (* (ptr) (( (bPt) gf_c0208)+136) ) = (word) XR_GetRefLiteral((* (( (ptr) gf_c0208)+26) ), (word) &string19); (* (ptr) (( (bPt) gf_c0208)+140) ) = (word) XR_GetRefLiteral((* (( (ptr) gf_c0208)+21) ), (word) &string20); (* (ptr) (( (bPt) gf_c0208)+144) ) = (word) XR_GetRefLiteral((* (( (ptr) gf_c0208)+21) ), (word) &string21); (void) XR_DeclareGlobalFrame((word) "RopeFileImpl", &globalframe, (word) XR_GetTypeIndex((word) &string22, 0, (word) &string23) , (word) (( (bPt) gf_c0208)+320)/* var_c21368 */ ); var_c22968 = (word) XR_ImportInterface((word) "Rope", (word) XR_GetTypeIndexS((word) (&string24)), 43); (* (( (ptr) gf_c0208)+86)/* var_c21752 */ ) = var_c22968; (void) XR_ImportProcS(var_c22968, 68428293); (void) XR_ImportProcS(var_c22968, 67633666); (void) XR_ImportProcS(var_c22968, 67378689); var_c22968 = (word) XR_ImportInterface((word) "Finalize", (word) XR_GetTypeIndexS((word) (&string25)), 14); (* (( (ptr) gf_c0208)+87)/* var_c22040 */ ) = var_c22968; (void) XR_ImportProcS(var_c22968, 67373057); var_c22968 = (word) XR_ImportInterface((word) "FinalizeOps", (word) XR_GetTypeIndexS((word) (&string26)), 7); (* (( (ptr) gf_c0208)+85)/* var_c21656 */ ) = var_c22968; (void) XR_ImportProcS(var_c22968, 67634178); var_c22968 = (word) XR_ImportInterface((word) "VM", (word) XR_GetTypeIndexS((word) (&string27)), 19); (* (( (ptr) gf_c0208)+84)/* var_c21592 */ ) = var_c22968; (void) XR_ImportProcS(var_c22968, 525057); (void) XR_ImportProcS(var_c22968, 134480129); var_c22968 = (word) XR_ImportInterface((word) "UnixSysCallExtensions", (word) XR_GetTypeIndexS((word) (&string28)), 1); (* (( (ptr) gf_c0208)+82)/* var_c21400 */ ) = var_c22968; (void) XR_ImportProcS(var_c22968, 67371009); var_c22968 = (word) XR_ImportInterface((word) "Commander", (word) XR_GetTypeIndexS((word) (&string29)), 3); (* (( (ptr) gf_c0208)+83)/* var_c21528 */ ) = var_c22968; (void) XR_ImportProcS(var_c22968, 1310725); var_c22968 = (word) XR_ImportInterface((word) "IO", (word) XR_GetTypeIndexS((word) (&string30)), 103); (* (( (ptr) gf_c0208)+88)/* var_c22936 */ ) = var_c22968; (void) XR_ImportProcS(var_c22968, 801795); var_c22968 = (word) XR_ExportInterface((word) "RopeFile", (word) XR_GetTypeIndexS((word) (&string31)), 7); (* (( (ptr) gf_c0208)+89)/* var_c23000 */ ) = var_c22968; (void) XR_ExportProcS(var_c22968, (word) (( (bPt) gf_c0208)+296)/* var_c21272 */ , 68681734); (void) XR_ExportVar(var_c22968, 1, (word) (( (bPt) gf_c0208)+148)/* var_c20664 */ ); (void) XR_ExportProcS(var_c22968, (word) (( (bPt) gf_c0208)+288)/* var_c21240 */ , 67633666); (void) XR_ExportProcS(var_c22968, (word) (( (bPt) gf_c0208)+160)/* var_c20728 */ , 263425); (void) XR_ExportProcS(var_c22968, (word) (( (bPt) gf_c0208)+232)/* var_c21016 */ , 263681); } static void RopeFileImpl_P0(formal_c047, formal_c045) word formal_c047; word formal_c045; { register ptr gf_c23032 = (ptr) &globalframe; /* RopeFileImpl: */ SOURCE(100, 11861) /* moved to installation proc */ /* moved to installation proc */ SOURCE(1119, 32) (* (( (ptr) gf_c23032)+10)/* flatTrigger2_v3168 */ ) = (* (( (ptr) gf_c23032)+9)/* flatTrigger1_v3140 */ ); SOURCE(1154, 62) { word pd32; word idx33; pd32 = (* (( (ptr) (* (( (ptr) gf_c23032)+82)/* var_c21400 */ ))+4) ); (* (( (ptr) gf_c23032)+11)/* filesMaxLimit_v3196 */ ) = ( idx33 = (word) ( *( (fPt) ((* (ptr) pd32 ))))(0, pd32), SGNCK(idx33) ); }; SOURCE(1218, 39) { word x34; (* (( (ptr) gf_c23032)+12)/* filesMax_v3224 */ ) = (x34 = ((* (( (ptr) gf_c23032)+11)/* filesMaxLimit_v3196 */ ) >> 2), MAX( (unsigned) , x34, 1)); }; SOURCE(1260, 27) (* (( (ptr) gf_c23032)+13)/* bufferLimit_v3252 */ ) = (* (( (ptr) gf_c23032)+12)/* filesMax_v3224 */ ); SOURCE(3171, 6) (* (( (ptr) gf_c23032)+14)/* head_v3364 */ ) = XR_NewObject(8, (* (( (ptr) gf_c23032)+17) )); { word var_c21464; var_c21464 = (* (( (ptr) gf_c23032)+14)/* head_v3364 */ ); }; SOURCE(8907, 35) (* (( (ptr) gf_c23032)+15)/* bufferHead_v3700 */ ) = XR_NewObject(28, (* (( (ptr) gf_c23032)+18) )); SOURCE(11863, 98) { word pd35; pd35 = (* (( (ptr) (* (( (ptr) gf_c23032)+83)/* var_c21528 */ ))+4) ); (void) ( *( (fPt) ((* (ptr) pd35 ))))((* (( (ptr) gf_c23032)+36) ), (word) (( (bPt) gf_c23032)+152)/* var_c20696 */ , (* ( ( (ptr) gf_c23032)+35) ), 0, 1, pd35); }; } static word NewBuffer_P60() { register ptr gf_c23064 = (ptr) &globalframe; word var_c4284; W2 interval_v6728; word buffer_v6756; /* NewBuffer: */ SOURCE(662, 316) SOURCE(699, 71) { word var_c21560; { word idx36; var_c21560 = (word) XRM_BITRSHIFT((((* (ptr) (* (( (ptr) (* (( (ptr) gf_c23064)+84)/* var_c21592 */ ))+13) ) ) - 1) + 8192), ( idx36 = (* (ptr) (* (( (ptr) (* (( (ptr) gf_c23064)+84)/* var_c21592 */ ))+14) ) ), BCK(idx36, 32) )); }; { word pd37; pd37 = (* (( (ptr) (* (( (ptr) gf_c23064)+84)/* var_c21592 */ ))+5) ); (void) ( *( (fPt) ((* (ptr) pd37 ))))((word) &interval_v6728, var_c21560, pd37); }; }; SOURCE(772, 31) buffer_v6756 = XR_NewObject(28, (* (( (ptr) gf_c23064)+18) )); SOURCE(805, 26) (* (W2Pt) (( (ptr) buffer_v6756)+4) ) = interval_v6728; SOURCE(833, 63) { word idx38; word idx39; (* (( (ptr) buffer_v6756)+3) ) = (word) XRM_BITLSHIFT(( idx38 = (word) interval_v6728.f0, SGNCK(idx38) ), ( idx39 = (* (ptr) (* (( (ptr) (* (( (ptr) gf_c23064)+84)/* var_c21592 */ ))+16) ) ), BCK(idx39, 32) )); }; SOURCE(898, 62) { word var_c21688; word pd40; pd40 = (* (( (ptr) (* (( (ptr) gf_c23064)+85)/* var_c21656 */ ))+8) ); var_c21688 = (word) ( *( (fPt) ((* (ptr) pd40 ))))(buffer_v6756, (* (( (ptr) gf_c23064)+16)/* finalizationQueue_v3784 */ ), pd40) ; }; SOURCE(962, 16) return(buffer_v6756); } static word Flattery_P120(byteSequenceObject_v4344, start_v4372, len_v4400) word byteSequenceObject_v4344; word start_v4372; word len_v4400; { register ptr gf_c23096 = (ptr) &globalframe; word var_c4444; /* Flattery: */ SOURCE(1290, 575) SOURCE(1397, 468) { word var_c21720; var_c21720 = len_v4400; if ((var_c21720 <= (* (( (ptr) gf_c23096)+9)/* flatTrigger1_v3140 */ ))) { SOURCE(1432, 188) { word text_v6800; SOURCE(1434, 35) { word pd41; pd41 = (* (( (ptr) (* (( (ptr) gf_c23096)+86)/* var_c21752 */ ))+34) ); text_v6800 = (word) ( *( (fPt) ((* (ptr) pd41 ))))(BCK(len_v4400, 32768), pd41); }; SOURCE(1479, 123) SOURCE(1481, 119) { word var_c21816; { W3 var_c21784; var_c21784.f0 = text_v6800; var_c21784.f1 = 4; var_c21784.f2 = SGNCK(len_v4400); { word pd42; pd42 = (* (( (ptr) byteSequenceObject_v4344)+9) ); var_c21816 = (word) ( *( (fPt) ((* (ptr) pd42 ))))(byteSequenceObject_v4344, var_c21784, SGNCK(start_v4372), pd42); }; }; }; SOURCE(1605, 13) return(text_v6800); }; } else { SOURCE(1634, 233) { word half_v6844; word ret_v6872; SOURCE(1636, 34) half_v6844 = IOP2( / , (int)(len_v4400 - (len_v4400 & 017)), (int)2); SOURCE(1672, 53) ret_v6872 = (word) Flattery_P120(byteSequenceObject_v4344, start_v4372, SGNCK(half_v6844)); SOURCE(1758, 20) start_v4372 = (start_v4372 + half_v6844); SOURCE(1780, 16) len_v4400 = (len_v4400 - half_v6844); SOURCE(1798, 67) { word var_c21880; var_c21880 = (word) Flattery_P120(byteSequenceObject_v4344, start_v4372, len_v4400); { word pd43; pd43 = (* (( (ptr) (* (( (ptr) gf_c23096)+86)/* var_c21752 */ ))+6) ); return((word) ( *( (fPt) ((* (ptr) pd43 ))))(ret_v6872, var_c21880, pd43)); }; }; }; }; }; } static word CreateByteSequenceObject_P180(length_v4504, data_v4532, equal_v4560, deactivate_v4588, describe_v4616, move_v4644) word length_v4504; word data_v4532; word equal_v4560; word deactivate_v4588; word describe_v4616; word move_v4644; { register ptr gf_c23128 = (ptr) &globalframe; word var_c5308; word byteSequenceObject_v6916; /* CreateByteSequenceObject: */ SOURCE(1874, 773) SOURCE(2364, 177) byteSequenceObject_v6916 = XR_NewObject(40, (* (( (ptr) gf_c23128)+24) )); (* (( (ptr) byteSequenceObject_v6916)+4) ) = length_v4504; (* (( (ptr) byteSequenceObject_v6916)+5) ) = data_v4532; (* (( (ptr) byteSequenceObject_v6916)+6) ) = XR_CheckProc(equal_v4560); (* (( (ptr) byteSequenceObject_v6916)+7) ) = XR_CheckProc(deactivate_v4588); (* (( (ptr) byteSequenceObject_v6916)+8) ) = XR_CheckProc(describe_v4616); (* (( (ptr) byteSequenceObject_v6916)+9) ) = XR_CheckProc(move_v4644); SOURCE(2543, 74) { word var_c21944; word pd44; pd44 = (* (( (ptr) (* (( (ptr) gf_c23128)+85)/* var_c21656 */ ))+8) ); var_c21944 = (word) ( *( (fPt) ((* (ptr) pd44 ))))(byteSequenceObject_v6916, (* (( (ptr) gf_c23128)+16)/* finalizationQueue_v3784 */ ), pd44) ; }; SOURCE(2619, 28) return(byteSequenceObject_v6916); } static word FromByteSequenceObject_P240(byteSequenceObject_v5368, flatten_v5396) word byteSequenceObject_v5368; word flatten_v5396; { register ptr gf_c23160 = (ptr) &globalframe; word rope_v5440; word length_v6960; /* FromByteSequenceObject: */ SOURCE(2651, 508) SOURCE(2651, 508) rope_v5440 = 0; SOURCE(2776, 39) length_v6960 = (* (( (ptr) byteSequenceObject_v5368)+4) ); SOURCE(2817, 342) if ((0 != flatten_v5396) || (length_v6960 <= (* (( (ptr) gf_c23160)+10)/* flatTrigger2_v3168 */ ))) { SOURCE(2861, 46) rope_v5440 = (word) Flattery_P120(byteSequenceObject_v5368, 0, length_v6960); SOURCE(2909, 61) { word var_c21976; word pd45; pd45 = (* (( (ptr) byteSequenceObject_v5368)+7) ); var_c21976 = (word) ( *( (fPt) ((* (ptr) pd45 ))))(byteSequenceObject_v5368, 0, pd45); }; } else { SOURCE(2981, 34) rope_v5440 = (word) FindOld_P480(byteSequenceObject_v5368); SOURCE(3017, 142) if ((rope_v5440 == 0)) { SOURCE(3038, 109) { word pd46; pd46 = (* (( (ptr) (* (( (ptr) gf_c23160)+86)/* var_c21752 */ ))+38) ); rope_v5440 = (word) ( *( (fPt) ((* (ptr) pd46 ))))(byteSequenceObject_v5368, (* (( (ptr) byteSequenceObject_v5368)+4) ), (word) ( ( (bPt) gf_c23160)+224)/* var_c20984 */ , (word) (( (bPt) gf_c23160)+216)/* var_c20952 */ , (word) (( (bPt) gf_c23160)+208) /* var_c20920 */ , pd46); }; SOURCE(3149, 10) (void) Note_P300(rope_v5440); }; }; SOURCE(2651, 508) return(rope_v5440); } static void Note_P300(rope_v5584) word rope_v5584; { register ptr gf_c23192 = (ptr) &globalframe; word handle_v7004; /* Note: */ SOURCE(3214, 152) (void) (XR_MonitorEntry((word) (( (bPt) gf_c23192)+16)/* LOCK_v2832 */ )); SOURCE(3248, 81) { word pd47; pd47 = (* (( (ptr) (* (( (ptr) gf_c23192)+85)/* var_c21656 */ ))+8) ); handle_v7004 = (word) ( *( (fPt) ((* (ptr) pd47 ))))(rope_v5584, (* (( (ptr) gf_c23192)+16)/* finalizationQueue_v3784 */ ), pd47) ; }; SOURCE(3331, 35) { word var_c22008; var_c22008 = XR_NewObject(8, (* (( (ptr) gf_c23192)+17) )); (* (ptr) var_c22008 ) = handle_v7004; (* (( (ptr) var_c22008)+1) ) = (* (( (ptr) (* (( (ptr) gf_c23192)+14)/* head_v3364 */ ))+1) ); (* (( (ptr) (* (( (ptr) gf_c23192)+14)/* head_v3364 */ ))+1) ) = var_c22008; }; SOURCE(3214, 152) (void) (XR_MonitorExit((word) (( (bPt) gf_c23192)+16)/* LOCK_v2832 */ )); return; } static void Touch_P360(byteSequenceObject_v5644) word byteSequenceObject_v5644; { register ptr gf_c23224 = (ptr) &globalframe; word prev_v7048; /* Touch: */ SOURCE(3372, 413) (void) (XR_MonitorEntry((word) (( (bPt) gf_c23224)+16)/* LOCK_v2832 */ )); SOURCE(3435, 6) prev_v7048 = (* (( (ptr) gf_c23224)+14)/* head_v3364 */ ); SOURCE(3473, 312) { register word tail_v7176; tail_v7176 = (* (( (ptr) (* (( (ptr) gf_c23224)+14)/* head_v3364 */ ))+1) ); lab_L100003: ; if ((tail_v7176 != 0)) { } else { goto lab_L100000; }; SOURCE(3550, 209) { word var_c22072; { word pd48; pd48 = (* (( (ptr) (* (( (ptr) gf_c23224)+87)/* var_c22040 */ ))+12) ); var_c22072 = (word) ( *( (fPt) ((* (ptr) pd48 ))))((* (ptr) (tail_v7176) ), pd48); }; if ((var_c22072 == 0)) { goto lab_L100004; }; { word tc49; word tc50; if (((* (( (ptr) gf_c23224)+20) ) == XR_GetReferentType(var_c22072))) { if (((*(int*)var_c22072<0) == 0)) { tc50 = (word) ((*(( short *)var_c22072 + 1)<0) == 1); } else { tc50 = (word) 0; }; if (tc50) { tc49 = (word) (((* (( (bPt) var_c22072)+3) ) & 3) == 3); } else { tc49 = (word) 0; }; } else { tc49 = (word) 0; }; if (tc49) { { word object_v7304; object_v7304 = var_c22072; SOURCE(3645, 114) if (((* (( (ptr) object_v7304)+2) ) == byteSequenceObject_v5644)) { SOURCE(3688, 21) (* (( (ptr) prev_v7048)+1) ) = (* (( (ptr) tail_v7176)+1) ); SOURCE(3711, 21) (* (( (ptr) tail_v7176)+1) ) = (* (( (ptr) (* (( (ptr) gf_c23224)+14)/* head_v3364 */ ))+1) ); SOURCE(3734, 16) (* (( (ptr) (* (( (ptr) gf_c23224)+14)/* head_v3364 */ ))+1) ) = tail_v7176; SOURCE(3752, 7) (void) (XR_MonitorExit((word) (( (bPt) gf_c23224)+16)/* LOCK_v2832 */ )); return; }; }; } else { lab_L100004: ; }; }; }; SOURCE(3774, 11) prev_v7048 = tail_v7176; tail_v7176 = (* (( (ptr) tail_v7176)+1) ); goto lab_L100003; lab_L100000: ; }; SOURCE(3372, 413) (void) (XR_MonitorExit((word) (( (bPt) gf_c23224)+16)/* LOCK_v2832 */ )); return; } static void Remove_P420(handle_v5704) word handle_v5704; { register ptr gf_c23256 = (ptr) &globalframe; word prev_v7360; /* Remove: */ SOURCE(3800, 255) (void) (XR_MonitorEntry((word) (( (bPt) gf_c23256)+16)/* LOCK_v2832 */ )); SOURCE(3849, 6) prev_v7360 = (* (( (ptr) gf_c23256)+14)/* head_v3364 */ ); SOURCE(3887, 168) { register word tail_v7488; tail_v7488 = (* (( (ptr) (* (( (ptr) gf_c23256)+14)/* head_v3364 */ ))+1) ); lab_L100008: ; if ((tail_v7488 != 0)) { } else { goto lab_L100005; }; SOURCE(3964, 77) if (((* (ptr) tail_v7488 ) == handle_v5704)) { SOURCE(3994, 21) (* (( (ptr) prev_v7360)+1) ) = (* (( (ptr) tail_v7488)+1) ); SOURCE(4017, 15) (* (( (ptr) tail_v7488)+1) ) = 0; SOURCE(4034, 7) (void) (XR_MonitorExit((word) (( (bPt) gf_c23256)+16)/* LOCK_v2832 */ )); return; }; SOURCE(4044, 11) prev_v7360 = tail_v7488; tail_v7488 = (* (( (ptr) tail_v7488)+1) ); goto lab_L100008; lab_L100005: ; }; SOURCE(3800, 255) (void) (XR_MonitorExit((word) (( (bPt) gf_c23256)+16)/* LOCK_v2832 */ )); return; } static word FindOld_P480(byteSequenceObject_v5764) word byteSequenceObject_v5764; { register ptr gf_c23288 = (ptr) &globalframe; word var_c5808; /* FindOld: */ SOURCE(4070, 479) (void) (XR_MonitorEntry((word) (( (bPt) gf_c23288)+16)/* LOCK_v2832 */ )); SOURCE(4070, 479) var_c5808 = 0; SOURCE(4156, 393) { register word tail_v7616; tail_v7616 = (* (( (ptr) (* (( (ptr) gf_c23288)+14)/* head_v3364 */ ))+1) ); lab_L100012: ; if ((tail_v7616 != 0)) { } else { goto lab_L100009; }; SOURCE(4233, 316) { word var_c22104; { word pd51; pd51 = (* (( (ptr) (* (( (ptr) gf_c23288)+87)/* var_c22040 */ ))+12) ); var_c22104 = (word) ( *( (fPt) ((* (ptr) pd51 ))))((* (ptr) (tail_v7616) ), pd51); }; if ((var_c22104 == 0)) { goto lab_L100013; }; { word tc52; word tc53; if (((* (( (ptr) gf_c23288)+20) ) == XR_GetReferentType(var_c22104))) { if (((*(int*)var_c22104<0) == 0)) { tc53 = (word) ((*(( short *)var_c22104 + 1)<0) == 1); } else { tc53 = (word) 0; }; if (tc53) { tc52 = (word) (((* (( (bPt) var_c22104)+3) ) & 3) == 3); } else { tc52 = (word) 0; }; } else { tc52 = (word) 0; }; if (tc52) { { word rope_v7744; rope_v7744 = var_c22104; SOURCE(4326, 223) if (( (int)(* (( (ptr) rope_v7744)+1) ) == (int)(* (( (ptr) byteSequenceObject_v5764)+4) ))) { SOURCE(4374, 175) { word var_c22136; var_c22136 = (* (( (ptr) rope_v7744)+2) ); if ((var_c22136 == 0)) { goto lab_L100014; }; if (((* (( (ptr) gf_c23288)+24) ) == XR_GetReferentType(var_c22136))) { { /*1*/ word other_v7800; /*1*/ other_v7800 = var_c22136; SOURCE(4432, 117) /*1*/ { /*1*/ word tc54; /*1*/ word pd55; /*1*/ if (((* (( (ptr) byteSequenceObject_v5764)+6) ) == (* (( (ptr) other_v7800)+6) ))) { /*1*/ pd55 = (* (( (ptr) byteSequenceObject_v5764)+6) ); /*1*/ tc54 = (word) (0 != (word) ( *( (fPt) ((* (ptr) pd55 ))))(byteSequenceObject_v5764, other_v7800, pd55)); /*1*/ } /*1*/ else { /*1*/ tc54 = (word) 0; /*1*/ }; /*1*/ if (tc54) { SOURCE(4535, 14) /*1*/ (void) (XR_MonitorExit((word) (( (bPt) gf_c23288)+16)/* LOCK_v2832 */ )); /*1*/ return(rope_v7744); /*1*/ }; /*1*/ }; /*1*/ }; } else { lab_L100014: ; }; }; }; }; } else { lab_L100013: ; }; }; }; tail_v7616 = (* (( (ptr) tail_v7616)+1) ); goto lab_L100012; lab_L100009: ; }; SOURCE(4070, 479) (void) (XR_MonitorExit((word) (( (bPt) gf_c23288)+16)/* LOCK_v2832 */ )); return(var_c5808); } static word GetDeactivationTargets_P540(activeLimit_v5868) word activeLimit_v5868; { register ptr gf_c23320 = (ptr) &globalframe; word list_v5912; /* GetDeactivationTargets: */ SOURCE(4583, 511) (void) (XR_MonitorEntry((word) (( (bPt) gf_c23320)+16)/* LOCK_v2832 */ )); SOURCE(4583, 511) list_v5912 = 0; SOURCE(4690, 404) { register word tail_v7844; tail_v7844 = (* (( (ptr) (* (( (ptr) gf_c23320)+14)/* head_v3364 */ ))+1) ); lab_L100018: ; if ((tail_v7844 != 0)) { } else { goto lab_L100015; }; SOURCE(4767, 327) { word var_c22168; { word pd56; pd56 = (* (( (ptr) (* (( (ptr) gf_c23320)+87)/* var_c22040 */ ))+12) ); var_c22168 = (word) ( *( (fPt) ((* (ptr) pd56 ))))((* (ptr) (tail_v7844) ), pd56); }; if ((var_c22168 == 0)) { goto lab_L100019; }; { word tc57; word tc58; if (((* (( (ptr) gf_c23320)+20) ) == XR_GetReferentType(var_c22168))) { if (((*(int*)var_c22168<0) == 0)) { tc58 = (word) ((*(( short *)var_c22168 + 1)<0) == 1); } else { tc58 = (word) 0; }; if (tc58) { tc57 = (word) (((* (( (bPt) var_c22168)+3) ) & 3) == 3); } else { tc57 = (word) 0; }; } else { tc57 = (word) 0; }; if (tc57) { { word object_v7972; object_v7972 = var_c22168; SOURCE(4862, 232) { word var_c22200; var_c22200 = (* (( (ptr) object_v7972)+2) ); if ((var_c22200 == 0)) { goto lab_L100020; }; if (((* (( (ptr) gf_c23320)+24) ) == XR_GetReferentType(var_c22200))) { { word byteSequenceObject_v8028; W3 var_c0104; word var_c0232; byteSequenceObject_v8028 = var_c22200; SOURCE(4935, 159) { /*1*/ word pd59; /*1*/ pd59 = (* (( (ptr) byteSequenceObject_v8028)+8) ); /*1*/ (void) ( *( (fPt) ((* (ptr) pd59 ))))((word) &var_c0104, byteSequenceObject_v8028, pd59); /*1*/ }; var_c0232 = var_c0104.f2; if ((0 != var_c0232)) { SOURCE(4998, 96) /*1*/ if (( (int)activeLimit_v5868 > (int)0)) { SOURCE(5022, 35) /*1*/ activeLimit_v5868 = (activeLimit_v5868 - 1); /*1*/ } /*1*/ else { SOURCE(5057, 37) /*1*/ { /*1*/ word var_c22232; /*1*/ var_c22232 = XR_NewObject(8, (* (( (ptr) gf_c23320)+25) )); /*1*/ (* (ptr) var_c22232 ) = byteSequenceObject_v8028; /*1*/ (* (( (ptr) var_c22232)+1) ) = list_v5912; /*1*/ list_v5912 = var_c22232; /*1*/ }; /*1*/ }; /*1*/ }; }; } else { lab_L100020: ; }; }; }; } else { lab_L100019: ; }; }; }; tail_v7844 = (* (( (ptr) tail_v7844)+1) ); goto lab_L100018; lab_L100015: ; }; SOURCE(4583, 511) (void) (XR_MonitorExit((word) (( (bPt) gf_c23320)+16)/* LOCK_v2832 */ )); return(list_v5912); } static word GetObjectList_P600() { register ptr gf_c23352 = (ptr) &globalframe; word list_v6056; /* GetObjectList: */ SOURCE(5136, 361) (void) (XR_MonitorEntry((word) (( (bPt) gf_c23352)+16)/* LOCK_v2832 */ )); SOURCE(5136, 361) list_v6056 = 0; SOURCE(5215, 282) { register word tail_v8072; tail_v8072 = (* (( (ptr) (* (( (ptr) gf_c23352)+14)/* head_v3364 */ ))+1) ); lab_L100024: ; if ((tail_v8072 != 0)) { } else { goto lab_L100021; }; SOURCE(5292, 205) { word var_c22264; { word pd60; pd60 = (* (( (ptr) (* (( (ptr) gf_c23352)+87)/* var_c22040 */ ))+12) ); var_c22264 = (word) ( *( (fPt) ((* (ptr) pd60 ))))((* (ptr) (tail_v8072) ), pd60); }; if ((var_c22264 == 0)) { goto lab_L100025; }; { word tc61; word tc62; if (((* (( (ptr) gf_c23352)+20) ) == XR_GetReferentType(var_c22264))) { if (((*(int*)var_c22264<0) == 0)) { tc62 = (word) ((*(( short *)var_c22264 + 1)<0) == 1); } else { tc62 = (word) 0; }; if (tc62) { tc61 = (word) (((* (( (bPt) var_c22264)+3) ) & 3) == 3); } else { tc61 = (word) 0; }; } else { tc61 = (word) 0; }; if (tc61) { { word object_v8200; object_v8200 = var_c22264; SOURCE(5387, 110) { word var_c22296; var_c22296 = (* (( (ptr) object_v8200)+2) ); if ((var_c22296 == 0)) { goto lab_L100026; }; if (((* (( (ptr) gf_c23352)+24) ) == XR_GetReferentType(var_c22296))) { { word byteSequenceObject_v8256; byteSequenceObject_v8256 = var_c22296; SOURCE(5460, 37) { /*1*/ word var_c22328; /*1*/ var_c22328 = XR_NewObject(8, (* (( (ptr) gf_c23352)+25) )); /*1*/ (* (ptr) var_c22328 ) = byteSequenceObject_v8256; /*1*/ (* (( (ptr) var_c22328)+1) ) = list_v6056; /*1*/ list_v6056 = var_c22328; /*1*/ }; }; } else { lab_L100026: ; }; }; }; } else { lab_L100025: ; }; }; }; tail_v8072 = (* (( (ptr) tail_v8072)+1) ); goto lab_L100024; lab_L100021: ; }; SOURCE(5136, 361) (void) (XR_MonitorExit((word) (( (bPt) gf_c23352)+16)/* LOCK_v2832 */ )); return(list_v6056); } static void LimitActive_P660(activeLimit_v6200) word activeLimit_v6200; { word next_v8300 = 0; /* LimitActive: */ SOURCE(5536, 356) SOURCE(5624, 268) { register word list_v8428; list_v8428 = (word) GetDeactivationTargets_P540(activeLimit_v6200); lab_L100030: ; if ((list_v8428 != 0)) { } else { goto lab_L100027; }; { word byteSequenceObject_v8556; SOURCE(5725, 51) byteSequenceObject_v8556 = (* (ptr) list_v8428 ); SOURCE(5778, 16) (* (ptr) list_v8428 ) = 0; SOURCE(5796, 16) next_v8300 = (* (( (ptr) list_v8428)+1) ); SOURCE(5814, 15) (* (( (ptr) list_v8428)+1) ) = 0; SOURCE(5831, 61) { word var_c22360; word pd63; pd63 = (* (( (ptr) byteSequenceObject_v8556)+7) ); var_c22360 = (word) ( *( (fPt) ((* (ptr) pd63 ))))(byteSequenceObject_v8556, 0, pd63); }; }; list_v8428 = next_v8300; goto lab_L100030; lab_L100027: ; }; } static word RopeFileFetch_P720(data_v12476, index_v12504) word data_v12476; word index_v12504; { register ptr gf_c23384 = (ptr) &globalframe; word var_c12548; word byteSequenceObject_v8600; word buffer_v8628; word char_v8656; /* RopeFileFetch: */ SOURCE(5907, 274) SOURCE(5941, 53) byteSequenceObject_v8600 = XR_Narrow(data_v12476, (* (( (ptr) gf_c23384)+24) )); SOURCE(5996, 56) buffer_v8628 = (word) ObtainBuffer_P900(byteSequenceObject_v8600, index_v12504); SOURCE(6074, 47) SOURCE(6076, 45) char_v8656 = (word) (* (( (bPt) (* (( (ptr) buffer_v8628)+3) ))+(index_v12504 - (* (( (ptr) buffer_v8628)+1) ))) ); SOURCE(6124, 41) (void) ReleaseBuffer_P1020(byteSequenceObject_v8600, buffer_v8628); SOURCE(6167, 14) return(char_v8656); } static word RopeFileMap_P780(base_v12608, formal_c0238, formal_c0239, formal_c0240) word base_v12608; word formal_c0238; word formal_c0239; word formal_c0240; { W10 var_c23416; /* declaration of start_v12636 skipped */ /* declaration of len_v12664 skipped */ /* declaration of action_v12692 skipped */ register ptr gf_c23448 = (ptr) &globalframe; /* declaration of quit_v12736 skipped */ /* declaration of byteSequenceObject_v8700 skipped */ /* declaration of buffer_v8728 skipped */ (* (( (ptr) &var_c23416)+4)/* start_v12636 */ ) = formal_c0238; (* (( (ptr) &var_c23416)+5)/* len_v12664 */ ) = formal_c0239; (* (( (ptr) &var_c23416)+6)/* action_v12692 */ ) = formal_c0240; /* RopeFileMap: */ SOURCE(6185, 495) SOURCE(6185, 495) (* (( (ptr) &var_c23416)+7)/* quit_v12736 */ ) = 0; SOURCE(6215, 53) (* (( (ptr) &var_c23416)+8)/* byteSequenceObject_v8700 */ ) = XR_Narrow(base_v12608, (* (( (ptr) gf_c23448)+24) )); SOURCE(6270, 56) (* (( (ptr) &var_c23416)+9)/* buffer_v8728 */ ) = (word) ObtainBuffer_P900((* (( (ptr) &var_c23416)+8)/* byteSequenceObject_v8700 */ ), (* ( ( (ptr) &var_c23416)+4)/* start_v12636 */ )); SOURCE(6334, 288) { word var_c0233; var_c0233 = (word) &var_c23416; (void) (word) XR_Enable(( ((word) (fPt) NoName_Q3348) ), ( ((word) (fPt) NoName_Q3408) ), var_c0233); }; SOURCE(6639, 41) (void) ReleaseBuffer_P1020((* (( (ptr) &var_c23416)+8)/* byteSequenceObject_v8700 */ ), (* (( (ptr) &var_c23416)+9)/* buffer_v8728 */ )) ; SOURCE(6185, 495) return((* (( (ptr) &var_c23416)+7)/* quit_v12736 */ )); } static word NoName_Q3348(formal_c0222) word formal_c0222; { SOURCE(6398, 224) { register word i_v8772; register word noName_c22392; i_v8772 = (* (( (ptr) formal_c0222)+4) ); noName_c22392 = ((* (( (ptr) formal_c0222)+4) ) + (* (( (ptr) formal_c0222)+5) )); if (( (int)i_v8772 >= (int)noName_c22392)) { goto lab_L100033; }; lab_L100036: ; if ((0 == (* (( (ptr) formal_c0222)+7) ))) { } else { goto lab_L100033; }; SOURCE(6445, 113) if (( (int)i_v8772 >= (int)(* (( (ptr) (* (( (ptr) formal_c0222)+9) ))+2) ))) { SOURCE(6471, 41) (void) ReleaseBuffer_P1020((* (( (ptr) formal_c0222)+8) ), (* (( (ptr) formal_c0222)+9) )); SOURCE(6514, 44) (* (( (ptr) formal_c0222)+9) ) = (word) ObtainBuffer_P900((* (( (ptr) formal_c0222)+8) ), i_v8772); }; SOURCE(6571, 51) SOURCE(6573, 49) { word pd64; pd64 = (* (( (ptr) formal_c0222)+6) ); (* (( (ptr) formal_c0222)+7) ) = (word) ( *( (fPt) ((* (ptr) pd64 ))))((word) ((* (( (bPt) (* (( (ptr) (* (( (ptr) formal_c0222)+9) ))+3) ))+(i_v8772 - (* (( (ptr) (* (( (ptr) formal_c0222)+9) ))+1) ))) )), pd64); }; i_v8772 = (i_v8772 + 1); if (( (int)i_v8772 < (int)noName_c22392)) { goto lab_L100036; }; lab_L100033: ; }; return(0); } static word RopeFileMove_P840(block_v12796, data_v12824, start_v12852) W3 block_v12796; word data_v12824; word start_v12852; { register ptr gf_c23480 = (ptr) &globalframe; word charsMoved_v12896; word byteSequenceObject_v8816; /* RopeFileMove: */ SOURCE(6686, 1300) SOURCE(6686, 1300) charsMoved_v12896 = 0; SOURCE(6728, 53) byteSequenceObject_v8816 = XR_Narrow(data_v12824, (* (( (ptr) gf_c23480)+24) )); SOURCE(7233, 639) if (( (int)block_v12796.f2 >= (int)8192)) { SOURCE(7267, 607) { word wasAlreadyActive_v8948; W3 var_c0139; word buffer_v8976; SOURCE(7269, 77) { word pd65; pd65 = (* (( (ptr) byteSequenceObject_v8816)+8) ); (void) ( *( (fPt) ((* (ptr) pd65 ))))((word) &var_c0139, byteSequenceObject_v8816, pd65); }; wasAlreadyActive_v8948 = var_c0139.f2; SOURCE(7348, 60) buffer_v8976 = (word) FindBuffer_P960(byteSequenceObject_v8816, start_v12852, 1); SOURCE(7456, 50) if ((buffer_v8976 != 0)) { SOURCE(7479, 27) { word transfer_v9108; { word x66; word x67; transfer_v9108 = (x66 = block_v12796.f2, x67 = ((* (( (ptr) buffer_v8976)+2) ) - start_v12852), MIN((int)(word), x66, x67)); }; SOURCE(6900, 137) { word idx68; (void) Basics_MoveBytes(block_v12796.f0, ( idx68 = (word) block_v12796.f1, SGNCK(idx68) ), (* (( (ptr) buffer_v8976)+3) ), (start_v12852 - (* (( (ptr) buffer_v8976)+1) )), SGNCK(transfer_v9108)); }; SOURCE(7039, 46) block_v12796.f1 = (block_v12796.f1 + transfer_v9108); SOURCE(7087, 36) block_v12796.f2 = (block_v12796.f2 - transfer_v9108); SOURCE(7125, 24) start_v12852 = (start_v12852 + transfer_v9108); SOURCE(7151, 34) charsMoved_v12896 = (charsMoved_v12896 + transfer_v9108); SOURCE(7187, 41) (void) ReleaseBuffer_P1020(byteSequenceObject_v8816, buffer_v8976); }; }; SOURCE(7519, 273) { word moved_v9020; SOURCE(7521, 133) { W3 var_c22424; var_c22424.f0 = block_v12796.f0; var_c22424.f1 = block_v12796.f1; var_c22424.f2 = block_v12796.f2; { word pd69; pd69 = (* (( (ptr) byteSequenceObject_v8816)+9) ); moved_v9020 = (word) ( *( (fPt) ((* (ptr) pd69 ))))(byteSequenceObject_v8816, var_c22424, start_v12852, pd69); }; }; SOURCE(7656, 43) block_v12796.f1 = (block_v12796.f1 + moved_v9020); SOURCE(7701, 33) block_v12796.f2 = (block_v12796.f2 - moved_v9020); SOURCE(7736, 21) start_v12852 = (start_v12852 + moved_v9020); SOURCE(7759, 31) charsMoved_v12896 = (charsMoved_v12896 + moved_v9020); }; SOURCE(7795, 25) (void) Touch_P360(byteSequenceObject_v8816); SOURCE(7822, 50) if ((0 == wasAlreadyActive_v8948)) { SOURCE(7851, 21) (void) LimitActive_P660((* ((( (ptr) gf_c23480)+12)/* filesMax_v3224 */ ) )); }; }; }; SOURCE(7877, 109) lab_L100039: ; if (( (int)block_v12796.f2 != (int)0)) { } else { goto lab_L100037; }; { word buffer_v9064; SOURCE(7902, 56) buffer_v9064 = (word) ObtainBuffer_P900(byteSequenceObject_v8816, start_v12852); SOURCE(7960, 26) { word transfer_v20604; { word x70; word x71; transfer_v20604 = (x70 = block_v12796.f2, x71 = ((* (( (ptr) buffer_v9064)+2) ) - start_v12852), MIN((int)(word), x70, x71)); }; SOURCE(6900, 137) { word idx72; (void) Basics_MoveBytes(block_v12796.f0, ( idx72 = (word) block_v12796.f1, SGNCK(idx72) ), (* (( (ptr) buffer_v9064)+3) ), (start_v12852 - (* (( (ptr) buffer_v9064)+1) )), SGNCK(transfer_v20604)); }; SOURCE(7039, 46) block_v12796.f1 = (block_v12796.f1 + transfer_v20604); SOURCE(7087, 36) block_v12796.f2 = (block_v12796.f2 - transfer_v20604); SOURCE(7125, 24) start_v12852 = (start_v12852 + transfer_v20604); SOURCE(7151, 34) charsMoved_v12896 = (charsMoved_v12896 + transfer_v20604); SOURCE(7187, 41) (void) ReleaseBuffer_P1020(byteSequenceObject_v8816, buffer_v9064); }; }; goto lab_L100039; lab_L100037: ; SOURCE(6686, 1300) return(charsMoved_v12896); } static word ObtainBuffer_P900(byteSequenceObject_v6260, index_v6288) word byteSequenceObject_v6260; word index_v6288; { register ptr gf_c23512 = (ptr) &globalframe; word buffer_v6332; /* ObtainBuffer: */ SOURCE(8001, 897) SOURCE(8001, 897) buffer_v6332 = 0; SOURCE(8102, 46) buffer_v6332 = (word) FindBuffer_P960(byteSequenceObject_v6260, index_v6288, 0); SOURCE(8150, 41) if ((buffer_v6332 == 0)) { SOURCE(8171, 20) buffer_v6332 = (word) NewBuffer_P60(); }; SOURCE(8193, 705) if (((* (ptr) buffer_v6332 ) != byteSequenceObject_v6260) || ( ( (int)index_v6288 < (int)(* (( (ptr) buffer_v6332)+1) )) ? 1 : ( (int)index_v6288 >= (int)(* ( ( (ptr) buffer_v6332)+2) )) ) ) { SOURCE(8298, 602) { word wasAlreadyActive_v9136; W3 var_c0150; SOURCE(8300, 77) { word pd73; pd73 = (* (( (ptr) byteSequenceObject_v6260)+8) ); (void) ( *( (fPt) ((* (ptr) pd73 ))))((word) &var_c0150, byteSequenceObject_v6260, pd73); }; wasAlreadyActive_v9136 = var_c0150.f2; SOURCE(8379, 46) (* (ptr) buffer_v6332 ) = byteSequenceObject_v6260; SOURCE(8427, 54) (* (( (ptr) buffer_v6332)+1) ) = ((word) ((word) SGNCK(index_v6288) >> 13) << 13); SOURCE(8483, 70) { word x74; word x75; (* (( (ptr) buffer_v6332)+2) ) = (x74 = ((* (( (ptr) buffer_v6332)+1) ) + 8192), x75 = (* (( (ptr) byteSequenceObject_v6260)+4) ), MIN((int)(word), x74, x75)); }; SOURCE(8563, 255) { word moved_v9180; SOURCE(8565, 139) { W3 var_c22456; var_c22456.f0 = (* (( (ptr) buffer_v6332)+3) ); var_c22456.f1 = 0; var_c22456.f2 = ((* (( (ptr) buffer_v6332)+2) ) - (* (( (ptr) buffer_v6332)+1) )); { word pd76; pd76 = (* (( (ptr) byteSequenceObject_v6260)+9) ); moved_v9180 = (word) ( *( (fPt) ((* (ptr) pd76 ))))(byteSequenceObject_v6260, var_c22456, (* (( (ptr) buffer_v6332)+1) ), pd76) ; }; }; SOURCE(8706, 110) if (( (int)((* (( (ptr) buffer_v6332)+1) ) + moved_v9180) != (int)(* (( (ptr) buffer_v6332)+2) ))) { SOURCE(8746, 70) { W2 var_c0153; (* (ptr) (word) &var_c0153 ) = (* (( (ptr) gf_c23512)+34) ); (* (( (ptr) (word) &var_c0153) + 1) ) = (* (( (ptr) gf_c23512)+33) ); (void) XR_RaiseError((word) (( (bPt) gf_c23512)+148)/* var_c20664 */ , (word) &var_c0153); }; }; }; SOURCE(8821, 25) (void) Touch_P360(byteSequenceObject_v6260); SOURCE(8848, 50) if ((0 == wasAlreadyActive_v9136)) { SOURCE(8877, 21) (void) LimitActive_P660((* ((( (ptr) gf_c23512)+12)/* filesMax_v3224 */ ) )); }; }; }; SOURCE(8001, 897) return(buffer_v6332); } static word FindBuffer_P960(byteSequenceObject_v6392, index_v6420, exact_v6448) word byteSequenceObject_v6392; word index_v6420; word exact_v6448; { register ptr gf_c23544 = (ptr) &globalframe; word var_c6492; word nBuffers_v9224 = 0; word prev_v9252; word prevPrev_v9280 = 0; word preTarget_v9308 = 0; /* FindBuffer: */ SOURCE(8945, 857) (void) (XR_MonitorEntry((word) (( (bPt) gf_c23544)+16)/* LOCK_v2832 */ )); SOURCE(9082, 25) prev_v9252 = (* (( (ptr) gf_c23544)+15)/* bufferHead_v3700 */ ); SOURCE(9158, 320) lab_L100042: ; if (((* (( (ptr) prev_v9252)+6) ) != 0)) { } else { goto lab_L100040; }; { word this_v9352; SOURCE(9183, 24) this_v9352 = (* (( (ptr) prev_v9252)+6) ); SOURCE(9209, 54) if (((* (ptr) this_v9352 ) == 0)) { SOURCE(9247, 16) preTarget_v9308 = prev_v9252; }; SOURCE(9265, 152) if ( ( ((* (ptr) this_v9352 ) == byteSequenceObject_v6392) ? ( ( (int)index_v6420 >= (int)(* (( (ptr) this_v9352)+1) )) ? ( (int)index_v6420 < (int)(* ( ( (ptr) this_v9352)+2) )) : 0 ) : 0 ) ) { SOURCE(9358, 26) (* (( (ptr) prev_v9252)+6) ) = (* (( (ptr) (* (( (ptr) prev_v9252)+6) ))+6) ); SOURCE(9386, 15) (* (( (ptr) this_v9352)+6) ) = 0; SOURCE(9403, 14) (void) (XR_MonitorExit((word) (( (bPt) gf_c23544)+16)/* LOCK_v2832 */ )); return(this_v9352); }; SOURCE(9420, 23) nBuffers_v9224 = (nBuffers_v9224 + 1); SOURCE(9445, 15) prevPrev_v9280 = prev_v9252; SOURCE(9462, 16) prev_v9252 = (* (( (ptr) prev_v9252)+6) ); }; goto lab_L100042; lab_L100040: ; SOURCE(9489, 26) if ((0 != exact_v6448)) { SOURCE(9503, 12) (void) (XR_MonitorExit((word) (( (bPt) gf_c23544)+16)/* LOCK_v2832 */ )); return(0); }; SOURCE(9517, 126) if ((preTarget_v9308 != 0)) { SOURCE(9541, 102) { word this_v9396; SOURCE(9543, 29) this_v9396 = (* (( (ptr) preTarget_v9308)+6) ); SOURCE(9574, 36) (* (( (ptr) preTarget_v9308)+6) ) = (* (( (ptr) (* (( (ptr) preTarget_v9308)+6) ))+6) ); SOURCE(9612, 15) (* (( (ptr) this_v9396)+6) ) = 0; SOURCE(9629, 14) (void) (XR_MonitorExit((word) (( (bPt) gf_c23544)+16)/* LOCK_v2832 */ )); return(this_v9396); }; }; SOURCE(9646, 156) if (( (int)nBuffers_v9224 < (int)(* (( (ptr) gf_c23544)+13)/* bufferLimit_v3252 */ )) || (prevPrev_v9280 == 0)) { SOURCE(9695, 18) (void) (XR_MonitorExit((word) (( (bPt) gf_c23544)+16)/* LOCK_v2832 */ )); return(0); } else { SOURCE(9713, 89) { word this_v9440; SOURCE(9715, 19) this_v9440 = prev_v9252; SOURCE(9767, 19) (* (( (ptr) prevPrev_v9280)+6) ) = 0; SOURCE(9788, 14) (void) (XR_MonitorExit((word) (( (bPt) gf_c23544)+16)/* LOCK_v2832 */ )); return(this_v9440); }; }; } static void ReleaseBuffer_P1020(byteSequenceObject_v6552, buffer_v6580) word byteSequenceObject_v6552; word buffer_v6580; { register ptr gf_c23576 = (ptr) &globalframe; /* ReleaseBuffer: */ SOURCE(9809, 225) (void) (XR_MonitorEntry((word) (( (bPt) gf_c23576)+16)/* LOCK_v2832 */ )); SOURCE(9896, 76) if (((* (( (ptr) buffer_v6580)+6) ) != 0) || ((* (ptr) buffer_v6580 ) != byteSequenceObject_v6552)) { SOURCE(9972, 5) (void) XR_RaiseUnnamedError(); }; SOURCE(9979, 29) (* (( (ptr) buffer_v6580)+6) ) = (* (( (ptr) (* (( (ptr) gf_c23576)+15)/* bufferHead_v3700 */ ))+6) ); SOURCE(10010, 24) (* (( (ptr) (* (( (ptr) gf_c23576)+15)/* bufferHead_v3700 */ ))+6) ) = buffer_v6580; SOURCE(9809, 225) (void) (XR_MonitorExit((word) (( (bPt) gf_c23576)+16)/* LOCK_v2832 */ )); return; } static void Finalizer_P1080(handle_v12956, object_v12984) word handle_v12956; word object_v12984; { register ptr gf_c23608 = (ptr) &globalframe; /* Finalizer: */ SOURCE(10104, 524) SOURCE(10144, 484) { word var_c22488; word var_c22520; var_c22488 = object_v12984; if ((var_c22488 == 0)) { goto lab_L100043; }; var_c22520 = XR_GetReferentType(var_c22488); { word tc78; word tc79; if (((* (( (ptr) gf_c23608)+20) ) == var_c22520)) { if (((*(int*)var_c22488<0) == 0)) { tc79 = (word) ((*(( short *)var_c22488 + 1)<0) == 1); } else { tc79 = (word) 0; }; if (tc79) { tc78 = (word) (((* (( (bPt) var_c22488)+3) ) & 3) == 3); } else { tc78 = (word) 0; }; } else { tc78 = (word) 0; }; if (tc78) { { word object_v9484; object_v9484 = var_c22488; SOURCE(10210, 14) (void) Remove_P420(handle_v12956); SOURCE(10226, 167) { word var_c22552; var_c22552 = (* (( (ptr) object_v9484)+2) ); if ((var_c22552 == 0)) { goto lab_L100044; }; if (((* (( (ptr) gf_c23608)+24) ) == XR_GetReferentType(var_c22552))) { { word byteSequenceObject_v9540; byteSequenceObject_v9540 = var_c22552; SOURCE(10299, 31) (void) KillBuffers_P1140(byteSequenceObject_v9540); SOURCE(10332, 61) { word var_c22584; word pd80; pd80 = (* (( (ptr) byteSequenceObject_v9540)+7) ); var_c22584 = (word) ( *( (fPt) ((* (ptr) pd80 ))))(byteSequenceObject_v9540, 0, pd80); }; }; } else { lab_L100044: ; }; }; }; goto endif077; }; if (((* (( (ptr) gf_c23608)+18) ) == var_c22520)) { { word buffer_v9584; buffer_v9584 = var_c22488; SOURCE(10428, 18) (* (( (ptr) buffer_v9584)+3) ) = 0; SOURCE(10456, 27) SOURCE(10458, 25) { word pd81; pd81 = (* (( (ptr) (* (( (ptr) gf_c23608)+84)/* var_c21592 */ ))+7) ); (void) ( *( (fPt) ((* (ptr) pd81 ))))((* (W2Pt) ((( (ptr) buffer_v9584)+4)) ), pd81); }; SOURCE(10486, 33) (* (( (ptr) buffer_v9584)+4) ) = 0; (* (( (ptr) buffer_v9584)+5) ) = 0; }; goto endif077; }; if (((* (( (ptr) gf_c23608)+24) ) == var_c22520)) { { word byteSequenceObject_v9628; byteSequenceObject_v9628 = var_c22488; SOURCE(10568, 60) { word var_c22616; word pd82; pd82 = (* (( (ptr) byteSequenceObject_v9628)+7) ); var_c22616 = (word) ( *( (fPt) ((* (ptr) pd82 ))))(byteSequenceObject_v9628, 1, pd82); }; }; goto endif077; }; lab_L100043: ; goto endif077; endif077: ; }; }; } static void KillBuffers_P1140(byteSequenceObject_v6640) word byteSequenceObject_v6640; { register ptr gf_c23640 = (ptr) &globalframe; /* KillBuffers: */ SOURCE(10646, 227) (void) (XR_MonitorEntry((word) (( (bPt) gf_c23640)+16)/* LOCK_v2832 */ )); SOURCE(10715, 158) { register word buffer_v9672; buffer_v9672 = (* (( (ptr) (* (( (ptr) gf_c23640)+15)/* bufferHead_v3700 */ ))+6) ); lab_L100048: ; if ((buffer_v9672 != 0)) { } else { goto lab_L100045; }; SOURCE(10787, 86) if (((* (ptr) buffer_v9672 ) == byteSequenceObject_v6640)) { SOURCE(10842, 31) (* (ptr) buffer_v9672 ) = 0; }; buffer_v9672 = (* (( (ptr) buffer_v9672)+6) ); goto lab_L100048; lab_L100045: ; }; SOURCE(10646, 227) (void) (XR_MonitorExit((word) (( (bPt) gf_c23640)+16)/* LOCK_v2832 */ )); return; } static void Deactivate_P1200(rope_v6700) word rope_v6700; { register ptr gf_c23672 = (ptr) &globalframe; /* Deactivate: */ SOURCE(10888, 462) SOURCE(10929, 421) { word var_c22648; var_c22648 = rope_v6700; if ((var_c22648 == 0)) { goto lab_L100049; }; if (((*(( short *)var_c22648 + 1)<0) == 1)) { { word x_v9716; x_v9716 = var_c22648; SOURCE(10987, 363) SOURCE(10989, 337) { word var_c22680; var_c22680 = ((* (( (bPt) x_v9716)+3) ) & 3); switch (var_c22680) { case 0: SOURCE(11021, 18) (void) Deactivate_P1200((* ((( (ptr) x_v9716)+2)) )); break; case 1: SOURCE(11053, 18) (void) Deactivate_P1200((* ((( (ptr) x_v9716)+2)) )); SOURCE(11073, 19) (void) Deactivate_P1200((* ((( (ptr) x_v9716)+3)) )); break; case 2: SOURCE(11108, 18) (void) Deactivate_P1200((* ((( (ptr) x_v9716)+2)) )); SOURCE(11128, 22) (void) Deactivate_P1200((* ((( (ptr) x_v9716)+3)) )); break; case 3: SOURCE(11163, 163) if (((* (( (ptr) x_v9716)+3) ) == (word) (( (bPt) gf_c23672)+224)/* var_c20984 */ )) { SOURCE(11197, 129) { word var_c22712; var_c22712 = (* (( (ptr) x_v9716)+2) ); if ((var_c22712 == 0)) { /*1*/ goto lab_L100050; /*1*/ }; if (((* (( (ptr) gf_c23672)+24) ) == XR_GetReferentType(var_c22712))) { /*1*/ { /*1*/ word byteSequenceObject_v9772; /*1*/ byteSequenceObject_v9772 = var_c22712; SOURCE(11265, 61) /*1*/ { /*1*/ word var_c22744; /*1*/ word pd83; /*1*/ pd83 = (* (( (ptr) byteSequenceObject_v9772)+7) ); /*1*/ var_c22744 = (word) ( *( (fPt) ((* (ptr) pd83 ))))(byteSequenceObject_v9772, 0, pd83); /*1*/ }; /*1*/ }; /*1*/ } else { /*1*/ lab_L100050: ; /*1*/ }; }; }; break; }; }; }; } else { lab_L100049: ; }; }; } static void RopeFilesCommand_P1260(formal_c0195, formal_c0241) word formal_c0195; word formal_c0241; { W8 var_c23704; /* declaration of cmd_v13044 skipped */ word result_v13088; word msg_v13116; /* declaration of var_c22776 skipped */ var_c23704.f4/* cmd_v13044 */ = formal_c0241; /* RopeFilesCommand: */ SOURCE(11366, 482) { word tmpAddr84; tmpAddr84 = (word) (( (ptr) &var_c23704)+5)/* var_c22776 */ ; (* (ptr) tmpAddr84 ) = ( ((word) (fPt) P_P3012) ); (* (( (ptr) tmpAddr84) + 1) ) = 1; }; SOURCE(11366, 482) result_v13088 = 0; SOURCE(11366, 482) msg_v13116 = 0; SOURCE(11410, 438) { register word tail_v9816; tail_v9816 = (word) GetObjectList_P600(); lab_L100055: ; if ((tail_v9816 != 0)) { } else { goto lab_L100052; }; { /* declaration of byteSequenceObject_v9944 skipped */ SOURCE(11496, 51) var_c23704.f7/* byteSequenceObject_v9944 */ = (* (ptr) tail_v9816 ); SOURCE(11785, 63) { W3 var_c22808; { word pd85; pd85 = (* (( (ptr) var_c23704.f7/* byteSequenceObject_v9944 */ )+8) ); (void) ( *( (fPt) ((* (ptr) pd85 ))))((word) &var_c22808, var_c23704.f7/* byteSequenceObject_v9944 */ , pd85); }; (void) P_P3012(var_c22808.f0, var_c22808.f1, var_c22808.f2, (word) (( (bPt) &var_c23704)+20)/* var_c22776 */ ); }; }; tail_v9816 = (* (( (ptr) tail_v9816)+1) ); goto lab_L100055; lab_L100052: ; }; /* removed tail goto */ (* (ptr) formal_c0195 ) = result_v13088; (* (( (ptr) formal_c0195)+1) ) = msg_v13116; return; } static void P_P3012(fileName_v10048, created_v10076, open_v10104, formal_c23768) word fileName_v10048; word created_v10076; word open_v10104; word formal_c23768; { register ptr gf_c23736 = (ptr) &globalframe; word status_v10132; formal_c23768 = (formal_c23768 - 20); /* P: */ SOURCE(11549, 9) SOURCE(11605, 40) status_v10132 = ( (0 != open_v10104) ? (* (( (ptr) gf_c23736)+30) ) : (* (( (ptr) gf_c23736)+31) ) ) ; SOURCE(11647, 133) { word var_c22840; { word var_c22872; word var_c22904; var_c22872 = XR_NewObject(12, (* (( (ptr) gf_c23736)+29) )); var_c22904 = var_c22872; (* (ptr) var_c22904 ) = 11; (* (( (ptr) var_c22904)+1) ) = fileName_v10048; (* (( (ptr) var_c22904)+2) ) = XR_NewObject(12, (* (( (ptr) gf_c23736)+29) )); var_c22904 = (* (( (ptr) var_c22904)+2) ); (* (ptr) var_c22904 ) = 11; (* (( (ptr) var_c22904)+1) ) = status_v10132; (* (( (ptr) var_c22904)+2) ) = XR_NewObject(12, (* (( (ptr) gf_c23736)+29) )); var_c22904 = (* (( (ptr) var_c22904)+2) ); (* (ptr) var_c22904 ) = 5; (* (( (ptr) var_c22904)+1) ) = (* (( (ptr) (* (( (ptr) formal_c23768)+7) ))+4) ); (* (( (ptr) var_c22904)+2) ) = XR_NewObject(12, (* (( (ptr) gf_c23736)+29) )); var_c22904 = (* (( (ptr) var_c22904)+2) ); (* (ptr) var_c22904 ) = 11; (* (( (ptr) var_c22904)+1) ) = created_v10076; var_c22840 = var_c22872; }; { word pd86; pd86 = (* (( (ptr) (* (( (ptr) gf_c23736)+88)/* var_c22936 */ ))+64) ); (void) ( *( (fPt) ((* (ptr) pd86 ))))((* (( (ptr) (* (( (ptr) formal_c23768)+4) ))+1) ), (* (( (ptr) gf_c23736)+32) ), var_c22840, pd86) ; }; }; } static void NoName_Q3408(formal_c0207, formal_c200000, formal_c200001, formal_c200002, formal_c200003) word formal_c0207; word formal_c200000; word formal_c200001; word formal_c200002; word formal_c200003; { if ((formal_c200001 == XR_Unwind)) { SOURCE(6353, 42) (void) ReleaseBuffer_P1020((* (( (ptr) formal_c200000)+8) ), (* (( (ptr) formal_c200000)+9) )); }; (* (ptr) formal_c0207 ) = 0; (* (( (ptr) formal_c0207)+1) ) = 0; return; } /* file: RopeFileImpl, module: RopeFileImpl, compiled at: January 27, 1993 4:57:19 pm PST */ extern void XR_install_RopeFileImpl() { NoName_Q3288(); } extern void XR_run_RopeFileImpl() { XR_Start(&globalframe); }