/* Generated with C2C (Cedar To C)*/
/* Copyright (C) 1993 by Xerox Corporation.  All rights reserved. */
/* time: March 10, 1993 10:56:47 am PST */
/* C2C version: February 24, 1993 (sun4) */
/* ref-counting: off */
/* file: XlFontOpsImpl, module: XlFontOpsImpl */ 
/* switches: bcfhklnouw */ 
#include <cedar/InstallationSupport.h>
#include <cedar/CedarExtra.h>
#define XRM←BITAND(x, y) (((word)(x)) & ((word)(y)))
static char versionStamp[] = "@(#)mob←version [2527907169,1062428210] XlFontOpsImpl";
typedef unsigned word, *ptr;
typedef unsigned char byte, *bPt;
typedef unsigned short half, *hPt;
typedef word (*fPt)();
typedef struct {word f0, f1, f2, f3, f4, f5, f6, f7;} W8;
typedef struct {W8 f; word r;} W9;
typedef struct {word f0, f1;} W2;
typedef struct {word f0, f1, f2;} W3;
typedef W3 *W3Pt;
#define SOURCE(p, l) /* source p, l */
#define SGNCK(i) ((int) (word) (i) < 0 ? XR←RaiseArithmeticFault(): i )
#define BCK(idx, lim) ( ((unsigned) idx) >= ((unsigned) lim) ? (XR←RaiseBoundsFault()) : (idx) )
#define IOP2(op, x, y)  ( (word) ((x) op (y)) )
#define MAX(cast, x, y)  ( ( cast x) > ( cast y) ? (x) : (y) )
static void NoName←Q780();
static void XlFontOpsImpl←P0();
static word Init←P60();
static void InvalidateDB←P120();
static word NiceOpenFont←P180();
static word NoName←Q840();
static word GetDefaultFont←P240();
static word Each←P480();
static void QueryPosInfo←P300();
static void FindIdx←P420();
static void NoName←Q900();
static struct {unsigned f; char r[4];} string1 = {65540, "\251\000\000"};
static struct {unsigned f; char r[4];} string2 = {131076, "\216\251\000"};
static struct {unsigned f; char r[4];} string3 = {65537, "\001\000\000"};
static struct {unsigned f; char r[16];} string4 = {917520, "\216\257\300\363\223\326\161\300\017\164\046\072\104\350\000"};
static struct {unsigned f; char r[4];} string5 = {65540, "\242\000\000"};
static struct {unsigned f; char r[24];} string6 = {1376280, "\216\211\010\007\106\157\156\164\122\145\160\300\351\276\264\273\300\115\104\320\264\000\000"};
static struct {unsigned f; char r[44];} string7 = {2818092, "\216\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"};
static struct {unsigned f; char r[16];} string8 = {851984, "\257\300\363\223\326\161\300\017\164\046\072\104\304\000\000"};
static struct {unsigned f; char r[24];} string9 = {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[24];} string10 = {1310744, "(Cedar)(defaultFont)\000\000\000"};
static struct {unsigned f; char r[4];} string11 = {65540, "x\000\000"};
static struct {unsigned f; char r[8];} string12 = {262152, "8x13\000\000\000"};
static struct {unsigned f; char r[8];} string13 = {458760, "serif12"};
static struct {unsigned f; char r[36];} string14 = {2293796, "*adobe-helvetica-medium*normal--12*"};
static struct {unsigned f; char r[12];} string15 = {720908, "*helvetica*"};
static struct {unsigned f; char r[8];} string16 = {458760, "*times*"};
static struct {unsigned f; char r[4];} string17 = {65540, "*\000\000"};
static struct {unsigned f; char r[16];} string18 = {851984, "\257\300\226\254\315\141\300\077\123\136\062\100\164\000\000"};
static struct {unsigned f; char r[12];} string19 = {589833, "\006\002\040\001\100\110\004\100\377\000\000"};
static struct {unsigned f; char r[16];} string20 = {851984, "\257\300\047\312\257\214\300\225\003\264\361\100\150\000\000"};
static struct {unsigned f; char r[16];} string21 = {851984, "\257\300\363\223\326\161\300\017\164\046\072\100\150\000\000"};
static struct {unsigned f; char r[16];} string22 = {851984, "\257\300\351\276\264\273\300\115\104\320\264\100\164\000\000"};
static struct {unsigned f; char r[16];} string23 = {851984, "\257\300\264\326\343\056\300\340\077\001\214\100\150\000\000"};
static struct {unsigned f; char r[16];} string24 = {851984, "\257\300\337\070\153\303\300\227\216\321\214\100\150\000\000"};
static struct {unsigned f; char r[16];} string25 = {851984, "\257\300\213\047\253\045\300\271\243\347\012\100\150\000\000"};
static struct {
   word f0[26]; 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[7]; 
   } globalframe = {
   {0}, (word) FindIdx←P420, 0, (word) QueryPosInfo←P300, 
   0, (word) GetDefaultFont←P240, 0, (word) NiceOpenFont←P180, 
   0, (word) InvalidateDB←P120, 0, (word) Init←P60, 
   0, (word) XlFontOpsImpl←P0, {0}
   };

