/* Generated with C2C (Cedar To C)*/
/* Copyright (C) 1993 by Xerox Corporation.  All rights reserved. */
/* time: September 16, 1993 5:51:18 pm PDT */
/* C2C version: April 20, 1993 (sun4) */
/* ref-counting: off */
/* file: PCRCmdImpl, module: PCRCmdImpl */ 
/* switches: bcfhklnouw */ 
#include <cedar/InstallationSupport.h>
#include <cedar/CedarExtra.h>
static char versionStamp[] = "@(#)mob←version [416419466,326717723] PCRCmdImpl";
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 struct {word f0, f1;} W2;
typedef word (*fPt)();
#define SOURCE(p, l) /* source p, l */
static void NoName←Q360();
static void PCRCmdImpl←P0();
static void PCRCmdCommandProc←P60();
static void PutIt←P300();
static void RegisterPCRCmd←P120();
static word PCedarCmdProc←P180();
static void RegisterPCedarCmdWithPCR←P240();
static struct {unsigned f; char r[4];} string1 = {131076, "\216\251\000"};
static struct {unsigned f; char r[4];} string2 = {65537, "\001\000\000"};
static struct {unsigned f; char r[44];} string3 = {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];} string4 = {917520, "\216\257\300\363\223\326\161\300\017\164\046\072\104\350\000"};
static struct {unsigned f; char r[8];} string5 = {393224, "PCRCmd\000"};
static struct {unsigned f; char r[64];} string6 = {3997760, "PCRCmd  expression ; ...\012  Execute command in PCR interpreter\000\000"};
static struct {unsigned f; char r[8];} string7 = {458760, "Failure"};
static struct {unsigned f; char r[12];} string8 = {589836, "PCedarCmd\000\000"};
static struct {unsigned f; char r[4];} string9 = {4, "\000\000\000"};
static struct {unsigned f; char r[64];} string10 = {4063296, "pcedar-command -- execute pcedar-command in a PCedar Commander\000"};
static struct {unsigned f; char r[8];} string11 = {458760, "Success"};
static struct {unsigned f; char r[16];} string12 = {851984, "\257\300\030\322\016\212\300\023\171\121\033\100\164\000\000"};
static struct {unsigned f; char r[8];} string13 = {393222, "\006\001,\004@\177\000"};
static struct {unsigned f; char r[16];} string14 = {851984, "\257\300\373\225\000\071\300\362\156\307\320\100\150\000\000"};
static struct {unsigned f; char r[16];} string15 = {851984, "\257\300\311\235\133\064\300\165\175\234\175\100\150\000\000"};
static struct {unsigned f; char r[16];} string16 = {851984, "\257\300\015\277\004\146\300\034\367\146\045\100\164\000\000"};
static struct {unsigned f; char r[16];} string17 = {851984, "\257\300\363\223\326\161\300\017\164\046\072\100\150\000\000"};
static struct {unsigned f; char r[16];} string18 = {851984, "\257\300\220\270\074\115\300\121\012\115\357\100\150\000\000"};
static struct {
   word f0[18]; word f18; word f19; word f20; 
   word f21; word f22; word f23; word f24; 
   word f25; word f26; word f27[6]; 
   } globalframe = {
   {0}, (word) RegisterPCedarCmdWithPCR←P240, 0, (word) PCedarCmdProc←P180, 
   0, (word) RegisterPCRCmd←P120, 0, (word) PCRCmdCommandProc←P60, 
   0, (word) PCRCmdImpl←P0, {0}
   };

