/* Generated with C2C (Cedar To C)*/
/* Copyright (C) 1992 by Xerox Corporation.  All rights reserved. */
/* time: February 27, 1992 5:59:49 pm PST */
/* C2C version: October 16, 1990 (native) */
/* ref-counting: off */
/* file: TiogaAccessViewersImpl, module: TiogaAccessViewersImpl */ 
/* switches: bcfhklnouw */ 
#include <cedar/InstallationSupport.h>
#include <cedar/CedarExtra.h>
static char versionStamp[] = "@(#)mob←version [4017404578,1123834637] TiogaAccessViewersImpl";
typedef unsigned word, *ptr;
typedef unsigned char byte, *bPt;
typedef unsigned short half, *hPt;
typedef struct {word f0, f1, f2, f3;} W4;
typedef struct {word f0, f1;} W2;
typedef W2 *W2Pt;
typedef word (*fPt)();
typedef W4 *W4Pt;
typedef struct {word f0, f1, f2, f3, f4, f5, f6;} W7;
typedef struct {word f0, f1, f2, f3, f4, f5, f6, f7;} W8;
typedef struct {word f0, f1, f2, f3, f4, f5;} W6;
typedef struct {word f0, f1, f2;} W3;
typedef struct {W8 f; W3 r;} W11;
typedef struct {W8 f; W8 r;} W16;
typedef struct {W16 f; W4 r;} W20;
typedef W8 *W8Pt;
#define SOURCE(p, l) /* source p, l */
#define MAX(cast, x, y)  ( ( cast x) > ( cast y) ? (x) : (y) )
#define MIN(cast, x, y)  ( ( cast x) < ( cast y) ? (x) : (y) )
static void NoName←Q1272();
static void TiogaAccessViewersImpl←P0();
static void SelectionSpan←P60();
static void TakeNodeSubstr←P120();
static void CopyNodeProps←P180();
static word CopyPropAction←P660();
static void CopySelection←P240();
static void LockedCopySelection←P720();
static word FromSelection←P300();
static word CopyDoc←P360();
static word FromViewer←P420();
static void SetSelectionFromSpan←P480();
static void WriteSelection←P540();
static void action←P876();
static void DoTranspose←P984();
static word NoName←Q1332();
static void WriteViewer←P600();
static void action←P1044();
static void NoName←Q1392();
static struct {unsigned f; char r[16];} string1 = {851984, "\257\300\343\357\262\137\300\144\166\356\317\100\164\000\000"};
static struct {unsigned f; char r[16];} string2 = {851981, "\006\005\000\001\004\001\054\001\070\001\100\114\001\000\000"};
static struct {unsigned f; char r[16];} string3 = {917520, "\216\257\300\363\223\326\161\300\017\164\046\072\104\350\000"};
static struct {unsigned f; char r[4];} string4 = {65537, "\001\000\000"};
static struct {unsigned f; char r[4];} string5 = {131076, "\216\251\000"};
static struct {unsigned f; char r[16];} string6 = {851984, "TiogaDocument\000\000"};
static struct {unsigned f; char r[16];} string7 = {786448, "Can't do it.\000\000\000"};
static struct {unsigned f; char r[16];} string8 = {851984, "\257\300\357\164\272\242\300\102\374\133\015\100\164\000\000"};
static struct {unsigned f; char r[4];} string9 = {196611, "\004X\000"};
static struct {unsigned f; char r[16];} string10 = {851984, "\257\300\004\173\141\246\300\255\256\170\002\100\150\000\000"};
static struct {unsigned f; char r[16];} string11 = {851984, "\257\300\355\261\315\203\300\373\164\347\341\100\150\000\000"};
static struct {unsigned f; char r[16];} string12 = {851984, "\257\300\074\270\063\045\300\023\342\016\224\100\150\000\000"};
static struct {unsigned f; char r[16];} string13 = {851984, "\257\300\013\141\323\354\300\341\005\243\127\100\150\000\000"};
static struct {unsigned f; char r[16];} string14 = {851984, "\257\300\146\107\314\260\300\352\117\305\000\100\150\000\000"};
static struct {unsigned f; char r[16];} string15 = {851984, "\257\300\343\112\327\166\300\041\341\335\211\100\150\000\000"};
static struct {unsigned f; char r[16];} string16 = {851984, "\257\300\056\236\052\251\300\206\175\213\250\100\150\000\000"};
static struct {unsigned f; char r[16];} string17 = {851984, "\257\300\354\332\367\333\300\361\203\205\173\100\150\000\000"};
static struct {unsigned f; char r[16];} string18 = {851984, "\257\300\234\060\361\073\300\103\025\207\123\100\150\000\000"};
static struct {unsigned f; char r[16];} string19 = {851984, "\257\300\261\010\310\246\300\337\340\027\051\100\150\000\000"};
static struct {unsigned f; char r[16];} string20 = {851984, "\257\300\042\224\360\026\300\243\254\175\360\100\150\000\000"};
static struct {unsigned f; char r[16];} string21 = {851984, "\257\300\160\267\337\115\300\374\200\221\327\100\150\000\000"};
static struct {
   word f0[13]; 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; word f34[13]; 
   } globalframe = {
   {0}, (word) WriteViewer←P600, 0, (word) WriteSelection←P540, 
   0, (word) SetSelectionFromSpan←P480, 0, (word) FromViewer←P420, 
   0, (word) CopyDoc←P360, 0, (word) FromSelection←P300, 
   0, (word) CopySelection←P240, 0, (word) CopyNodeProps←P180, 
   0, (word) TakeNodeSubstr←P120, 0, (word) SelectionSpan←P60, 
   0, (word) TiogaAccessViewersImpl←P0, {0}
   };