static void NoName←Q780()
   {
   register ptr gf←c083 =  (ptr) &globalframe;
   word var←c13480;
   (* (( (ptr) gf←c083)+9) ) = (word) XR←GetTypeIndexS((word) (&string1));
   (* (( (ptr) gf←c083)+10) ) = (word) XR←GetTypeIndex((word) &string2, 0, (word) &string3);
   (* (( (ptr) gf←c083)+11) ) = (word) XR←GetTypeIndex((word) &string4, 0, (word) &string3);
   (* (( (ptr) gf←c083)+12) ) = (word) XR←GetTypeIndexS((word) (&string5));
   (* (( (ptr) gf←c083)+14) ) = (word) XR←GetTypeIndex((word) &string6, 0, (word) &string3);
   (* (( (ptr) gf←c083)+16) ) = (word) XR←GetTypeIndex((word) &string7, 0, (word) &string3);
   (* (( (ptr) gf←c083)+17) ) = (word) XR←GetTypeIndex((word) &string8, 0, (word) &string9);
   (*  (ptr) (( (bPt) gf←c083)+72) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c083)+16) ), (word) &string10);
   (*  (ptr) (( (bPt) gf←c083)+76) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c083)+10) ), (word) &string11);
   (*  (ptr) (( (bPt) gf←c083)+80) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c083)+11) ), (word) &string12);
   (*  (ptr) (( (bPt) gf←c083)+84) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c083)+11) ), (word) &string13);
   (*  (ptr) (( (bPt) gf←c083)+88) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c083)+11) ), (word) &string14);
   (*  (ptr) (( (bPt) gf←c083)+92) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c083)+11) ), (word) &string15);
   (*  (ptr) (( (bPt) gf←c083)+96) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c083)+11) ), (word) &string16);
   (*  (ptr) (( (bPt) gf←c083)+100) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c083)+11) ), (word) &string17);
   (void) XR←DeclareGlobalFrame((word) "XlFontOpsImpl", &globalframe, (word) XR←GetTypeIndex((word) &string18, 0, (word) &string19)
      , (word) (( (bPt) gf←c083)+152)/* var←c12840 */ );
   var←c13480 = (word) XR←ImportInterface((word) "Customize", (word) XR←GetTypeIndexS((word) (&string20)), 19);
   (* (( (ptr) gf←c083)+43)/* var←c13032 */  ) = var←c13480;
   (void) XR←ImportProcS(var←c13480, 67634946);
   var←c13480 = (word) XR←ImportInterface((word) "Rope", (word) XR←GetTypeIndexS((word) (&string21)), 43);
   (* (( (ptr) gf←c083)+44)/* var←c13096 */  ) = var←c13480;
   (void) XR←ImportProcS(var←c13480, 67634434);
   (void) XR←ImportProcS(var←c13480, 67373569);
   (void) XR←ImportProcS(var←c13480, 67896323);
   (void) XR←ImportProcS(var←c13480, 67373313);
   var←c13480 = (word) XR←ImportInterface((word) "Xl", (word) XR←GetTypeIndexS((word) (&string22)), 218);
   (* (( (ptr) gf←c083)+41)/* var←c12936 */  ) = var←c13480;
   (void) XR←ImportProcS(var←c13480, 67658498);
   (void) XR←ImportProcS(var←c13480, 1336837);
   (void) XR←ImportProcS(var←c13480, 67901699);
   (void) XR←ImportProcS(var←c13480, 67919875);
   (void) XR←ImportProcS(var←c13480, 67639298);
   var←c13480 = (word) XR←ImportInterface((word) "XlDB", (word) XR←GetTypeIndexS((word) (&string23)), 4);
   (* (( (ptr) gf←c083)+40)/* var←c12904 */  ) = var←c13480;
   (void) XR←ImportProcS(var←c13480, 67371265);
   (void) XR←ImportProcS(var←c13480, 1049092);
   var←c13480 = (word) XR←ImportInterface((word) "XlDetails", (word) XR←GetTypeIndexS((word) (&string24)), 4);
   (* (( (ptr) gf←c083)+42)/* var←c12968 */  ) = var←c13480;
   var←c13480 = (word) XR←ExportInterface((word) "XlFontOps", (word) XR←GetTypeIndexS((word) (&string25)), 2);
   (* (( (ptr) gf←c083)+45)/* var←c13512 */  ) = var←c13480;
   (void) XR←ExportProcS(var←c13480, (word) (( (bPt) gf←c083)+120)/* var←c12712 */ , 67371009);
   (void) XR←ExportProcS(var←c13480, (word) (( (bPt) gf←c083)+112)/* var←c12680 */ , 202375428);
   }