static void NoName←Q360()
   {
   register ptr gf←c044 =  (ptr) &globalframe;
   word var←c9744;
   (* (( (ptr) gf←c044)+4) ) = (word) XR←GetTypeIndex((word) &string1, 0, (word) &string2);
   (* (( (ptr) gf←c044)+7) ) = (word) XR←GetTypeIndex((word) &string3, 0, (word) &string2);
   (* (( (ptr) gf←c044)+9) ) = (word) XR←GetTypeIndex((word) &string4, 0, (word) &string2);
   (*  (ptr) (( (bPt) gf←c044)+44) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c044)+9) ), (word) &string5);
   (*  (ptr) (( (bPt) gf←c044)+48) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c044)+9) ), (word) &string6);
   (*  (ptr) (( (bPt) gf←c044)+52) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c044)+4) ), (word) &string7);
   (*  (ptr) (( (bPt) gf←c044)+56) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c044)+7) ), (word) &string8);
   (*  (ptr) (( (bPt) gf←c044)+60) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c044)+7) ), (word) &string9);
   (*  (ptr) (( (bPt) gf←c044)+64) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c044)+7) ), (word) &string10);
   (*  (ptr) (( (bPt) gf←c044)+68) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c044)+4) ), (word) &string11);
   (void) XR←DeclareGlobalFrame((word) "PCRCmdImpl", &globalframe, (word) XR←GetTypeIndex((word) &string12, 0, (word) &string13)
      , (word) (( (bPt) gf←c044)+104)/* var←c9168 */ );
   var←c9744 = (word) XR←ImportInterface((word) "Commander", (word) XR←GetTypeIndexS((word) (&string14)), 3);
   (* (( (ptr) gf←c044)+30)/* var←c9456 */  ) = var←c9744;
   (void) XR←ImportProcS(var←c9744, 1310725);
   var←c9744 = (word) XR←ImportInterface((word) "CommanderOps", (word) XR←GetTypeIndexS((word) (&string15)), 14);
   (* (( (ptr) gf←c044)+31)/* var←c9488 */  ) = var←c9744;
   (void) XR←ImportProcS(var←c9744, 135006211);
   var←c9744 = (word) XR←ImportInterface((word) "IO", (word) XR←GetTypeIndexS((word) (&string16)), 103);
   (* (( (ptr) gf←c044)+29)/* var←c9424 */  ) = var←c9744;
   (void) XR←ImportProcS(var←c9744, 1071364);
   var←c9744 = (word) XR←ImportInterface((word) "Rope", (word) XR←GetTypeIndexS((word) (&string17)), 43);
   (* (( (ptr) gf←c044)+32)/* var←c9584 */  ) = var←c9744;
   (void) XR←ImportProcS(var←c9744, 67373569);
   var←c9744 = (word) XR←ImportInterface((word) "UXStrings", (word) XR←GetTypeIndexS((word) (&string18)), 9);
   (* (( (ptr) gf←c044)+28)/* var←c9232 */  ) = var←c9744;
   (void) XR←ImportProcS(var←c9744, 67633922);
   (void) XR←ImportProcS(var←c9744, 67371265);
   }

static void PCRCmdImpl←P0(formal←c015, formal←c014)
   word formal←c015;
   word formal←c014;
   {
   /* PCRCmdImpl: */ 
SOURCE(71, 1355)
SOURCE(1382, 16)
   (void) RegisterPCRCmd←P120();
SOURCE(1400, 26)
   (void) RegisterPCedarCmdWithPCR←P240();
   }