static void NoName←Q1272()
   {
   register ptr gf←c0114 =  (ptr) &globalframe;
   word var←c19008;
   (* (( (ptr) gf←c0114)+4) ) = (word) XR←GetTypeIndex((word) &string1, 0, (word) &string2);
   (* (( (ptr) gf←c0114)+7) ) = (word) XR←GetTypeIndex((word) &string3, 0, (word) &string4);
   (* (( (ptr) gf←c0114)+9) ) = (word) XR←GetTypeIndex((word) &string5, 0, (word) &string4);
   (*  (ptr) (( (bPt) gf←c0114)+44) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0114)+9) ), (word) &string6);
   (*  (ptr) (( (bPt) gf←c0114)+48) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0114)+7) ), (word) &string7);
   (void) XR←DeclareGlobalFrame((word) "TiogaAccessViewersImpl", &globalframe, (word) XR←GetTypeIndex((word) &string8, 0, (word) &string9)
      , (word) (( (bPt) gf←c0114)+132)/* var←c17920 */ );
   var←c19008 = (word) XR←ImportInterface((word) "EditSpan", (word) XR←GetTypeIndexS((word) (&string10)), 23);
   (* (( (ptr) gf←c0114)+44)/* var←c18880 */  ) = var←c19008;
   (void) XR←ImportProcS(var←c19008, 539756549);
   var←c19008 = (word) XR←ImportInterface((word) "EditSpanSupport", (word) XR←GetTypeIndexS((word) (&string11)), 27);
   (* (( (ptr) gf←c0114)+40)/* var←c18336 */  ) = var←c19008;
   (void) XR←ImportProcS(var←c19008, 269487361);
   var←c19008 = (word) XR←ImportInterface((word) "MessageWindow", (word) XR←GetTypeIndexS((word) (&string12)), 7);
   (* (( (ptr) gf←c0114)+42)/* var←c18816 */  ) = var←c19008;
   (void) XR←ImportProcS(var←c19008, 512);
   (void) XR←ImportProcS(var←c19008, 524546);
   var←c19008 = (word) XR←ImportInterface((word) "TEditInput", (word) XR←GetTypeIndexS((word) (&string13)), 44);
   (* (( (ptr) gf←c0114)+43)/* var←c18848 */  ) = var←c19008;
   var←c19008 = (word) XR←ImportInterface((word) "TEditInputOps", (word) XR←GetTypeIndexS((word) (&string14)), 66);
   (* (( (ptr) gf←c0114)+39)/* var←c18304 */  ) = var←c19008;
   (void) XR←ImportProcS(var←c19008, 268545);
   (void) XR←ImportProcS(var←c19008, 524290);
   var←c19008 = (word) XR←ImportInterface((word) "TEditSelection", (word) XR←GetTypeIndexS((word) (&string15)), 68);
   (* (( (ptr) gf←c0114)+35)/* var←c17952 */  ) = var←c19008;
   (void) XR←ImportProcS(var←c19008, 1316101);
   (void) XR←ImportProcS(var←c19008, 67386625);
   var←c19008 = (word) XR←ImportInterface((word) "TiogaAccess", (word) XR←GetTypeIndexS((word) (&string16)), 32);
   (* (( (ptr) gf←c0114)+41)/* var←c18496 */  ) = var←c19008;
   (void) XR←ImportProcS(var←c19008, 532226);
   (void) XR←ImportProcS(var←c19008, 67634178);
   var←c19008 = (word) XR←ImportInterface((word) "ViewerOps", (word) XR←GetTypeIndexS((word) (&string17)), 43);
   (* (( (ptr) gf←c0114)+45)/* var←c18976 */  ) = var←c19008;
   (void) XR←ImportProcS(var←c19008, 1051652);
   var←c19008 = (word) XR←ImportInterface((word) "NodeProps", (word) XR←GetTypeIndexS((word) (&string18)), 28);
   (* (( (ptr) gf←c0114)+38)/* var←c18176 */  ) = var←c19008;
   (void) XR←ImportProcS(var←c19008, 67639042);
   (void) XR←ImportProcS(var←c19008, 786435);
   (void) XR←ImportProcS(var←c19008, 68158212);
   var←c19008 = (word) XR←ImportInterface((word) "TextEdit", (word) XR←GetTypeIndexS((word) (&string19)), 39);
   (* (( (ptr) gf←c0114)+37)/* var←c18080 */  ) = var←c19008;
   (void) XR←ImportProcS(var←c19008, 67371521);
   (void) XR←ImportProcS(var←c19008, 136583945);
   var←c19008 = (word) XR←ImportInterface((word) "TextNode", (word) XR←GetTypeIndexS((word) (&string20)), 34);
   (* (( (ptr) gf←c0114)+36)/* var←c18048 */  ) = var←c19008;
   (void) XR←ImportProcS(var←c19008, 67377153);
   (void) XR←ImportProcS(var←c19008, 67376641);
   (void) XR←ImportProcS(var←c19008, 68686084);
   (void) XR←ImportProcS(var←c19008, 67372289);
   var←c19008 = (word) XR←ExportInterface((word) "TiogaAccessViewers", (word) XR←GetTypeIndexS((word) (&string21)), 4);
   (* (( (ptr) gf←c0114)+46)/* var←c19040 */  ) = var←c19008;
   (void) XR←ExportProcS(var←c19008, (word) (( (bPt) gf←c0114)+92)/* var←c17760 */ , 67108864);
   (void) XR←ExportProcS(var←c19008, (word) (( (bPt) gf←c0114)+76)/* var←c17696 */ , 67371265);
   (void) XR←ExportProcS(var←c19008, (word) (( (bPt) gf←c0114)+60)/* var←c17632 */ , 262657);
   (void) XR←ExportProcS(var←c19008, (word) (( (bPt) gf←c0114)+52)/* var←c17600 */ , 525058);
   }