static void XlFontOpsImpl←P0(formal←c024, formal←c023)
   word formal←c024;
   word formal←c023;
   {
   register ptr gf←c13544 =  (ptr) &globalframe;
   /* XlFontOpsImpl: */ 
SOURCE(71, 3638)
SOURCE(198, 25)
   (* (( (ptr) gf←c13544)+8)/* myKey←v2776 */  ) = XR←NewObject(4, (* (( (ptr) gf←c13544)+12) ));
   }

static word Init←P60(c←v5812, key←v5840)
   word c←v5812;
   word key←v5840;
   {
   register ptr gf←c13576 =  (ptr) &globalframe;
   word val←v5884;
   word rf←v3732;
   /* Init: */ 
SOURCE(226, 132)
SOURCE(226, 132)
   val←v5884 = (* (( (ptr) gf←c13576)+19) );
SOURCE(258, 36)
   rf←v3732 = XR←NewObject(4, (* (( (ptr) gf←c13576)+14) ));
SOURCE(296, 48)
   {
      word pd26;
      pd26 = (* (( (ptr) (* (( (ptr) gf←c13576)+40)/* var←c12904 */  ))+6) );
      (void) ( *( (fPt) ((*  (ptr) pd26 ))))(c←v5812, (word) (( (bPt) gf←c13576)+136)/* var←c12776 */ , 0, 0, pd26);
      };
SOURCE(346, 12)
   return(rf←v3732);
   }

static void InvalidateDB←P120(event←v5944, clientData←v5972, tq←v6000)
   word event←v5944;
   word clientData←v5972;
   word tq←v6000;
   {
   register ptr gf←c13608 =  (ptr) &globalframe;
   word rf←v3788;
   /* InvalidateDB: */ 
SOURCE(362, 140)
SOURCE(397, 71)
   {
      word pd27;
      pd27 = (* (( (ptr) (* (( (ptr) gf←c13608)+41)/* var←c12936 */  ))+28) );
      rf←v3788 = XR←Narrow((word) ( *( (fPt) ((*  (ptr) pd27 ))))((* (( (ptr) event←v5944)+2) ), (* (( (ptr) gf←c13608)+8)/* myKey←v2776 */  ), pd27)
         , (* (( (ptr) gf←c13608)+14) ));
      };
SOURCE(470, 32)
   if ((rf←v3788 != 0)) {
SOURCE(485, 17)
      (*  (ptr) rf←v3788 ) = 0;
      };
   }