static void PCRCmdCommandProc←P60(formal←c025, formal←c053)
   word formal←c025;
   word formal←c053;
   {
   W7 var←c9776;
   /* declaration of cmd←v4236 skipped */ 
   register ptr gf←c9808 =  (ptr) &globalframe;
   word result←v4280;
   word msg←v4308;
   /* declaration of var←c9200 skipped */ 
   word rawCmdString←v2912 = 0;
   word ans←v2940 = 0;
   var←c9776.f4/* cmd←v4236 */  = formal←c053;
   /* PCRCmdCommandProc: */ 
SOURCE(211, 404)
   {
      word tmpAddr19;
      tmpAddr19 = (word) (( (ptr) &var←c9776)+5)/* var←c9200 */ ;
      (*  (ptr) tmpAddr19 ) = ( ((word)  (fPt) PutIt←P300) );
      (* (( (ptr) tmpAddr19) + 1) ) = 1;
      };
SOURCE(211, 404)
   result←v4280 = 0;
SOURCE(211, 404)
   msg←v4308 = 0;
SOURCE(432, 48)
   {
      word pd20;
      pd20 = (* (( (ptr) (* (( (ptr) gf←c9808)+28)/* var←c9232 */  ))+5) );
      rawCmdString←v2912 = (word) ( *( (fPt) ((*  (ptr) pd20 ))))((* ((( (ptr) var←c9776.f4/* cmd←v4236 */ )+4)) ), pd20);
      };
SOURCE(482, 45)
   ans←v2940 = (word) PCRCmdGlue←Execute(rawCmdString←v2912, (word) (( (bPt) &var←c9776)+20)/* var←c9200 */ );
SOURCE(529, 86)
   if ((ans←v2940 == 0)) {
SOURCE(547, 28)
      result←v4280 = (* (( (ptr) gf←c9808)+17) );
      msg←v4308 = 0;
      /* removed tail goto */ 
      }
   else {
SOURCE(575, 40)
      {
         word var←c9328;
         word var←c9360;
         var←c9328 = (* (( (ptr) gf←c9808)+13) );
         {
            word pd21;
            pd21 = (* (( (ptr) (* (( (ptr) gf←c9808)+28)/* var←c9232 */  ))+7) );
            var←c9360 = (word) ( *( (fPt) ((*  (ptr) pd21 ))))(ans←v2940, 2147483647, pd21);
            };
         result←v4280 = var←c9328;
         msg←v4308 = var←c9360;
         /* removed tail goto */ 
         };
      };
   (*  (ptr) formal←c025 ) = result←v4280;
   (* (( (ptr) formal←c025)+1) ) = msg←v4308;
   return;
   }

static void PutIt←P300(msg←v4528, nBytes←v4556, formal←c9872)
   word msg←v4528;
   word nBytes←v4556;
   word formal←c9872;
   {
   register ptr gf←c9840 =  (ptr) &globalframe;
   formal←c9872 = (formal←c9872 - 20);
   /* PutIt: */ 
SOURCE(327, 100)
SOURCE(377, 50)
   {
      word var←c9392;
      {
         word pd22;
         pd22 = (* (( (ptr) (* (( (ptr) gf←c9840)+28)/* var←c9232 */  ))+7) );
         var←c9392 = (word) ( *( (fPt) ((*  (ptr) pd22 ))))(msg←v4528, nBytes←v4556, pd22);
         };
      {
         word pd23;
         pd23 = (* (( (ptr) (* (( (ptr) gf←c9840)+29)/* var←c9424 */  ))+93) );
         (void) ( *( (fPt) ((*  (ptr) pd23 ))))((* (( (ptr) (* (( (ptr) formal←c9872)+4) ))+1) ), var←c9392, 0, 2147483647, pd23);
         };
      };
   }

static void RegisterPCRCmd←P120()
   {
   register ptr gf←c9904 =  (ptr) &globalframe;
   word doc←v3012;
   /* RegisterPCRCmd: */ 
SOURCE(621, 172)
SOURCE(646, 81)
   doc←v3012 = (* (( (ptr) gf←c9904)+12) );
SOURCE(729, 64)
   {
      word pd24;
      pd24 = (* (( (ptr) (* (( (ptr) gf←c9904)+30)/* var←c9456 */  ))+4) );
      (void) ( *( (fPt) ((*  (ptr) pd24 ))))((* (( (ptr) gf←c9904)+11) ), (word) (( (bPt) gf←c9904)+96)/* var←c9136 */ , doc←v3012, 0, 0, pd24)
      ;
      };
   }