static void TiogaAccessViewersImpl←P0(formal←c032, formal←c031)
   word formal←c032;
   word formal←c031;
   {
   /* TiogaAccessViewersImpl: */ 
   }

static void SelectionSpan←P60(formal←c037, sel←v3640)
   word formal←c037;
   word sel←v3640;
   {
   register ptr gf←c19072 =  (ptr) &globalframe;
   W4 span←v3684;
   W2 start←v4508;
   W2 end←v4536;
   /* SelectionSpan: */ 
SOURCE(957, 264)
SOURCE(957, 264)
   span←v3684.f0 = 0;
   span←v3684.f1 =  (word) -1;
   span←v3684.f2 = 0;
   span←v3684.f3 =  (word) -1;
SOURCE(1019, 37)
   start←v4508 = (*  (W2Pt) (( (ptr) sel←v3640)+2) );
SOURCE(1058, 33)
   end←v4536 = (*  (W2Pt) (( (ptr) sel←v3640)+11) );
SOURCE(1093, 128)
   {
      word pd22;
      pd22 = (* (( (ptr) (* (( (ptr) gf←c19072)+35)/* var←c17952 */  ))+65) );
      if (((word) ( *( (fPt) ((*  (ptr) pd22 ))))(sel←v3640, pd22) < 3)) {
SOURCE(1144, 26)
         (*  (W2Pt) &span←v3684 ) = start←v4508;
         (*  (W2Pt) (( (ptr) &span←v3684)+2) ) = end←v4536;
         /* removed tail goto */ 
         }
      else {
SOURCE(1170, 51)
         span←v3684.f0 = start←v4508.f0;
         span←v3684.f1 =  (word) -1;
         span←v3684.f2 = end←v4536.f0;
         span←v3684.f3 =  (word) -1;
         /* removed tail goto */ 
         };
      };
   (*  (W4Pt) formal←c037 ) = span←v3684;
   return;
   }

static void TakeNodeSubstr←P120(t←v3744, start←v3772, length←v3800)
   word t←v3744;
   word start←v3772;
   word length←v3800;
   {
   register ptr gf←c19104 =  (ptr) &globalframe;
   word root←v4580;
   /* TakeNodeSubstr: */ 
SOURCE(1227, 210)
SOURCE(1287, 29)
   {
      word pd23;
      pd23 = (* (( (ptr) (* (( (ptr) gf←c19104)+36)/* var←c18048 */  ))+9) );
      root←v4580 = (word) ( *( (fPt) ((*  (ptr) pd23 ))))(t←v3744, pd23);
      };
SOURCE(1318, 119)
   {
      W2 var←c18112;
      {
         word pd24;
         pd24 = (* (( (ptr) (* (( (ptr) gf←c19104)+37)/* var←c18080 */  ))+31) );
         (void) ( *( (fPt) ((*  (ptr) pd24 ))))((word) &var←c18112, root←v4580, root←v4580, t←v3744, 0, 2147483647
            , t←v3744, start←v3772, length←v3800, 0, pd24);
         };
      };
   }

static void CopyNodeProps←P180(root←v3860, formal←c0150)
   word root←v3860;
   word formal←c0150;
   {
   W7 var←c19136;
   /* declaration of newRoot←v3888 skipped */ 
   register ptr gf←c19168 =  (ptr) &globalframe;
   /* declaration of var←c18144 skipped */ 
   var←c19136.f4/* newRoot←v3888 */  = formal←c0150;
   /* CopyNodeProps: */ 
SOURCE(1443, 232)
   {
      word tmpAddr25;
      tmpAddr25 = (word) (( (ptr) &var←c19136)+5)/* var←c18144 */ ;
      (*  (ptr) tmpAddr25 ) = ( ((word)  (fPt) CopyPropAction←P660) );
      (* (( (ptr) tmpAddr25) + 1) ) = 1;
      };
SOURCE(1619, 56)
   {
      word var←c18208;
      word pd26;
      pd26 = (* (( (ptr) (* (( (ptr) gf←c19168)+38)/* var←c18176 */  ))+7) );
      var←c18208 = (word) ( *( (fPt) ((*  (ptr) pd26 ))))(root←v3860, (word) (( (bPt) &var←c19136)+20)/* var←c18144 */ , 1, 1, pd26)
      ;
      };
   }