static word NiceOpenFont←P180(formal←c0100, formal←c0101)
   word formal←c0100;
   word formal←c0101;
   {
   W9 var←c13640;
   /* declaration of c←v3064 skipped */ 
   /* declaration of name←v3092 skipped */ 
   register ptr gf←c13672 =  (ptr) &globalframe;
   word font←v3136;
   (* (( (ptr) &var←c13640)+4)/* c←v3064 */  ) = formal←c0100;
   (* (( (ptr) &var←c13640)+5)/* name←v3092 */  ) = formal←c0101;
   /* NiceOpenFont: */ 
SOURCE(509, 216)
SOURCE(509, 216)
   font←v3136 = 0;
SOURCE(604, 121)
SOURCE(606, 71)
   {
      /* declaration of var←c01 skipped */ 
      /* declaration of var←c02 skipped */ 
      (* (( (ptr) &var←c13640)+6)/* var←c01 */  ) = (*  (ptr) (* (( (ptr) (* (( (ptr) gf←c13672)+42)/* var←c12968 */  ))+4) ) );
      (* (( (ptr) &var←c13640)+7)/* var←c02 */  ) = (* (( (ptr) (* (( (ptr) gf←c13672)+41)/* var←c12936 */  ))+100) );
      {
         /* declaration of var←c03 skipped */ 
         {
            word var←c04;
            {
               word var←c094;
               var←c094 = (word) &var←c13640;
               var←c04 = (word) XR←Enable(( ((word)  (fPt) NoName←Q840) ), ( ((word)  (fPt) NoName←Q900) ), var←c094);
               };
            if ((var←c04 == 2)) {
               goto lab←L100000;
               };
            };
         font←v3136 = (* (( (ptr) &var←c13640)+8)/* var←c03 */  );
         };
      };
   goto lab←L100003;
   lab←L100000: ;
SOURCE(703, 20)
   return(0);
   lab←L100003: ;
SOURCE(509, 216)
   return(font←v3136);
   }

static word NoName←Q840(formal←c088)
   word formal←c088;
   {
SOURCE(606, 71)
   {
      word pd28;
      pd28 = (* (( (ptr) formal←c088)+7) );
      (* (( (ptr) formal←c088)+8) ) = (word) ( *( (fPt) ((*  (ptr) pd28 ))))((* (( (ptr) formal←c088)+4) ), (* (( (ptr) formal←c088)+5)
          ), (* (( (ptr) formal←c088)+6) ), pd28);
      };
   return(0);
   }

