/* Generated with C2C (Cedar To C)*/
/* Copyright (C) 1993 by Xerox Corporation. All rights reserved. */
/* time: February 5, 1993 1:58:23 pm PST */
/* C2C version: October 7, 1992 (native) */
/* ref-counting: off */
/* file: GGCaretImpl, module: GGCaretImpl */
/* switches: bcfhklnouw */
#include <cedar/InstallationSupport.h>
#include <cedar/CedarExtra.h>
static char versionStamp[] = "@(#)mob←version [2783467314,3988694136] GGCaretImpl";
typedef unsigned word, *ptr;
typedef unsigned char byte, *bPt;
typedef unsigned short half, *hPt;
typedef struct {word f0, f1, f2, f3, f4, f5, f6;} W7;
typedef W7 *W7Pt;
typedef word (*fPt)();
typedef struct {word f0, f1;} W2;
typedef W2 *W2Pt;
#define SOURCE(p, l) /* source p, l */
static float fc7 = 0.0;
static float fc8 = -1.0;
static float fc9 = 4.0;
static float fc10 = 6.0;
static float fc12 = 2.0;
static float fc14 = 8.0;
static float fc15 = 16.0;
static void NoName←Q840();
static void GGCaretImpl←P0();
static word Create←P60();
static void Copy←P120();
static void Kill←P180();
static word Exists←P240();
static word BoundBoxOfCaret←P300();
static void SitOn←P360();
static word GetChair←P420();
static word SittingOnEnd←P480();
static void NoAttractor←P540();
static void SetAttractor←P600();
static word GetAttractor←P660();
static void GetPoint←P720();
static void GetNormal←P780();
static struct {unsigned f; char r[16];} string1 = {851984, "\257\300\223\145\303\043\300\372\023\025\003\100\370\000\000"};
static struct {unsigned f; char r[4];} string2 = {196611, "\004@`"};
static struct {unsigned f; char r[16];} string3 = {851984, "\257\300\245\350\127\062\300\355\276\244\170\100\164\000\000"};
static struct {unsigned f; char r[16];} string4 = {851984, "\257\300\265\217\206\011\300\172\271\371\033\100\150\000\000"};
static struct {unsigned f; char r[16];} string5 = {851984, "\257\300\336\025\013\356\300\216\115\352\271\100\150\000\000"};
static struct {unsigned f; char r[16];} string6 = {851984, "\257\300\223\031\346\162\300\275\253\133\335\100\150\000\000"};
static struct {
word f0[6]; word f6; word f7; word f8;
word f9; word f10; 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;
word f25; word f26; word f27; word f28;
word f29; word f30; word f31; word f32;
word f33[4];
} globalframe = {
{0}, (word) GetNormal←P780, 0, (word) GetPoint←P720,
0, (word) GetAttractor←P660, 0, (word) SetAttractor←P600,
0, (word) NoAttractor←P540, 0, (word) SittingOnEnd←P480,
0, (word) GetChair←P420, 0, (word) SitOn←P360,
0, (word) BoundBoxOfCaret←P300, 0, (word) Exists←P240,
0, (word) Kill←P180, 0, (word) Copy←P120,
0, (word) Create←P60, 0, (word) GGCaretImpl←P0,
{0}
};
static void NoName←Q840()
{
register ptr gf←c057 = (ptr) &globalframe;
word var←c7780;
(* (( (ptr) gf←c057)+4) ) = (word) XR←GetTypeIndex((word) &string1, 0, (word) &string2);
(void) XR←DeclareGlobalFrame((word) "GGCaretImpl", &globalframe, (word) XR←GetTypeIndexS((word) (&string3)), (word) (( (bPt) gf←c057)+128)
/* var←c7588 */ );
var←c7780 = (word) XR←ImportInterface((word) "GGBoundBox", (word) XR←GetTypeIndexS((word) (&string4)), 24);
(* (( (ptr) gf←c057)+34)/* var←c7684 */ ) = var←c7780;
(void) XR←ImportProcS(var←c7780, 68681990);
var←c7780 = (word) XR←ImportInterface((word) "GGSliceOps", (word) XR←GetTypeIndexS((word) (&string5)), 73);
(* (( (ptr) gf←c057)+35)/* var←c7748 */ ) = var←c7780;
(void) XR←ImportProcS(var←c7780, 67388929);
var←c7780 = (word) XR←ExportInterface((word) "GGCaret", (word) XR←GetTypeIndexS((word) (&string6)), 13);
(* (( (ptr) gf←c057)+36)/* var←c7812 */ ) = var←c7780;
(void) XR←ExportProcS(var←c7780, (word) (( (bPt) gf←c057)+120)/* var←c7556 */ , 67108864);
(void) XR←ExportProcS(var←c7780, (word) (( (bPt) gf←c057)+112)/* var←c7524 */ , 524546);
(void) XR←ExportProcS(var←c7780, (word) (( (bPt) gf←c057)+104)/* var←c7492 */ , 262657);
(void) XR←ExportProcS(var←c7780, (word) (( (bPt) gf←c057)+96)/* var←c7460 */ , 67371777);
(void) XR←ExportProcS(var←c7780, (word) (( (bPt) gf←c057)+88)/* var←c7428 */ , 67634178);
(void) XR←ExportProcS(var←c7780, (word) (( (bPt) gf←c057)+80)/* var←c7396 */ , 525570);
(void) XR←ExportProcS(var←c7780, (word) (( (bPt) gf←c057)+72)/* var←c7364 */ , 67372545);
(void) XR←ExportProcS(var←c7780, (word) (( (bPt) gf←c057)+64)/* var←c7332 */ , 67372801);
(void) XR←ExportProcS(var←c7780, (word) (( (bPt) gf←c057)+48)/* var←c7268 */ , 1574916);
(void) XR←ExportProcS(var←c7780, (word) (( (bPt) gf←c057)+56)/* var←c7300 */ , 264449);
(void) XR←ExportProcS(var←c7780, (word) (( (bPt) gf←c057)+40)/* var←c7236 */ , 67373569);
(void) XR←ExportProcS(var←c7780, (word) (( (bPt) gf←c057)+32)/* var←c7204 */ , 134482689);
(void) XR←ExportProcS(var←c7780, (word) (( (bPt) gf←c057)+24)/* var←c7172 */ , 134482945);
}
static void GGCaretImpl←P0(formal←c022, formal←c021)
word formal←c022;
word formal←c021;
{
/* GGCaretImpl: */
}
static word Create←P60()
{
register ptr gf←c7844 = (ptr) &globalframe;
word caret←v3472;
/* Create: */
SOURCE(736, 68)
SOURCE(736, 68)
caret←v3472 = 0;
SOURCE(783, 21)
{
word var←c7620;
var←c7620 = XR←NewObject(28, (* (( (ptr) gf←c7844)+4) ));
(* (( (ptr) var←c7620)+1) ) = (* (ptr) &fc7 );
(* (( (ptr) var←c7620)+2) ) = (* (ptr) &fc7 );
(* (( (ptr) var←c7620)+3) ) = (* (ptr) &fc7 );
(* (( (ptr) var←c7620)+4) ) = (* (ptr) &fc8 );
caret←v3472 = var←c7620;
};
SOURCE(736, 68)
return(caret←v3472);
}
static void Copy←P120(to←v3532, from←v3560)
word to←v3532;
word from←v3560;
{
/* Copy: */
SOURCE(809, 51)
SOURCE(849, 11)
(* (W7Pt) to←v3532 ) = (* (W7Pt) from←v3560 );
}
static void Kill←P180(caret←v3620)
word caret←v3620;
{
/* Kill: */
SOURCE(866, 57)
SOURCE(903, 20)
(* (ptr) caret←v3620 ) = 0;
}
static word Exists←P240(caret←v3680)
word caret←v3680;
{
word var←c3724;
/* Exists: */
SOURCE(928, 74)
SOURCE(982, 20)
return((* (ptr) caret←v3680 ));
}
static word BoundBoxOfCaret←P300(caret←v3784, ggData←v3812)
word caret←v3784;
word ggData←v3812;
{
register ptr gf←c7876 = (ptr) &globalframe;
word box←v3856;
word fudge←v4724;
word leftOffset←v4752;
word rightOffset←v4780;
word topOffset←v4808;
word bottomOffset←v4836;
/* BoundBoxOfCaret: */
SOURCE(1008, 882)
SOURCE(1008, 882)
box←v3856 = 0;
SOURCE(1113, 17)
fudge←v4724 = (* (ptr) &fc9 );
SOURCE(1180, 60)
leftOffset←v4752 = (* (ptr) &fc7 );
rightOffset←v4780 = (* (ptr) &fc7 );
topOffset←v4808 = (* (ptr) &fc7 );
bottomOffset←v4836 = (* (ptr) &fc7 );
SOURCE(1242, 32)
if ((caret←v3784 == 0) || (ggData←v3812 == 0)) {
SOURCE(1274, 5)
(void) XR←RaiseUnnamedError();
};
if ((caret←v3784 == (* (( (ptr) ggData←v3812)+13) ))) {
SOURCE(1322, 35)
{
word x11;
word x13;
*(float*)&leftOffset←v4752 = (
x11 = (* (ptr) &fc10 ), *(float*)&x11
) / (
x13 = (* (ptr) &fc12 ), *(float*)&x13
);
};
SOURCE(1359, 24)
rightOffset←v4780 = leftOffset←v4752;
SOURCE(1385, 15)
topOffset←v4808 = (* (ptr) &fc7 );
SOURCE(1402, 34)
bottomOffset←v4836 = (* (ptr) &fc14 );
}
else {
if ((caret←v3784 == (* (( (ptr) ggData←v3812)+14) ))) {
SOURCE(1466, 36)
{
word x16;
word x17;
*(float*)&leftOffset←v4752 = (
x16 = (* (ptr) &fc15 ), *(float*)&x16
) / (
x17 = (* (ptr) &fc12 ), *(float*)&x17
);
};
SOURCE(1504, 24)
rightOffset←v4780 = leftOffset←v4752;
SOURCE(1530, 36)
{
word x18;
word x19;
*(float*)&topOffset←v4808 = (
x18 = (* (ptr) &fc15 ), *(float*)&x18
) / (
x19 = (* (ptr) &fc12 ), *(float*)&x19
);
};
SOURCE(1568, 24)
bottomOffset←v4836 = topOffset←v4808;
}
else {
SOURCE(1608, 11)
return(0);
};
};
SOURCE(1621, 29)
{
word x20;
word x21;
*(float*)&leftOffset←v4752 = (
x20 = leftOffset←v4752, *(float*)&x20
) + (
x21 = fudge←v4724, *(float*)&x21
);
};
SOURCE(1652, 31)
{
word x22;
word x23;
*(float*)&rightOffset←v4780 = (
x22 = rightOffset←v4780, *(float*)&x22
) + (
x23 = fudge←v4724, *(float*)&x23
);
};
SOURCE(1685, 33)
{
word x24;
word x25;
*(float*)&bottomOffset←v4836 = (
x24 = bottomOffset←v4836, *(float*)&x24
) + (
x25 = fudge←v4724, *(float*)&x25
);
};
SOURCE(1720, 27)
{
word x26;
word x27;
*(float*)&topOffset←v4808 = (
x26 = topOffset←v4808, *(float*)&x26
) + (
x27 = fudge←v4724, *(float*)&x27
);
};
SOURCE(1749, 141)
{
word pd28;
word x29;
word x30;
float tf31;
word x32;
word x33;
float tf34;
word x35;
word x36;
float tf37;
word x38;
word x39;
float tf40;
pd28 = (* (( (ptr) (* (( (ptr) gf←c7876)+34)/* var←c7684 */ ))+5) );
return((word) ( *( (fPt) ((* (ptr) pd28 ))))((
tf31 = (
x29 = (* (( (ptr) caret←v3784)+1) ), *(float*)&x29
) - (
x30 = leftOffset←v4752, *(float*)&x30
), *(word*)&tf31
), (
tf34 = (
x32 = (* (( (ptr) caret←v3784)+2) ), *(float*)&x32
) - (
x33 = bottomOffset←v4836, *(float*)&x33
), *(word*)&tf34
), (
tf37 = (
x35 = (* (( (ptr) caret←v3784)+1) ), *(float*)&x35
) + (
x36 = rightOffset←v4780, *(float*)&x36
), *(word*)&tf37
), (
tf40 = (
x38 = (* (( (ptr) caret←v3784)+2) ), *(float*)&x38
) + (
x39 = topOffset←v4808, *(float*)&x39
), *(word*)&tf40
), 0, 0, pd28));
};
}
static void SitOn←P360(caret←v3916, chair←v3944)
word caret←v3916;
word chair←v3944;
{
/* SitOn: */
SOURCE(1896, 87)
SOURCE(1964, 19)
(* (( (ptr) caret←v3916)+5) ) = chair←v3944;
}
static word GetChair←P420(caret←v4004)
word caret←v4004;
{
word chair←v4048;
/* GetChair: */
SOURCE(1989, 93)
SOURCE(1989, 93)
chair←v4048 = 0;
SOURCE(2063, 19)
chair←v4048 = (* (( (ptr) caret←v4004)+5) );
SOURCE(1989, 93)
return(chair←v4048);
}
static word SittingOnEnd←P480(caret←v4108)
word caret←v4108;
{
register ptr gf←c7908 = (ptr) &globalframe;
word var←c4152;
/* SittingOnEnd: */
SOURCE(2088, 151)
SOURCE(2148, 40)
if (((* (( (ptr) caret←v4108)+5) ) == 0)) {
SOURCE(2175, 13)
return(0);
};
SOURCE(2190, 49)
{
word pd41;
pd41 = (* (( (ptr) (* (( (ptr) gf←c7908)+35)/* var←c7748 */ ))+74) );
return((word) ( *( (fPt) ((* (ptr) pd41 ))))((* ((( (ptr) caret←v4108)+5)) ), pd41));
};
}
static void NoAttractor←P540(caret←v4212)
word caret←v4212;
{
/* NoAttractor: */
SOURCE(2245, 65)
SOURCE(2289, 21)
(* (( (ptr) caret←v4212)+6) ) = 0;
}
static void SetAttractor←P600(caret←v4272, point←v4300, normal←v4328, attractor←v4356)
word caret←v4272;
W2 point←v4300;
W2 normal←v4328;
word attractor←v4356;
{
/* SetAttractor: */
SOURCE(2316, 187)
SOURCE(2411, 19)
(* (ptr) caret←v4272 ) = 1;
SOURCE(2432, 19)
(* (W2Pt) (( (ptr) caret←v4272)+1) ) = point←v4300;
SOURCE(2453, 21)
(* (W2Pt) (( (ptr) caret←v4272)+3) ) = normal←v4328;
SOURCE(2476, 27)
(* (( (ptr) caret←v4272)+6) ) = attractor←v4356;
}
static word GetAttractor←P660(caret←v4432)
word caret←v4432;
{
word attractor←v4476;
/* GetAttractor: */
SOURCE(2509, 101)
SOURCE(2509, 101)
attractor←v4476 = 0;
SOURCE(2583, 27)
attractor←v4476 = (* (( (ptr) caret←v4432)+6) );
SOURCE(2509, 101)
return(attractor←v4476);
}
static void GetPoint←P720(formal←c053, caret←v4548)
word formal←c053;
word caret←v4548;
{
W2 point←v4592;
/* GetPoint: */
SOURCE(2616, 83)
SOURCE(2680, 19)
point←v4592 = (* (W2Pt) (( (ptr) caret←v4548)+1) );
/* removed tail goto */
(* (W2Pt) formal←c053 ) = point←v4592;
return;
}
static void GetNormal←P780(formal←c056, caret←v4652)
word formal←c056;
word caret←v4652;
{
W2 normal←v4696;
/* GetNormal: */
SOURCE(2705, 88)
SOURCE(2772, 21)
normal←v4696 = (* (W2Pt) (( (ptr) caret←v4652)+3) );
/* removed tail goto */
(* (W2Pt) formal←c056 ) = normal←v4696;
return;
}
/* file: GGCaretImpl, module: GGCaretImpl, compiled at: February 5, 1993 1:58:23 pm PST */
extern void XR←install←GGCaretImpl() {
NoName←Q840();
}
extern void XR←run←GGCaretImpl() { XR←Start(&globalframe); }