static word CopyPropAction←P660(name←v11420, value←v11448, formal←c19232)
   word name←v11420;
   word value←v11448;
   word formal←c19232;
   {
   register ptr gf←c19200 =  (ptr) &globalframe;
   word quit←v11492;
   formal←c19232 = (formal←c19232 - 20);
   /* CopyPropAction: */ 
SOURCE(1489, 125)
SOURCE(1489, 125)
   quit←v11492 = 0;
SOURCE(1534, 65)
   {
      word var←c18240;
      {
         word pd27;
         pd27 = (* (( (ptr) (* (( (ptr) gf←c19200)+38)/* var←c18176 */  ))+27) );
         var←c18240 = (word) ( *( (fPt) ((*  (ptr) pd27 ))))(name←v11420, value←v11448, pd27);
         };
      {
         word pd28;
         pd28 = (* (( (ptr) (* (( (ptr) gf←c19200)+38)/* var←c18176 */  ))+4) );
         (void) ( *( (fPt) ((*  (ptr) pd28 ))))((* (( (ptr) formal←c19232)+4) ), name←v11420, var←c18240, pd28);
         };
      };
SOURCE(1601, 13)
   return(0);
   }

static void CopySelection←P240(formal←c055)
   word formal←c055;
   {
   W8 var←c19264;
   register ptr gf←c19296 =  (ptr) &globalframe;
   /* declaration of textNode←v3948 skipped */ 
   /* declaration of offset←v3976 skipped */ 
   /* declaration of var←c18272 skipped */ 
   /* CopySelection: */ 
SOURCE(1681, 741)
   {
      word tmpAddr29;
      tmpAddr29 = (word) (( (ptr) &var←c19264)+6)/* var←c18272 */ ;
      (*  (ptr) tmpAddr29 ) = ( ((word)  (fPt) LockedCopySelection←P720) );
      (* (( (ptr) tmpAddr29) + 1) ) = 1;
      };
SOURCE(1681, 741)
   var←c19264.f4/* textNode←v3948 */  = 0;
SOURCE(1681, 741)
   var←c19264.f5/* offset←v3976 */  = 0;
SOURCE(2368, 54)
   {
      word pd30;
      pd30 = (* (( (ptr) (* (( (ptr) gf←c19296)+39)/* var←c18304 */  ))+4) );
      (void) ( *( (fPt) ((*  (ptr) pd30 ))))((word) (( (bPt) &var←c19264)+24)/* var←c18272 */ , 0, pd30);
      };
   /* removed tail goto */ 
   (*  (ptr) formal←c055 ) = var←c19264.f4/* textNode←v3948 */ ;
   (* (( (ptr) formal←c055)+1) ) = var←c19264.f5/* offset←v3976 */ ;
   return;
   }

static void LockedCopySelection←P720(root←v4744, tSel←v4772, formal←c19360)
   word root←v4744;
   word tSel←v4772;
   word formal←c19360;
   {
   register ptr gf←c19328 =  (ptr) &globalframe;
   formal←c19360 = (formal←c19360 - 24);
   /* LockedCopySelection: */ 
SOURCE(1760, 600)
SOURCE(1820, 540)
   if (((* (( (ptr) tSel←v4772)+22) ) != 0)) {
SOURCE(1853, 509)
      {
         W4 span←v4800;
         W4 copy←v4828;
SOURCE(1855, 32)
         (void) SelectionSpan←P60((word) &span←v4800, tSel←v4772);
SOURCE(1889, 43)
         {
            word pd31;
            pd31 = (* (( (ptr) (* (( (ptr) gf←c19328)+40)/* var←c18336 */  ))+17) );
            (void) ( *( (fPt) ((*  (ptr) pd31 ))))((word) &copy←v4828, span←v4800, pd31);
            };
SOURCE(1934, 103)
         {
            W2 var←c18368;
            var←c18368.f0 = root←v4744;
            var←c18368.f1 =  (word) -1;
            {
               word pd32;
               pd32 = (* (( (ptr) (* (( (ptr) gf←c19328)+36)/* var←c18048 */  ))+21) );
               (* (( (ptr) formal←c19360)+5) ) = (word) ( *( (fPt) ((*  (ptr) pd32 ))))(var←c18368, (*  (W2Pt) &span←v4800 ), 1, 1, pd32)
               ;
               };
            };
SOURCE(2039, 112)
         if ( ( ( (int)copy←v4828.f3 !=  (int) (word) -1) ? (copy←v4828.f2 != 0) : 0 ) ) {
SOURCE(2101, 50)
            (void) TakeNodeSubstr←P120(copy←v4828.f2, 0, (copy←v4828.f3 + 1));
            };
SOURCE(2156, 112)
         if (( (int)copy←v4828.f1 >  (int)0)) {
SOURCE(2187, 59)
            (void) TakeNodeSubstr←P120(copy←v4828.f0, copy←v4828.f1, 2147483647);
SOURCE(2248, 20)
            copy←v4828.f1 = 0;
            };
SOURCE(2273, 26)
         (* (( (ptr) formal←c19360)+4) ) = copy←v4828.f0;
SOURCE(2301, 59)
         {
            word var←c18400;
            {
               word pd33;
               pd33 = (* (( (ptr) (* (( (ptr) gf←c19328)+36)/* var←c18048 */  ))+9) );
               var←c18400 = (word) ( *( (fPt) ((*  (ptr) pd33 ))))((* ((( (ptr) formal←c19360)+4)) ), pd33);
               };
            (void) CopyNodeProps←P180(root←v4744, var←c18400);
            };
         };
      };
   }