static word GetDefaultFont←P240(formal←c0102)
   word formal←c0102;
   {
   W8 var←c13704;
   /* declaration of c←v3196 skipped */ 
   register ptr gf←c13736 =  (ptr) &globalframe;
   /* declaration of font←v3240 skipped */ 
   /* declaration of var←c13000 skipped */ 
   word rf←v3844;
   var←c13704.f4/* c←v3196 */  = formal←c0102;
   /* GetDefaultFont: */ 
SOURCE(729, 1121)
   {
      word tmpAddr29;
      tmpAddr29 = (word) (( (ptr) &var←c13704)+6)/* var←c13000 */ ;
      (*  (ptr) tmpAddr29 ) = ( ((word)  (fPt) Each←P480) );
      (* (( (ptr) tmpAddr29) + 1) ) = 1;
      };
SOURCE(729, 1121)
   var←c13704.f5/* font←v3240 */  = 0;
SOURCE(804, 69)
   {
      word pd30;
      pd30 = (* (( (ptr) (* (( (ptr) gf←c13736)+41)/* var←c12936 */  ))+29) );
      rf←v3844 = XR←Narrow((word) ( *( (fPt) ((*  (ptr) pd30 ))))(var←c13704.f4/* c←v3196 */ , (* (( (ptr) gf←c13736)+8)/* myKey←v2776 */  ), (word) (
               ( (bPt) gf←c13736)+144)/* var←c12808 */ , pd30), (* (( (ptr) gf←c13736)+14) ));
      };
SOURCE(1003, 35)
   if ((rf←v3844 == 0)) {
SOURCE(1018, 20)
      return(0);
      };
SOURCE(1040, 10)
   var←c13704.f5/* font←v3240 */  = (*  (ptr) rf←v3844 );
SOURCE(1052, 798)
   if ((var←c13704.f5/* font←v3240 */  == 0)) {
SOURCE(1077, 776)
      {
         word dbx←v4076;
         word fontName←v4104 = 0;
SOURCE(1080, 49)
         {
            word pd31;
            pd31 = (* (( (ptr) (* (( (ptr) gf←c13736)+40)/* var←c12904 */  ))+5) );
            dbx←v4076 = (word) ( *( (fPt) ((*  (ptr) pd31 ))))(var←c13704.f4/* c←v3196 */ , pd31);
            };
SOURCE(1159, 98)
         {
            word var←c13064;
            {
               word pd32;
               pd32 = (* (( (ptr) (* (( (ptr) gf←c13736)+43)/* var←c13032 */  ))+11) );
               var←c13064 = (word) ( *( (fPt) ((*  (ptr) pd32 ))))(dbx←v4076, (* (( (ptr) gf←c13736)+18) ), pd32);
               };
            if ((var←c13064 == 0)) {
               goto lab←L100004;
               };
            {
               word tc33;
               if (((* (( (ptr) gf←c13736)+17) ) == XR←GetReferentType(var←c13064))) {
                  tc33 =  (word) ( (unsigned) (*(int*)var←c13064<0) == 0);
                  }
               else {
                  tc33 =  (word) 0;
                  };
               if (tc33) {
                  {
                     word r←v4148;
                     r←v4148 = var←c13064;
SOURCE(1245, 12)
                     fontName←v4104 = r←v4148;
                     };
                  }
               else {
                  lab←L100004: ;
                  };
               };
            };
SOURCE(1274, 48)
         {
            word pd34;
            pd34 = (* (( (ptr) (* (( (ptr) gf←c13736)+44)/* var←c13096 */  ))+13) );
            if ((0 != (word) ( *( (fPt) ((*  (ptr) pd34 ))))(fontName←v4104, pd34))) {
SOURCE(1305, 17)
               fontName←v4104 = (* (( (ptr) gf←c13736)+20) );
               };
            };
SOURCE(1324, 24)
         {
            word var←c13128;
            var←c13128 = (word) Each←P480(fontName←v4104, 0, (word) (( (bPt) &var←c13704)+24)/* var←c13000 */ );
            };
SOURCE(1350, 413)
         if ((var←c13704.f5/* font←v3240 */  == 0)) {
SOURCE(1377, 60)
            {
               word pd35;
               pd35 = (* (( (ptr) (* (( (ptr) gf←c13736)+44)/* var←c13096 */  ))+8) );
               if ((0 == (word) ( *( (fPt) ((*  (ptr) pd35 ))))(fontName←v4104, (* (( (ptr) gf←c13736)+20) ), 1, pd35))) {
SOURCE(1415, 22)
                  {
                     word var←c13160;
                     var←c13160 = (word) Each←P480((* (( (ptr) gf←c13736)+20) ), 0, (word) (( (bPt) &var←c13704)+24)/* var←c13000 */ );
                     };
                  };
               };
SOURCE(1439, 50)
            if ((var←c13704.f5/* font←v3240 */  == 0)) {
SOURCE(1464, 25)
               {
                  word var←c13192;
                  var←c13192 = (word) Each←P480((* (( (ptr) gf←c13736)+21) ), 0, (word) (( (bPt) &var←c13704)+24)/* var←c13000 */ );
                  };
               };
SOURCE(1491, 88)
            if ((var←c13704.f5/* font←v3240 */  == 0)) {
SOURCE(1516, 63)
               {
                  word pd36;
                  pd36 = (* (( (ptr) (* (( (ptr) gf←c13736)+41)/* var←c12936 */  ))+106) );
                  (void) ( *( (fPt) ((*  (ptr) pd36 ))))(var←c13704.f4/* c←v3196 */ , (word) (( (bPt) &var←c13704)+24)/* var←c13000 */ , (* (
                        ( (ptr) gf←c13736)+22) ), 3, 0, pd36);
                  };
               };
SOURCE(1581, 64)
            if ((var←c13704.f5/* font←v3240 */  == 0)) {
SOURCE(1606, 39)
               {
                  word pd37;
                  pd37 = (* (( (ptr) (* (( (ptr) gf←c13736)+41)/* var←c12936 */  ))+106) );
                  (void) ( *( (fPt) ((*  (ptr) pd37 ))))(var←c13704.f4/* c←v3196 */ , (word) (( (bPt) &var←c13704)+24)/* var←c13000 */ , (* (
                        ( (ptr) gf←c13736)+23) ), 3, 0, pd37);
                  };
               };
SOURCE(1647, 60)
            if ((var←c13704.f5/* font←v3240 */  == 0)) {
SOURCE(1672, 35)
               {
                  word pd38;
                  pd38 = (* (( (ptr) (* (( (ptr) gf←c13736)+41)/* var←c12936 */  ))+106) );
                  (void) ( *( (fPt) ((*  (ptr) pd38 ))))(var←c13704.f4/* c←v3196 */ , (word) (( (bPt) &var←c13704)+24)/* var←c13000 */ , (* (
                        ( (ptr) gf←c13736)+24) ), 3, 0, pd38);
                  };
               };
SOURCE(1709, 54)
            if ((var←c13704.f5/* font←v3240 */  == 0)) {
SOURCE(1734, 29)
               {
                  word pd39;
                  pd39 = (* (( (ptr) (* (( (ptr) gf←c13736)+41)/* var←c12936 */  ))+106) );
                  (void) ( *( (fPt) ((*  (ptr) pd39 ))))(var←c13704.f4/* c←v3196 */ , (word) (( (bPt) &var←c13704)+24)/* var←c13000 */ , (* (
                        ( (ptr) gf←c13736)+25) ), 5, 0, pd39);
                  };
               };
            };
SOURCE(1768, 82)
         if ((var←c13704.f5/* font←v3240 */  != 0)) {
SOURCE(1840, 10)
            (*  (ptr) rf←v3844 ) = var←c13704.f5/* font←v3240 */ ;
            };
         };
      };
SOURCE(729, 1121)
   return(var←c13704.f5/* font←v3240 */ );
   }