static word PCedarCmdProc←P180(cmdLine←v4368, putProc←v4396, data←v4424)
   word cmdLine←v4368;
   word putProc←v4396;
   word data←v4424;
   {
   register ptr gf←c9936 =  (ptr) &globalframe;
   word result←v4468;
   word cmdLineRope←v3056 = 0;
   word outRope←v3084 = 0;
   word outString←v3112 = 0;
   /* PCedarCmdProc: */ 
SOURCE(798, 338)
SOURCE(798, 338)
   result←v4468 = 0;
SOURCE(945, 39)
   {
      word pd25;
      pd25 = (* (( (ptr) (* (( (ptr) gf←c9936)+28)/* var←c9232 */  ))+7) );
      cmdLineRope←v3056 = (word) ( *( (fPt) ((*  (ptr) pd25 ))))(cmdLine←v4368, 2147483647, pd25);
      };
SOURCE(986, 69)
   {
      W2 var←c9520;
      {
         word pd26;
         pd26 = (* (( (ptr) (* (( (ptr) gf←c9936)+31)/* var←c9488 */  ))+12) );
         (void) ( *( (fPt) ((*  (ptr) pd26 ))))((word) &var←c9520, cmdLineRope←v3056, 0, 0, pd26);
         };
      result←v4468 = var←c9520.f1;
      outRope←v3084 = var←c9520.f0;
      };
SOURCE(1057, 37)
   {
      word pd27;
      pd27 = (* (( (ptr) (* (( (ptr) gf←c9936)+28)/* var←c9232 */  ))+5) );
      outString←v3112 = (word) ( *( (fPt) ((*  (ptr) pd27 ))))(outRope←v3084, pd27);
      };
SOURCE(1096, 40)
   {
      word var←c9552;
      {
         word pd28;
         pd28 = (* (( (ptr) (* (( (ptr) gf←c9936)+32)/* var←c9584 */  ))+14) );
         var←c9552 = (word) ( *( (fPt) ((*  (ptr) pd28 ))))(outRope←v3084, pd28);
         };
      (void) ( *( (fPt) ((*  (ptr) putProc←v4396 ))))(outString←v3112, var←c9552, putProc←v4396);
      };
SOURCE(798, 338)
   return(result←v4468);
   }

static void RegisterPCedarCmdWithPCR←P240()
   {
   register ptr gf←c9968 =  (ptr) &globalframe;
   /* RegisterPCedarCmdWithPCR: */ 
SOURCE(1142, 234)
SOURCE(1177, 199)
   {
      word var←c9712;
      {
         word var←c9616;
         word var←c9648;
         word var←c9680;
         {
            word pd29;
            pd29 = (* (( (ptr) (* (( (ptr) gf←c9968)+28)/* var←c9232 */  ))+5) );
            var←c9616 = (word) ( *( (fPt) ((*  (ptr) pd29 ))))((* ((( (ptr) gf←c9968)+14)) ), pd29);
            };
         {
            word pd30;
            pd30 = (* (( (ptr) (* (( (ptr) gf←c9968)+28)/* var←c9232 */  ))+5) );
            var←c9648 = (word) ( *( (fPt) ((*  (ptr) pd30 ))))((* ((( (ptr) gf←c9968)+15)) ), pd30);
            };
         {
            word pd31;
            pd31 = (* (( (ptr) (* (( (ptr) gf←c9968)+28)/* var←c9232 */  ))+5) );
            var←c9680 = (word) ( *( (fPt) ((*  (ptr) pd31 ))))((* ((( (ptr) gf←c9968)+16)) ), pd31);
            };
         var←c9712 = (word) PCRCmdGlue←RegisterWithPCRCommandLoop((word) (( (bPt) gf←c9968)+80)/* var←c9072 */ , 0, var←c9616, var←c9648, var←c9680)
         ;
         };
      };
   }

/* file: PCRCmdImpl, module: PCRCmdImpl, compiled at: September 16, 1993 5:51:17 pm PDT */ 
extern void XR←install←PCRCmdImpl() {
   NoName←Q360();
   }
extern void XR←run←PCRCmdImpl() { XR←Start(&globalframe); }