static word FromSelection←P300()
   {
   register ptr gf←c19392 =  (ptr) &globalframe;
   word var←c4036;
   word textNode←v4872 = 0;
   word myOffset←v4900 = 0;
   /* FromSelection: */ 
SOURCE(2428, 179)
SOURCE(2517, 38)
   {
      W2 var←c18432;
      (void) CopySelection←P240((word) (&var←c18432));
      myOffset←v4900 = var←c18432.f1;
      textNode←v4872 = var←c18432.f0;
      };
SOURCE(2557, 50)
   {
      word pd34;
      pd34 = (* (( (ptr) (* (( (ptr) gf←c19392)+41)/* var←c18496 */  ))+8) );
      return((word) ( *( (fPt) ((*  (ptr) pd34 ))))(textNode←v4872, myOffset←v4900, pd34));
      };
   }

static word CopyDoc←P360(root←v4096)
   word root←v4096;
   {
   register ptr gf←c19424 =  (ptr) &globalframe;
   word copy←v4140;
   word r←v4944;
   /* CopyDoc: */ 
SOURCE(2611, 352)
SOURCE(2611, 352)
   copy←v4140 = 0;
SOURCE(2676, 145)
   {
      W4 var←c18560;
      W4 var←c077;
      word var←c18528;
      {
         W4 var←c18592;
         word first←v17524;
         word last←v17552;
         first←v17524 = root←v4096;
         {
            word pd35;
            pd35 = (* (( (ptr) (* (( (ptr) gf←c19424)+36)/* var←c18048 */  ))+26) );
            last←v17552 = (word) ( *( (fPt) ((*  (ptr) pd35 ))))(root←v4096, pd35);
            };
         var←c18592.f0 = first←v17524;
         var←c18592.f1 =  (word) -1;
         var←c18592.f2 = last←v17552;
         var←c18592.f3 =  (word) -1;
         var←c18560 = var←c18592;
         };
      {
         word pd36;
         pd36 = (* (( (ptr) (* (( (ptr) gf←c19424)+40)/* var←c18336 */  ))+17) );
         (void) ( *( (fPt) ((*  (ptr) pd36 ))))((word) &var←c077, var←c18560, pd36);
         };
      var←c18528 = var←c077.f0;
      {
         word pd37;
         pd37 = (* (( (ptr) (* (( (ptr) gf←c19424)+36)/* var←c18048 */  ))+9) );
         r←v4944 = (word) ( *( (fPt) ((*  (ptr) pd37 ))))(var←c18528, pd37);
         };
      };
SOURCE(2823, 29)
   {
      word pd38;
      pd38 = (* (( (ptr) (* (( (ptr) gf←c19424)+36)/* var←c18048 */  ))+28) );
      copy←v4140 = (word) ( *( (fPt) ((*  (ptr) pd38 ))))(r←v4944, pd38);
      };
SOURCE(2885, 29)
   (* (( (ptr) copy←v4140)+1) ) = 0;
   (*  (ptr) copy←v4140 ) = 0;
SOURCE(2941, 13)
   (* (( (ptr) r←v4944)+2) ) = 0;
SOURCE(2956, 7)
   r←v4944 = 0;
SOURCE(2611, 352)
   return(copy←v4140);
   }

static word FromViewer←P420(viewer←v4200)
   word viewer←v4200;
   {
   register ptr gf←c19456 =  (ptr) &globalframe;
   word var←c4244;
   word textNode←v4988 = 0;
   /* FromViewer: */ 
SOURCE(2993, 254)
SOURCE(3091, 97)
   {
      word var←c18656;
      var←c18656 = (* (( (ptr) viewer←v4200)+26) );
      if ((var←c18656 == 0)) {
         goto lab←L100003;
         };
      if (((* (( (ptr) gf←c19456)+4) ) == XR←GetReferentType(var←c18656))) {
         {
            word tdd←v5032;
            tdd←v5032 = var←c18656;
SOURCE(3160, 28)
            textNode←v4988 = (word) CopyDoc←P360((*  (ptr) (tdd←v5032) ));
            };
         }
      else {
         lab←L100003: ;
         };
      };
SOURCE(3207, 40)
   {
      word pd39;
      pd39 = (* (( (ptr) (* (( (ptr) gf←c19456)+41)/* var←c18496 */  ))+8) );
      return((word) ( *( (fPt) ((*  (ptr) pd39 ))))(textNode←v4988, 0, pd39));
      };
   }