static word Each←P480(name←v3960, data←v3988, formal←c13768)
   word name←v3960;
   word data←v3988;
   word formal←c13768;
   {
   word quit←v4048;
   formal←c13768 = (formal←c13768 - 24);
   /* Each: */ 
SOURCE(875, 125)
SOURCE(946, 28)
   (* (( (ptr) formal←c13768)+5) ) = (word) NiceOpenFont←P180((* (( (ptr) formal←c13768)+4) ), name←v3960);
SOURCE(976, 24)
   quit←v4048 =  (unsigned) ((* (( (ptr) formal←c13768)+5) ) != 0);
SOURCE(875, 125)
   return(quit←v4048);
   }

static void QueryPosInfo←P300(formal←c057, c←v3300, font←v3328, text←v3356, x←v3384)
   word formal←c057;
   word c←v3300;
   word font←v3328;
   word text←v3356;
   word x←v3384;
   {
   register ptr gf←c13800 =  (ptr) &globalframe;
   W3 p←v3428;
   word fi←v4192;
   /* QueryPosInfo: */ 
SOURCE(1860, 222)
SOURCE(1860, 222)
   p←v3428.f0 = 0;
   p←v3428.f1 = 0;
   p←v3428.f2 = 0;
SOURCE(1986, 55)
   {
      word pd40;
      pd40 = (* (( (ptr) (* (( (ptr) gf←c13800)+41)/* var←c12936 */  ))+103) );
      fi←v4192 = (word) ( *( (fPt) ((*  (ptr) pd40 ))))(c←v3300, font←v3328, pd40);
      };
SOURCE(2043, 39)
   if ((fi←v4192 != 0)) {
SOURCE(2058, 24)
      (void) FindIdx←P420((word) &p←v3428, fi←v4192, text←v3356, x←v3384);
      };
   /* removed tail goto */ 
   (*  (W3Pt) formal←c057 ) = p←v3428;
   return;
   }

