/* Generated with C2C (Cedar To C)*/
/* Copyright (C) 1993 by Xerox Corporation. All rights reserved. */
/* time: January 26, 1993 3:31:51 pm PST */
/* C2C version: October 7, 1992 (native) */
/* ref-counting: off */
/* file: CommanderOnStandardStreamsImpl, module: CommanderOnStandardStreamsImpl */
/* switches: bcfhklnouw */
#include <cedar/InstallationSupport.h>
#include <cedar/CedarExtra.h>
static char versionStamp[] = "@(#)mob←version [1073670562,2656242597] CommanderOnStandardStreamsImpl";
typedef unsigned word, *ptr;
typedef unsigned char byte, *bPt;
typedef unsigned short half, *hPt;
typedef struct {word f0, f1, f2, f3, f4, f5, f6, f7;} W8;
typedef struct {word f0, f1;} W2;
typedef word (*fPt)();
#define SOURCE(p, l) /* source p, l */
static void NoName←Q288();
static void CommanderOnStandardStreamsImpl←P0();
static void RunCommander←P60();
static void Inner←P180();
static word GetEnv←P120();
static struct {unsigned f; char r[16];} string1 = {851984, "\257\300\363\223\326\161\300\017\164\046\072\104\304\000\000"};
static struct {unsigned f; char r[24];} string2 = {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];} 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[48];} string5 = {2883632, "\260\006\005\146\151\162\163\164\216\257\300\055\153\222\376\300\327\164\352\142\100\200\005\004\162\145\163\164\214\216\257\300\055\153\222\376\300\327\164\352\142\100\200\261\000\000\000"};
static struct {unsigned f; char r[4];} string6 = {131074, "\004\003\000"};
static struct {unsigned f; char r[16];} string7 = {851984, "\257\300\055\153\222\376\300\327\164\352\142\100\200\000\000"};
static struct {unsigned f; char r[44];} string8 = {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[4];} string9 = {131076, "\216\251\000"};
static struct {unsigned f; char r[4];} string10 = {4, "\000\000\000"};
static struct {unsigned f; char r[8];} string11 = {458760, "Failure"};
static struct {unsigned f; char r[4];} string12 = {65540, "\012\000\000"};
static struct {unsigned f; char r[32];} string13 = {1835040, "[[COMMANDER←INITIAL←COMMAND=\000\000\000"};
static struct {unsigned f; char r[4];} string14 = {196612, "]]\012"};
static struct {unsigned f; char r[28];} string15 = {1638428, "COMMANDER←INITIAL←PERSIST\000\000"};
static struct {unsigned f; char r[28];} string16 = {1703964, "CommanderOnStandardStreams\000"};
static struct {unsigned f; char r[12];} string17 = {524300, "DontExit\000\000\000"};
static struct {unsigned f; char r[28];} string18 = {1769500, " Exiting Initial Commander\012"};
static struct {unsigned f; char r[28];} string19 = {1572892, " (some commands failed)\012\000\000\000"};
static struct {unsigned f; char r[28];} string20 = {1638428, "COMMANDER←INITIAL←COMMAND\000\000"};
static struct {unsigned f; char r[16];} string21 = {851984, "\257\300\077\376\351\242\300\236\123\013\245\100\164\000\000"};
static struct {unsigned f; char r[8];} string22 = {393222, "\006\0018\004O\377\000"};
static struct {unsigned f; char r[16];} string23 = {851984, "\257\300\055\153\222\376\300\327\164\352\142\100\150\000\000"};
static struct {unsigned f; char r[16];} string24 = {851984, "\257\300\311\235\133\064\300\165\175\234\175\100\150\000\000"};
static struct {unsigned f; char r[16];} string25 = {851984, "\257\300\015\277\004\146\300\034\367\146\045\100\164\000\000"};
static struct {unsigned f; char r[16];} string26 = {851984, "\257\300\363\223\326\161\300\017\164\046\072\100\150\000\000"};
static struct {unsigned f; char r[16];} string27 = {851984, "\257\300\240\236\274\315\300\111\163\325\023\100\150\000\000"};
static struct {unsigned f; char r[16];} string28 = {851984, "\257\300\314\116\377\204\300\167\024\373\125\100\150\000\000"};
static struct {unsigned f; char r[16];} string29 = {851984, "\257\300\241\235\001\025\300\065\011\226\172\100\150\000\000"};
static struct {
word f0[4]; word f4; word f5[21]; word f26;
word f27; word f28; word f29; word f30;
word f31[8];
} globalframe = {
{0}, (word) 1, {0}, (word) GetEnv←P120,
0, (word) RunCommander←P60, 0, (word) CommanderOnStandardStreamsImpl←P0,
{0}
};
static void NoName←Q288()
{
register ptr gf←c039 = (ptr) &globalframe;
word var←c9828;
(* (( (ptr) gf←c039)+5) ) = (word) XR←GetTypeIndex((word) &string1, 0, (word) &string2);
(* (( (ptr) gf←c039)+6) ) = (word) XR←GetTypeIndex((word) &string3, 0, (word) &string4);
(* (( (ptr) gf←c039)+9) ) = (word) XR←GetTypeIndex((word) &string5, 0, (word) &string6);
(* (( (ptr) gf←c039)+10) ) = (word) XR←GetTypeIndex((word) &string7, 0, (word) &string6);
(* (( (ptr) gf←c039)+12) ) = (word) XR←GetTypeIndex((word) &string8, 0, (word) &string4);
(* (( (ptr) gf←c039)+13) ) = (word) XR←GetTypeIndex((word) &string9, 0, (word) &string4);
(* (ptr) (( (bPt) gf←c039)+56) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c039)+12) ), (word) &string10);
(* (ptr) (( (bPt) gf←c039)+60) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c039)+13) ), (word) &string11);
(* (ptr) (( (bPt) gf←c039)+64) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c039)+6) ), (word) &string10);
(* (ptr) (( (bPt) gf←c039)+68) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c039)+6) ), (word) &string12);
(* (ptr) (( (bPt) gf←c039)+72) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c039)+6) ), (word) &string13);
(* (ptr) (( (bPt) gf←c039)+76) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c039)+6) ), (word) &string14);
(* (ptr) (( (bPt) gf←c039)+80) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c039)+6) ), (word) &string15);
(* (ptr) (( (bPt) gf←c039)+84) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c039)+13) ), (word) &string16);
(* (ptr) (( (bPt) gf←c039)+88) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c039)+13) ), (word) &string17);
(* (ptr) (( (bPt) gf←c039)+92) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c039)+6) ), (word) &string18);
(* (ptr) (( (bPt) gf←c039)+96) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c039)+6) ), (word) &string19);
(* (ptr) (( (bPt) gf←c039)+100) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c039)+6) ), (word) &string20);
(void) XR←DeclareGlobalFrame((word) "CommanderOnStandardStreamsImpl", &globalframe, (word) XR←GetTypeIndex((word) &string21, 0, (word) &string22)
, (word) (( (bPt) gf←c039)+120)/* var←c9188 */ );
var←c9828 = (word) XR←ImportInterface((word) "Atom", (word) XR←GetTypeIndexS((word) (&string23)), 16);
(* (( (ptr) gf←c039)+37)/* var←c9700 */ ) = var←c9828;
(void) XR←ImportProcS(var←c9828, 67895555);
(void) XR←ImportProcS(var←c9828, 67634946);
var←c9828 = (word) XR←ImportInterface((word) "CommanderOps", (word) XR←GetTypeIndexS((word) (&string24)), 14);
(* (( (ptr) gf←c039)+33)/* var←c9348 */ ) = var←c9828;
(void) XR←ImportProcS(var←c9828, 67635970);
(void) XR←ImportProcS(var←c9828, 67374337);
(void) XR←ImportProcS(var←c9828, 134744322);
(void) XR←ImportProcS(var←c9828, 68160516);
var←c9828 = (word) XR←ImportInterface((word) "IO", (word) XR←GetTypeIndexS((word) (&string25)), 103);
(* (( (ptr) gf←c039)+35)/* var←c9604 */ ) = var←c9828;
(void) XR←ImportProcS(var←c9828, 1071364);
var←c9828 = (word) XR←ImportInterface((word) "Rope", (word) XR←GetTypeIndexS((word) (&string26)), 43);
(* (( (ptr) gf←c039)+36)/* var←c9668 */ ) = var←c9828;
(void) XR←ImportProcS(var←c9828, 67373825);
var←c9828 = (word) XR←ImportInterface((word) "Process", (word) XR←GetTypeIndexS((word) (&string27)), 22);
(* (( (ptr) gf←c039)+38)/* var←c9732 */ ) = var←c9828;
(void) XR←ImportProcS(var←c9828, 266497);
var←c9828 = (word) XR←ImportInterface((word) "ProcessProps", (word) XR←GetTypeIndexS((word) (&string28)), 6);
(* (( (ptr) gf←c039)+34)/* var←c9540 */ ) = var←c9828;
(void) XR←ImportProcS(var←c9828, 524290);
var←c9828 = (word) XR←ImportInterface((word) "UXIO", (word) XR←GetTypeIndexS((word) (&string29)), 7);
(* (( (ptr) gf←c039)+32)/* var←c9284 */ ) = var←c9828;
(void) XR←ImportProcS(var←c9828, 67371009);
}
static void CommanderOnStandardStreamsImpl←P0(formal←c016, formal←c015)
word formal←c016;
word formal←c015;
{
/* CommanderOnStandardStreamsImpl: */
SOURCE(82, 1570)
/* moved to installation proc */
SOURCE(1638, 14)
(void) RunCommander←P60();
}
static void RunCommander←P60()
{
W8 var←c9860;
register ptr gf←c9892 = (ptr) &globalframe;
/* declaration of var←c9220 skipped */
/* declaration of cmd←v3084 skipped */
/* declaration of initial←v3140 skipped */
/* RunCommander: */
SOURCE(252, 1129)
{
word tmpAddr30;
tmpAddr30 = (word) (( (ptr) &var←c9860)+4)/* var←c9220 */ ;
(* (ptr) tmpAddr30 ) = ( ((word) (fPt) Inner←P180) );
(* (( (ptr) tmpAddr30) + 1) ) = 1;
};
SOURCE(275, 133)
{
word var←c9252;
word var←c9316;
{
word pd31;
pd31 = (* (( (ptr) (* (( (ptr) gf←c9892)+32)/* var←c9284 */ ))+4) );
var←c9252 = (word) ( *( (fPt) ((* (ptr) pd31 ))))(0, pd31);
};
{
word pd32;
pd32 = (* (( (ptr) (* (( (ptr) gf←c9892)+32)/* var←c9284 */ ))+4) );
var←c9316 = (word) ( *( (fPt) ((* (ptr) pd32 ))))(1, pd32);
};
{
word pd33;
pd33 = (* (( (ptr) (* (( (ptr) gf←c9892)+33)/* var←c9348 */ ))+16) );
var←c9860.f6/* cmd←v3084 */ = (word) ( *( (fPt) ((* (ptr) pd33 ))))(var←c9252, var←c9316, 0, 0, pd33);
};
};
SOURCE(1205, 82)
var←c9860.f7/* initial←v3140 */ = ( (0 != (* (( (ptr) gf←c9892)+4)/* firstTime←v2832 */ )) ? (word) GetEnv←P120(var←c9860.f6/* cmd←v3084 */ , (* (
( (ptr) gf←c9892)+25) )) : (* (( (ptr) gf←c9892)+16) ) ) ;
SOURCE(1289, 17)
(* (( (ptr) gf←c9892)+4)/* firstTime←v2832 */ ) = 0;
SOURCE(1308, 73)
{
word var←c9380;
{
word var←c9412;
word var←c9444;
var←c9412 = XR←NewObject(8, (* (( (ptr) gf←c9892)+9) ));
var←c9444 = var←c9412;
{
word var←c9508;
var←c9508 = XR←NewObject(8, (* (( (ptr) gf←c9892)+10) ));
(* (ptr) var←c9508 ) = (* (( (ptr) gf←c9892)+14) );
(* (( (ptr) var←c9508)+1) ) = (* (( (ptr) gf←c9892)+14) );
(* (ptr) var←c9444 ) = var←c9508;
};
var←c9380 = var←c9412;
};
{
word pd34;
pd34 = (* (( (ptr) (* (( (ptr) gf←c9892)+34)/* var←c9540 */ ))+4) );
(void) ( *( (fPt) ((* (ptr) pd34 ))))(var←c9380, (word) (( (bPt) &var←c9860)+16)/* var←c9220 */ , pd34);
};
};
}
static void Inner←P180(formal←c9956)
word formal←c9956;
{
register ptr gf←c9924 = (ptr) &globalframe;
word result←v3200;
word msg←v3228 = 0;
word hadFailure←v3256 = 0;
word persist←v3284 = 0;
word var←c9636;
formal←c9956 = (formal←c9956 - 16);
/* Inner: */
SOURCE(410, 790)
SOURCE(426, 22)
result←v3200 = (* (( (ptr) gf←c9924)+15) );
SOURCE(516, 94)
if (((* (( (ptr) formal←c9956)+7) ) != 0)) {
SOURCE(540, 70)
{
W2 var←c9572;
{
word pd35;
pd35 = (* (( (ptr) (* (( (ptr) gf←c9924)+33)/* var←c9348 */ ))+13) );
(void) ( *( (fPt) ((* (ptr) pd35 ))))((word) &var←c9572, (* (( (ptr) formal←c9956)+6) ), (* (( (ptr) formal←c9956)+7) ), pd35)
;
};
msg←v3228 = var←c9572.f1;
result←v3200 = var←c9572.f0;
};
};
SOURCE(615, 71)
if ((msg←v3228 != 0)) {
SOURCE(635, 24)
{
word pd36;
pd36 = (* (( (ptr) (* (( (ptr) gf←c9924)+35)/* var←c9604 */ ))+93) );
(void) ( *( (fPt) ((* (ptr) pd36 ))))((* (( (ptr) (* (( (ptr) formal←c9956)+6) ))+1) ), msg←v3228, 0, 2147483647, pd36);
};
SOURCE(661, 25)
{
word pd37;
pd37 = (* (( (ptr) (* (( (ptr) gf←c9924)+35)/* var←c9604 */ ))+93) );
(void) ( *( (fPt) ((* (ptr) pd37 ))))((* (( (ptr) (* (( (ptr) formal←c9956)+6) ))+1) ), (* (( (ptr) gf←c9924)+17) ), 0, 2147483647, pd37)
;
};
};
SOURCE(691, 136)
if ((result←v3200 == (* (( (ptr) gf←c9924)+15) ))) {
SOURCE(717, 51)
{
word pd38;
pd38 = (* (( (ptr) (* (( (ptr) gf←c9924)+35)/* var←c9604 */ ))+93) );
(void) ( *( (fPt) ((* (ptr) pd38 ))))((* (( (ptr) (* (( (ptr) formal←c9956)+6) ))+1) ), (* (( (ptr) gf←c9924)+18) ), 0, 2147483647, pd38)
;
};
SOURCE(770, 28)
{
word pd39;
pd39 = (* (( (ptr) (* (( (ptr) gf←c9924)+35)/* var←c9604 */ ))+93) );
(void) ( *( (fPt) ((* (ptr) pd39 ))))((* (( (ptr) (* (( (ptr) formal←c9956)+6) ))+1) ), (* (( (ptr) formal←c9956)+7) ), 0, 2147483647, pd39)
;
};
SOURCE(800, 27)
{
word pd40;
pd40 = (* (( (ptr) (* (( (ptr) gf←c9924)+35)/* var←c9604 */ ))+93) );
(void) ( *( (fPt) ((* (ptr) pd40 ))))((* (( (ptr) (* (( (ptr) formal←c9956)+6) ))+1) ), (* (( (ptr) gf←c9924)+19) ), 0, 2147483647, pd40)
;
};
};
SOURCE(832, 48)
{
word pd41;
pd41 = (* (( (ptr) (* (( (ptr) gf←c9924)+33)/* var←c9348 */ ))+17) );
hadFailure←v3256 = (word) ( *( (fPt) ((* (ptr) pd41 ))))((* ((( (ptr) formal←c9956)+6)) ), pd41);
};
SOURCE(882, 125)
{
word pd42;
word pd43;
var←c9636 = (word) GetEnv←P120((* (( (ptr) formal←c9956)+6) ), (* (( (ptr) gf←c9924)+20) ));
pd42 = (* (( (ptr) (* (( (ptr) gf←c9924)+36)/* var←c9668 */ ))+15) );
if (( (int)(word) ( *( (fPt) ((* (ptr) pd42 ))))(var←c9636, pd42) > (int)0)) {
persist←v3284 = 1;
}
else {
pd43 = (* (( (ptr) (* (( (ptr) gf←c9924)+37)/* var←c9700 */ ))+11) );
persist←v3284 = ((word) ( *( (fPt) ((* (ptr) pd43 ))))((* (( (ptr) gf←c9924)+21) ), (* (( (ptr) gf←c9924)+22) ), pd43) != 0);
};
};
SOURCE(1009, 71)
if ((0 == persist←v3284)) {
SOURCE(1029, 51)
{
word pd44;
pd44 = (* (( (ptr) (* (( (ptr) gf←c9924)+35)/* var←c9604 */ ))+93) );
(void) ( *( (fPt) ((* (ptr) pd44 ))))((* (( (ptr) (* (( (ptr) formal←c9956)+6) ))+1) ), (* (( (ptr) gf←c9924)+23) ), 0, 2147483647, pd44)
;
};
};
SOURCE(1082, 68)
if ((0 != hadFailure←v3256)) {
SOURCE(1102, 48)
{
word pd45;
pd45 = (* (( (ptr) (* (( (ptr) gf←c9924)+35)/* var←c9604 */ ))+93) );
(void) ( *( (fPt) ((* (ptr) pd45 ))))((* (( (ptr) (* (( (ptr) formal←c9956)+6) ))+2) ), (* (( (ptr) gf←c9924)+24) ), 0, 2147483647, pd45)
;
};
};
SOURCE(1154, 46)
lab←L100002: ;
if (persist←v3284) {
}
else {
goto lab←L100000;
};
SOURCE(1171, 29)
{
word pd46;
pd46 = (* (( (ptr) (* (( (ptr) gf←c9924)+38)/* var←c9732 */ ))+21) );
(void) ( *( (fPt) ((* (ptr) pd46 ))))(400000, pd46);
};
goto lab←L100002;
lab←L100000: ;
}
static word GetEnv←P120(cmd←v2984, key←v3012)
word cmd←v2984;
word key←v3012;
{
register ptr gf←c9988 = (ptr) &globalframe;
word var←c3056;
/* GetEnv: */
SOURCE(1450, 182)
SOURCE(1517, 115)
{
word var←c9796;
{
word var←c9764;
{
word pd47;
pd47 = (* (( (ptr) (* (( (ptr) gf←c9988)+37)/* var←c9700 */ ))+5) );
var←c9764 = (word) ( *( (fPt) ((* (ptr) pd47 ))))(key←v3012, 0, 2147483647, pd47);
};
{
word pd48;
pd48 = (* (( (ptr) (* (( (ptr) gf←c9988)+33)/* var←c9348 */ ))+15) );
var←c9796 = (word) ( *( (fPt) ((* (ptr) pd48 ))))(cmd←v2984, var←c9764, pd48);
};
};
if ((var←c9796 == 0)) {
goto lab←L100003;
};
{
word tc49;
if (((* (( (ptr) gf←c9988)+5) ) == XR←GetReferentType(var←c9796))) {
tc49 = (word) ((*(int*)var←c9796<0) == 0);
}
else {
tc49 = (word) 0;
};
if (tc49) {
{
word rope←v3344;
rope←v3344 = var←c9796;
SOURCE(1594, 13)
return(rope←v3344);
};
}
else {
lab←L100003: ;
SOURCE(1620, 12)
return(0);
};
};
};
}
/* file: CommanderOnStandardStreamsImpl, module: CommanderOnStandardStreamsImpl, compiled at: January 26, 1993 3:31:50 pm PST */
extern void XR←install←CommanderOnStandardStreamsImpl() {
NoName←Q288();
}
extern void XR←run←CommanderOnStandardStreamsImpl() { XR←Start(&globalframe); }