static void SetSelectionFromSpan←P480(tSel←v4304, span←v4332)
   word tSel←v4304;
   W4 span←v4332;
   {
   register ptr gf←c19488 =  (ptr) &globalframe;
   /* SetSelectionFromSpan: */ 
SOURCE(3251, 961)
SOURCE(3321, 834)
   if ((span←v4332.f0 == span←v4332.f2)) {
SOURCE(3363, 72)
      if ((( (int)span←v4332.f1 ==  (int) (word) -1) != ( (int)span←v4332.f3 ==  (int) (word) -1))) {
SOURCE(3435, 5)
         (void) XR←RaiseUnnamedError();
         };
SOURCE(3472, 362)
      if (( (int)span←v4332.f1 ==  (int) (word) -1)) {
SOURCE(3512, 20)
         span←v4332.f1 = 0;
SOURCE(3534, 55)
         {
            word pd40;
            word x41;
            pd40 = (* (( (ptr) (* (( (ptr) gf←c19488)+37)/* var←c18080 */  ))+6) );
            span←v4332.f3 = (x41 = ((word) ( *( (fPt) ((*  (ptr) pd40 ))))(span←v4332.f2, pd40) - 1),
               MAX((int)(word), x41, 0));
            };
SOURCE(3591, 23)
         (* (( (ptr) tSel←v4304)+22) ) = 3;
         }
      else {
SOURCE(3625, 46)
         {
            word x42;
            (* (( (ptr) tSel←v4304)+22) ) = ((x42 = (* (( (ptr) tSel←v4304)+22) ),
               MIN( (unsigned) , x42, 2)) & 7);
            };
SOURCE(3673, 161)
         if (( (int)span←v4332.f1 <=  (int)span←v4332.f3)) {
SOURCE(3718, 46)
            {
               word x43;
               (* (( (ptr) tSel←v4304)+22) ) = ((x43 = (* (( (ptr) tSel←v4304)+22) ),
                  MAX( (unsigned) , x43, 1)) & 7);
               };
            }
         else {
SOURCE(3775, 24)
            (* (( (ptr) tSel←v4304)+22) ) = 0;
SOURCE(3801, 33)
            span←v4332.f3 = span←v4332.f1;
            };
         };
      }
   else {
SOURCE(3851, 152)
      if ( ( ( (int)span←v4332.f1 ==  (int) (word) -1) ? ( (int)span←v4332.f3 ==  (int) (word) -1) : 0 ) ) {
SOURCE(3923, 46)
         {
            word x44;
            (* (( (ptr) tSel←v4304)+22) ) = ((x44 = (* (( (ptr) tSel←v4304)+22) ),
               MAX( (unsigned) , x44, 3)) & 7);
            };
         }
      else {
SOURCE(3980, 23)
         (* (( (ptr) tSel←v4304)+22) ) = 1;
         };
SOURCE(4008, 56)
      if (( (int)span←v4332.f1 ==  (int) (word) -1)) {
SOURCE(4044, 20)
         span←v4332.f1 = 0;
         };
SOURCE(4066, 89)
      if (( (int)span←v4332.f3 ==  (int) (word) -1)) {
SOURCE(4100, 55)
         {
            word pd45;
            word x46;
            pd45 = (* (( (ptr) (* (( (ptr) gf←c19488)+37)/* var←c18080 */  ))+6) );
            span←v4332.f3 = (x46 = ((word) ( *( (fPt) ((*  (ptr) pd45 ))))(span←v4332.f2, pd45) - 1),
               MAX((int)(word), x46, 0));
            };
         };
      };
SOURCE(4160, 27)
   (*  (W2Pt) (( (ptr) tSel←v4304)+2) ) = (*  (W2Pt) &span←v4332 );
SOURCE(4189, 23)
   (*  (W2Pt) (( (ptr) tSel←v4304)+11) ) = (*  (W2Pt) (( (ptr) &span←v4332)+2) );
   }

static void WriteSelection←P540(writer←v4392)
   word writer←v4392;
   {
   W6 var←c19520;
   register ptr gf←c19552 =  (ptr) &globalframe;
   /* declaration of var←c18720 skipped */ 
   /* WriteSelection: */ 
SOURCE(4218, 1227)
   {
      word tmpAddr47;
      tmpAddr47 = (word) (( (ptr) &var←c19520)+4)/* var←c18720 */ ;
      (*  (ptr) tmpAddr47 ) = ( ((word)  (fPt) action←P876) );
      (* (( (ptr) tmpAddr47) + 1) ) = 1;
      };
SOURCE(5406, 39)
   {
      word pd48;
      pd48 = (* (( (ptr) (* (( (ptr) gf←c19552)+41)/* var←c18496 */  ))+35) );
      (void) ( *( (fPt) ((*  (ptr) pd48 ))))(writer←v4392, (word) (( (bPt) &var←c19520)+16)/* var←c18720 */ , pd48);
      };
   }