static void FindIdx←P420(formal←c076, fi←v3592, text←v3620, xPos←v3648)
   word formal←c076;
   word fi←v3592;
   word text←v3620;
   word xPos←v3648;
   {
   register ptr gf←c13832 =  (ptr) &globalframe;
   W3 pi←v3704;
   word charPos←v4276 = 0;
   word overallRight←v4304 = 0;
   word overallWidth←v4332 = 0;
   word lastOverallRight←v4360 = 0;
   word firstCol←v4388;
   word numCols←v4416;
   word length←v4444;
   word idx←v4472;
   /* FindIdx: */ 
SOURCE(2272, 1437)
SOURCE(2272, 1437)
   pi←v3704.f0 = 0;
   pi←v3704.f1 = 0;
   pi←v3704.f2 = 0;
SOURCE(2459, 33)
   {
      word idx41;
      firstCol←v4388 = (
         idx41 = (* (( (ptr) fi←v3592)+4) ),
         SGNCK(idx41)
         );
      };
SOURCE(2494, 43)
   numCols←v4416 = (((* (( (ptr) fi←v3592)+5) ) - firstCol←v4388) + 1);
SOURCE(2539, 31)
   {
      word pd42;
      pd42 = (* (( (ptr) (* (( (ptr) gf←c13832)+44)/* var←c13096 */  ))+14) );
      length←v4444 = (word) ( *( (fPt) ((*  (ptr) pd42 ))))(text←v3620, pd42);
      };
SOURCE(2582, 1127)
   lab←L100009: ;
   {
      word var←c13256;
      word attributes←v12600;
SOURCE(2585, 65)
      if (( (int)charPos←v4276 >=  (int)length←v4444)) {
SOURCE(2609, 41)
         pi←v3704.f0 = charPos←v4276;
         pi←v3704.f1 = charPos←v4276;
         pi←v3704.f2 = overallRight←v4304;
         goto lab←L100006;
         };
SOURCE(2652, 36)
      {
         word pd43;
         pd43 = (* (( (ptr) (* (( (ptr) gf←c13832)+44)/* var←c13096 */  ))+9) );
         idx←v4472 = (word) ( *( (fPt) ((*  (ptr) pd43 ))))(text←v3620, charPos←v4276, pd43);
         };
SOURCE(2690, 20)
      idx←v4472 = (idx←v4472 - firstCol←v4388);
SOURCE(2712, 225)
      {
         word tc45;
         if (( (int)idx←v4472 <  (int)0)) { goto then044;};
         if (( (int)idx←v4472 >=  (int)numCols←v4416)) { goto then044;};
         if ( ( ((* (( (ptr) fi←v3592)+14) ) != 0) ? ( (int)(*  (ptr) (* (( (ptr) fi←v3592)+14) ) ) >  (int)idx←v4472) : 0 ) ) {
            {
               word var←c095;
               word var←c13288;
               {
                  word limit46;
                  var←c13288 = (* (( (ptr) fi←v3592)+14) );
                  var←c095 = (var←c095 & 4294901760) | ((word) ((* (( (hPt) (( (W3Pt) (( (ptr) var←c13288)+1))+(
/*1*/      limit46 = (*  (ptr) var←c13288 ),
/*1*/      BCK(idx←v4472, limit46)
/*1*/      )))+5) )));
                  };
               attributes←v12600 =  (unsigned) ( (((unsigned)var←c095 << 16) >> 16) );
               };
SOURCE(2199, 69)
            var←c13256 =  (unsigned) ((word) XRM←BITAND(attributes←v12600, 16384) == 0);
            tc45 =  (word) (0 == var←c13256);
            }
         else {
            tc45 =  (word) 0;
            };
         if (tc45) {
            then044: ;
SOURCE(2841, 20)
            idx←v4472 = (* (( (ptr) fi←v3592)+6) );
SOURCE(2863, 20)
            idx←v4472 = (idx←v4472 - firstCol←v4388);
SOURCE(2885, 52)
            if (( (int)idx←v4472 <  (int)0) || ( (int)idx←v4472 >=  (int)numCols←v4416)) {
SOURCE(2918, 19)
               charPos←v4276 = (charPos←v4276 + 1);
SOURCE(2939, 4)
               goto lab←L100009;
               };
            };
         };
SOURCE(2981, 470)
      {
         word p←v4516;
         word var←c13352;
         word attributes←v12524;
SOURCE(3027, 195)
         if ( ( ((* (( (ptr) fi←v3592)+14) ) != 0) ? ( (int)idx←v4472 <  (int)(*  (ptr) (* (( (ptr) fi←v3592)+14) ) )) : 0 ) ) {
SOURCE(3079, 103)
            p←v4516 = (((* (( (ptr) fi←v3592)+14) ) + IOP2( * ,  (int)idx←v4472,  (int)12)) + 4);
            }
         else {
SOURCE(3182, 40)
            p←v4516 = (*  (ptr) fi←v3592 );
            };
SOURCE(3224, 57)
         attributes←v12524 =  (unsigned) (* (( (hPt) p←v4516)+5) );
SOURCE(2199, 69)
         var←c13352 =  (unsigned) ((word) XRM←BITAND(attributes←v12524, 16384) == 0);
         if ((0 == var←c13352)) {
SOURCE(3262, 19)
            charPos←v4276 = (charPos←v4276 + 1);
SOURCE(3283, 4)
            goto lab←L100009;
            };
SOURCE(3314, 31)
         lastOverallRight←v4360 = overallRight←v4304;
SOURCE(3347, 61)
         {
            word x47;
            overallRight←v4304 = (x47 = (overallWidth←v4332 +  (int) ( short )(* (( (hPt) p←v4516)+1) )),
               MAX((int)(word), overallRight←v4304, x47));
            };
SOURCE(3410, 39)
         overallWidth←v4332 = (overallWidth←v4332 +  (int) ( short )(* (( (hPt) p←v4516)+2) ));
         };
SOURCE(3454, 19)
      charPos←v4276 = (charPos←v4276 + 1);
SOURCE(3475, 234)
      if (( (int)overallRight←v4304 >=  (int)xPos←v3648)) {
SOURCE(3504, 205)
         if (( (int)(overallRight←v4304 - xPos←v3648) <  (int)(xPos←v3648 - lastOverallRight←v4360))) {
SOURCE(3557, 76)
            pi←v3704.f0 = (charPos←v4276 - 1);
            pi←v3704.f1 = charPos←v4276;
            pi←v3704.f2 = overallRight←v4304;
            goto lab←L100006;
            }
         else {
SOURCE(3633, 76)
            pi←v3704.f0 = (charPos←v4276 - 1);
            pi←v3704.f1 = (charPos←v4276 - 1);
            pi←v3704.f2 = lastOverallRight←v4360;
            goto lab←L100006;
            };
         };
      };
   goto lab←L100009;
   lab←L100006: ;
   (*  (W3Pt) formal←c076 ) = pi←v3704;
   return;
   }

static void NoName←Q900(formal←c082, formal←c200000, formal←c200001, formal←c200002, formal←c200003)
   word formal←c082;
   word formal←c200000;
   word formal←c200001;
   word formal←c200002;
   word formal←c200003;
   {
   register ptr gf←c093 =  (ptr) &globalframe;
   if ((formal←c200001 == (* (( (ptr) (* (( (ptr) gf←c093)+41)/* var←c12936 */  ))+4) ))) {
      {
         word err←v7276;
         err←v7276 = (*  (ptr) formal←c200003 );
SOURCE(677, 10)
         (*  (ptr) formal←c082 ) = 2;
         (* (( (ptr) formal←c082)+1) ) = 2;
         return;
         };
      };
   (*  (ptr) formal←c082 ) = 0;
   (* (( (ptr) formal←c082)+1) ) = 0;
   return;
   }

/* file: XlFontOpsImpl, module: XlFontOpsImpl, compiled at: March 10, 1993 10:56:46 am PST */ 
extern void XR←install←XlFontOpsImpl() {
   NoName←Q780();
   }
extern void XR←run←XlFontOpsImpl() { XR←Start(&globalframe); }