static void action←P876(root←v5152, first←v5180, last←v5208, formal←c19648)
   word root←v5152;
   word first←v5180;
   word last←v5208;
   word formal←c19648;
   {
   W11 var←c19584;
   register ptr gf←c19616 =  (ptr) &globalframe;
   /* declaration of var←c18752 skipped */ 
   formal←c19648 = (formal←c19648 - 16);
   (*  (ptr) &var←c19584 ) = formal←c19648;
   /* action: */ 
SOURCE(4267, 1128)
   {
      word tmpAddr49;
      tmpAddr49 = (word) (( (ptr) &var←c19584)+4)/* var←c18752 */ ;
      (*  (ptr) tmpAddr49 ) = ( ((word)  (fPt) DoTranspose←P984) );
      (* (( (ptr) tmpAddr49) + 1) ) = 1;
      };
SOURCE(4310, 1085)
   if ((root←v5152 == 0)) {
SOURCE(4329, 28)
      {
         word pd50;
         pd50 = (* (( (ptr) (* (( (ptr) gf←c19616)+39)/* var←c18304 */  ))+29) );
         (void) ( *( (fPt) ((*  (ptr) pd50 ))))(1, pd50);
         };
      }
   else {
SOURCE(4357, 1043)
      {
         /* declaration of success←v5236 skipped */ 
         word lastSize←v5264;
         word startOffset←v5292;
         word endOffset←v5320;
         /* declaration of alpha←v5348 skipped */ 
SOURCE(4359, 21)
         (* (( (ptr) &var←c19584)+6)/* success←v5236 */  ) = 0;
SOURCE(4382, 35)
         {
            word pd51;
            pd51 = (* (( (ptr) (* (( (ptr) gf←c19616)+37)/* var←c18080 */  ))+6) );
            lastSize←v5264 = (word) ( *( (fPt) ((*  (ptr) pd51 ))))(last←v5208, pd51);
            };
SOURCE(4419, 70)
         startOffset←v5292 =  (  ( ( (int)lastSize←v5264 ==  (int)0) ? (first←v5180 == last←v5208) : 0 )  ?  (word) -1 : 0 ) ;
SOURCE(4491, 62)
         endOffset←v5320 =  ( ( (int)lastSize←v5264 ==  (int)0) ?  (word) -1 : (lastSize←v5264 - 1) ) ;
SOURCE(4555, 93)
         (* (( (ptr) &var←c19584)+7) ) = first←v5180;
         (* (( (ptr) &var←c19584)+8) ) = startOffset←v5292;
         (* (( (ptr) &var←c19584)+9) ) = last←v5208;
         (* (( (ptr) &var←c19584)+10) ) = endOffset←v5320;
SOURCE(5259, 47)
         {
            word pd52;
            pd52 = (* (( (ptr) (* (( (ptr) gf←c19616)+39)/* var←c18304 */  ))+4) );
            (void) ( *( (fPt) ((*  (ptr) pd52 ))))((word) (( (bPt) &var←c19584)+16)/* var←c18752 */ , 1, pd52);
            };
SOURCE(5308, 87)
         if ((0 == (* (( (ptr) &var←c19584)+6)/* success←v5236 */  ))) {
SOURCE(5330, 42)
            {
               word pd53;
               pd53 = (* (( (ptr) (* (( (ptr) gf←c19616)+42)/* var←c18816 */  ))+5) );
               (void) ( *( (fPt) ((*  (ptr) pd53 ))))((* (( (ptr) gf←c19616)+12) ), 1, pd53);
               };
SOURCE(5374, 21)
            {
               word pd54;
               pd54 = (* (( (ptr) (* (( (ptr) gf←c19616)+42)/* var←c18816 */  ))+6) );
               (void) ( *( (fPt) ((*  (ptr) pd54 ))))(pd54);
               };
            };
         };
      };
   }

static void DoTranspose←P984(formal←c0151, tSel←v5480, formal←c19744)
   word formal←c0151;
   word tSel←v5480;
   word formal←c19744;
   {
   W20 var←c19680;
   /* declaration of root←v5452 skipped */ 
   register ptr gf←c19712 =  (ptr) &globalframe;
   /* declaration of beta←v5508 skipped */ 
   /* declaration of documentRoot←v5536 skipped */ 
   formal←c19744 = (formal←c19744 - 16);
   (* (( (ptr) &var←c19680)+4)/* root←v5452 */  ) = formal←c0151;
   (*  (ptr) &var←c19680 ) = formal←c19744;
   /* DoTranspose: */ 
SOURCE(4650, 19)
SOURCE(4702, 32)
   (void) SelectionSpan←P60((word) (( (bPt) &var←c19680)+20)/* beta←v5508 */ , tSel←v5480);
SOURCE(4736, 51)
   {
      word pd55;
      pd55 = (* (( (ptr) (* (( (ptr) gf←c19712)+36)/* var←c18048 */  ))+9) );
      (* (( (ptr) &var←c19680)+9)/* documentRoot←v5536 */  ) = (word) ( *( (fPt) ((*  (ptr) pd55 ))))((* ((( (ptr) &var←c19680)+5)
         ) ), pd55);
      };
SOURCE(4789, 111)
   if (((* (( (ptr) tSel←v5480)+22) ) == 3) || ((* (( (ptr) tSel←v5480)+22) ) == 4)) {
SOURCE(4852, 48)
      (* (( (ptr) formal←c19744)+10) ) =  (word) -1;
      (* (( (ptr) formal←c19744)+8) ) =  (word) -1;
      };
SOURCE(4905, 14)
   (* (( (ptr) formal←c19744)+6) ) = 1;
SOURCE(4921, 176)
SOURCE(4921, 176)
   {
      W8 var←c18912;
      {
         /* declaration of var←c01 skipped */ 
         /* declaration of var←c02 skipped */ 
         (* (( (ptr) &var←c19680)+10)/* var←c01 */  ) = (*  (ptr) (* (( (ptr) (* (( (ptr) gf←c19712)+43)/* var←c18848 */  ))+6) ) );
         (* (( (ptr) &var←c19680)+11)/* var←c02 */  ) = (* (( (ptr) (* (( (ptr) gf←c19712)+44)/* var←c18880 */  ))+12) );
         {
            /* declaration of var←c03 skipped */ 
            {
               word var←c04;
               {
                  word var←c0137;
                  var←c0137 = (word) &var←c19680;
                  var←c04 = (word) XR←Enable(( ((word)  (fPt) NoName←Q1332) ), ( ((word)  (fPt) NoName←Q1392) ), var←c0137);
                  };
               if ((var←c04 == 2)) {
                  goto lab←L100005;
                  };
               };
            var←c18912 = (*  (W8Pt) (( (ptr) &var←c19680)+12)/* var←c03 */  );
            };
         };
      (*  (W4Pt) (( (ptr) &var←c19680)+5)/* beta←v5508 */  ) = (*  (W4Pt) (( (ptr) &var←c18912)+4) );
      (*  (W4Pt) (( (ptr) formal←c19744)+7) ) = (*  (W4Pt) &var←c18912 );
      };
   lab←L100005: ;
SOURCE(5111, 140)
   if ((0 != (* (( (ptr) formal←c19744)+6) ))) {
SOURCE(5129, 26)
      (* (( (ptr) tSel←v5480)+26) ) = 0;
SOURCE(5157, 33)
      (void) SetSelectionFromSpan←P480(tSel←v5480, (*  (W4Pt) (( (ptr) formal←c19744)+7) ));
SOURCE(5192, 59)
      {
         word pd56;
         pd56 = (* (( (ptr) (* (( (ptr) gf←c19712)+35)/* var←c17952 */  ))+25) );
         (void) ( *( (fPt) ((*  (ptr) pd56 ))))(tSel←v5480, 0, 0, 0, 1, pd56);
         };
      };
   }

static word NoName←Q1332(formal←c0132)
   word formal←c0132;
   {
SOURCE(4921, 176)
   {
      word pd57;
      pd57 = (* (( (ptr) formal←c0132)+11) );
      (void) ( *( (fPt) ((*  (ptr) pd57 ))))((word) (( (bPt) formal←c0132)+48), (* (( (ptr) formal←c0132)+4) ), (* (( (ptr) formal←c0132)+9)
          ), (*  (W4Pt) (( (ptr) (*  (ptr) formal←c0132 ))+7) ), (*  (W4Pt) (( (ptr) formal←c0132)+5) ), (* (( (ptr) formal←c0132)+10)
          ), pd57);
      };
   return(0);
   }

static void WriteViewer←P600(writer←v4452, formal←c0152)
   word writer←v4452;
   word formal←c0152;
   {
   W7 var←c19776;
   /* declaration of viewer←v4480 skipped */ 
   register ptr gf←c19808 =  (ptr) &globalframe;
   /* declaration of var←c18944 skipped */ 
   var←c19776.f4/* viewer←v4480 */  = formal←c0152;
   /* WriteViewer: */ 
SOURCE(5451, 327)
   {
      word tmpAddr58;
      tmpAddr58 = (word) (( (ptr) &var←c19776)+5)/* var←c18944 */ ;
      (*  (ptr) tmpAddr58 ) = ( ((word)  (fPt) action←P1044) );
      (* (( (ptr) tmpAddr58) + 1) ) = 1;
      };
SOURCE(5739, 39)
   {
      word pd59;
      pd59 = (* (( (ptr) (* (( (ptr) gf←c19808)+41)/* var←c18496 */  ))+35) );
      (void) ( *( (fPt) ((*  (ptr) pd59 ))))(writer←v4452, (word) (( (bPt) &var←c19776)+20)/* var←c18944 */ , pd59);
      };
   }

static void action←P1044(root←v5656, first←v5684, last←v5712, formal←c19872)
   word root←v5656;
   word first←v5684;
   word last←v5712;
   word formal←c19872;
   {
   register ptr gf←c19840 =  (ptr) &globalframe;
   formal←c19872 = (formal←c19872 - 20);
   /* action: */ 
SOURCE(5527, 204)
SOURCE(5570, 161)
   if ( (  ( ((* (( (ptr) formal←c19872)+4) ) != 0) ? ((* (( (ptr) (* (( (ptr) formal←c19872)+4) ))+26) ) != 0) : 0 )  ? ((* (
      ( (ptr) (*  (ptr) (* (( (ptr) formal←c19872)+4) ) ))+6) ) != 0) : 0 ) ) {
SOURCE(5642, 53)
      {
         word pd60;
         pd60 = (* (( (ptr) (*  (ptr) (* (( (ptr) formal←c19872)+4) ) ))+6) );
         (void) ( *( (fPt) ((*  (ptr) pd60 ))))((* (( (ptr) formal←c19872)+4) ), root←v5656, 0, (* (( (ptr) gf←c19840)+11) ), pd60)
         ;
         };
SOURCE(5697, 34)
      {
         word pd61;
         pd61 = (* (( (ptr) (* (( (ptr) gf←c19840)+45)/* var←c18976 */  ))+16) );
         (void) ( *( (fPt) ((*  (ptr) pd61 ))))((* (( (ptr) formal←c19872)+4) ), 0, 1, 0, pd61);
         };
      };
   }

static void NoName←Q1392(formal←c0113, formal←c200000, formal←c200001, formal←c200002, formal←c200003)
   word formal←c0113;
   word formal←c200000;
   word formal←c200001;
   word formal←c200002;
   word formal←c200003;
   {
   register ptr gf←c0136 =  (ptr) &globalframe;
   if ((formal←c200001 == (* (( (ptr) (* (( (ptr) gf←c0136)+44)/* var←c18880 */  ))+24) ))) {
SOURCE(5082, 15)
      (* (( (ptr) (*  (ptr) formal←c200000 ))+6) ) = 0;
SOURCE(5099, 8)
      (*  (ptr) formal←c0113 ) = 2;
      (* (( (ptr) formal←c0113)+1) ) = 2;
      return;
      };
   (*  (ptr) formal←c0113 ) = 0;
   (* (( (ptr) formal←c0113)+1) ) = 0;
   return;
   }

/* file: TiogaAccessViewersImpl, module: TiogaAccessViewersImpl, compiled at: February 27, 1992 5:59:48 pm PST */ 
extern void XR←install←TiogaAccessViewersImpl() {
   NoName←Q1272();
   }
extern void XR←run←TiogaAccessViewersImpl() { XR←Start(&globalframe); }