void outputstream ( /* ... */ );
void stor ( /* ... */ );
void rtos ( /* ... */ );
void readline ( /* ... */ );
void qualifierpresent ( /* ... */ );
productcode = "PLC", fname = "PLC", version = "2", release = "11", revision =
"4";
void fatalerror ( /* ... */ );
void printidentification ( /* ... */ );
const int summary = 0;
const int detail = 1;
void warningmessage (message)
{
int s = outputstream;
selectoutput (0);
printstring (concat (fname, ": "));
printstring (message);
newline ();
selectoutput (1);
printstring (concat (fname, ": "));
printstring (message);
newline ();
selectoutput (s);
}
void ps (s)
{
int i;
for (i = 1; i <= strlen (s); i += 1) {
if (s[(i) - 1] >= ' ')
printsymbol (s[(i) - 1]);
}
}
void printlimits (s, file, int mode)
{
// AST 1230: DECLARATION 1205 0 1227
// AST 1250: DECLARATION 1243 0 1247
if (setjmp ()) {
newline ();
return;
}
if ((strcmp (s, "") == 0) && (strcmp (file, "") == 0))
return;
if ((strcmp (s, "") == 0)) {
if (imp_resolve (file, concat ((":"), file))) {
}
if (imp_resolve (file, concat (("]"), file))) {
}
if (imp_resolve (file, concat (file, (";")))) {
}
if (strlen (file) == 12) {
printstring (" from MEBES file");
} else {
printstring (" default from input file");
}
newline ();
return;
} else if (strstr (s, ("EXT"))) {
printstring (" extents from input file");
newline ();
return;
}
toupper (s);
while (imp_resolve (s, concat (a, concat (("(INPUT "), b))))
s = concat (a, b);
while (imp_resolve (s, concat (a, concat ((")"), b))))
s = concat (a, b);
while (imp_resolve (s, concat (a, concat ((" "), b))))
s = concat (a, concat (" ", b));
while (imp_resolve (s, concat (a, concat ((" "), b))))
s = concat (a, concat (",", b));
if (imp_resolve (s, concat (lxs, concat ((","), a)))) {
}
if (imp_resolve (a, concat (lys, concat ((","), a)))) {
}
if (imp_resolve (a, concat (uxs, concat ((","), uys)))) {
}
if (mode == detail) {
spaces (10 - strlen (lxs));
} else {
space ();
}
printstring (lxs);
printsymbol (',');
printstring (lys);
if (mode == detail) {
spaces (20 - strlen (lys) - strlen (uxs));
} else {
printstring (" to ");
}
printstring (uxs);
printsymbol (',');
printstring (uys);
cx = ((float) ((stor (uxs) - stor (lxs))) / (float) (2 + stor (lxs)));
cy = ((float) ((stor (uys) - stor (lys))) / (float) (2 + stor (lys)));
cxs = rtos (cx, 0, 5);
while (cxs[(strlen (cxs)) - 1] == '0')
cxs[strlen (cxs) - 1] = '\0';
if (cxs[(strlen (cxs)) - 1] == '.')
cxs[strlen (cxs) - 1] = '\0';
cys = rtos (cy, 0, 5);
while (cys[(strlen (cys)) - 1] == '0')
cys[strlen (cys) - 1] = '\0';
if (cys[(strlen (cys)) - 1] == '.')
cys[strlen (cys) - 1] = '\0';
if (mode == detail) {
spaces (20 - strlen (uys) - strlen (cxs));
} else {
printstring (" centre ");
}
printstring (cxs);
printsymbol (',');
printstring (cys);
newline ();
}
int main (int argc, char **argv)
{
const int maxlayer = 1000;
const int true = 1, false = 0;
const int primary = 0, secondary = 1, switch = 1;
static gash =;
// AST 3042: DECLARATION 3029 0 3039
file =, user = "";
const int eof = 16 _1827A, nsc = 16 _10001, nmf = 16 _182CA, topbit =
16 _10000000;
// AST 3158: DECLARATION 3154 0 3155
int status;
int count;
int files;
int total;
int source;
int hadfunction = false;
// AST 3268: DECLARATION 3264 0 3265
// AST 3291: DECLARATION 3284 0 3288
cincnames[maxlayer - 1 + 1 /* hack for now */ ];
functions[maxlayer - 1 + 1 /* hack for now */ ];
static;
static;
grows[maxlayer - 1 + 1 /* hack for now */ ];
oselects[maxlayer - 1 + 1 /* hack for now */ ];
pselects[maxlayer - 1 + 1 /* hack for now */ ];
pinputs[maxlayer - 1 + 1 /* hack for now */ ];
plimits[maxlayer - 1 + 1 /* hack for now */ ];
psizings[maxlayer - 1 + 1 /* hack for now */ ];
pscalings[maxlayer - 1 + 1 /* hack for now */ ];
porients[maxlayer - 1 + 1 /* hack for now */ ];
players[maxlayer - 1 + 1 /* hack for now */ ];
pstructures[maxlayer - 1 + 1 /* hack for now */ ];
sselects[maxlayer - 1 + 1 /* hack for now */ ];
sinputs[maxlayer - 1 + 1 /* hack for now */ ];
slimits[maxlayer - 1 + 1 /* hack for now */ ];
ssizings[maxlayer - 1 + 1 /* hack for now */ ];
sscalings[maxlayer - 1 + 1 /* hack for now */ ];
sorients[maxlayer - 1 + 1 /* hack for now */ ];
slayers[maxlayer - 1 + 1 /* hack for now */ ];
sstructures[maxlayer - 1 + 1 /* hack for now */ ];
void checkfile ()
{
// AST 4134: DECLARATION 4124 0 4131
if (setjmp ()) {
return;
}
int main (int argc, char **argv)
{
if (setjmp ()) {
warningmessage (concat ("Warning: Unable to open .cinc file ", rs));
// AST 4234: SIGNAL 4231 0 0
}
openinput (1, rs);
selectinput (1);
}
if (imp_resolve (rs, concat (("]"), cincname))) {
} else if (imp_resolve (rs, concat (("/"), cincname))) {
} else {
cincname = rs;
}
if (!
(imp_resolve (cincname, concat (cincname, (".CINC")))
|| imp_resolve (cincname, concat (cincname, (".cinc")))))
return;
int main (int argc, char **argv)
{
if (setjmp ()) {
closeinput ();
if (strcmp (grows (count), "0")) {
if (strcmp (psizings (count), "0")) {
if (stor (grows (count)) > 0 && stor (psizings (count)) > 0
|| stor (grows (count)) < 0
&& stor (psizings (count)) < 0) {
if (!((strcmp (functions (count), "XOR") == 0))) {
selectoutput (0);
printstring (concat
("File ",
concat (cincname,
" has both GROW and Primary SIZE in same direction")));
newline ();
if ((strcmp (user, "") == 0)) {
selectinput (0);
prompt
("Enter your initials to confirm this is OK: ");
readline (user);
toupper (user);
}
}
}
}
if (strcmp (ssizings (count), "0")) {
if (stor (grows (count)) > 0 && stor (ssizings (count)) > 0
|| stor (grows (count)) < 0
&& stor (ssizings (count)) < 0) {
selectoutput (0);
printstring (concat
("File ",
concat (cincname,
" has both GROW and Secondary SIZE in same direction")));
newline ();
if (strcmp (user, "")) {
selectinput (0);
prompt ("Enter your initials to confirm this is OK: ");
readline (user);
toupper (user);
}
}
}
}
return;
}
count += 1;
cincnames[count] = cincname;
strcpy (players[count], "");
strcpy (psizings[count], "0");
strcpy (porients[count], "0");
strcpy (pscalings[count], "1");
strcpy (players[count], "");
strcpy (pinputs[count], "");
strcpy (plimits[count], "");
strcpy (pstructures[count], "");
strcpy (ssizings[count], "0");
strcpy (sorients[count], "0");
strcpy (sscalings[count], "1");
strcpy (slayers[count], "");
strcpy (sinputs[count], "");
strcpy (sstructures[count], "");
strcpy (slimits[count], "");
strcpy (functions[count], "");
strcpy (grows[count], "0");
strcpy (oselects[count], "no");
strcpy (pselects[count], "no");
strcpy (sselects[count], "no");
strcpy (reverses[count], "no");
source = primary;
for (;;) {
readline (line);
if (strlen (line) <= 3)
continue;
if ((strcmp (substring (line, 1, 3), "! #") == 0)) {
count -= 1;
return;
}
uline = line;
toupper (uline);
code = substring (uline, 1, 3);
if (imp_resolve (line, concat ((" "), param))) {
}
if ((strcmp (code, "SWI") == 0)) {
source = source ^ switch;
} else if ((strcmp (code, "INP") == 0)) {
if (source == primary) {
strcpy (gash, "");
if (imp_resolve (param, concat ((":"), gash))) {
} else if (imp_resolve (param, concat (("]"), gash))) {
} else if (imp_resolve (param, concat (("/"), gash))) {
} else {
gash = param;
}
pinputs[count] = gash;
} else {
if (imp_resolve (param, concat ((":"), gash))) {
} else if (imp_resolve (line, concat (("]"), gash))) {
} else if (imp_resolve (line, concat (("/"), gash))) {
} else {
gash = param;
}
sinputs[count] = gash;
}
} else if ((strcmp (code, "LIM") == 0)) {
if (source == primary) {
plimits[count] = param;
} else {
slimits[count] = param;
}
} else if ((strcmp (code, "FUN") == 0)) {
functions[count] = param;
hadfunction = true;
} else if ((strcmp (code, "RES") == 0)) {
resolutions[count] = param;
} else if ((strcmp (code, "GRO") == 0)) {
grows[count] = param;
} else if ((strcmp (code, "SIZ") == 0)) {
if (source == primary) {
psizings[count] = param;
} else {
ssizings[count] = param;
}
} else if ((strcmp (code, "SCA") == 0)) {
if (source == primary) {
pscalings[count] = param;
} else {
sscalings[count] = param;
}
} else if ((strcmp (code, "ORI") == 0)) {
if (source == primary) {
porients[count] = param;
} else {
sorients[count] = param;
}
} else if ((strcmp (code, "REV") == 0)) {
reverses[count] = param;
} else if ((strcmp (code, "SEL") == 0)) {
if (strstr (uline, (" OUT"))) {
strcpy (oselects[count], "YES");
} else if (source == primary) {
strcpy (pselects[count], "YES");
} else {
strcpy (sselects[count], "YES");
}
} else if ((strcmp (code, "LAY") == 0)) {
if (source == primary) {
players[count] = param;
} else {
slayers[count] = param;
}
} else if ((strcmp (code, "STR") == 0)) {
if (source == primary) {
pstructures[count] = param;
} else {
sstructures[count] = param;
}
}
}
}
}
void outputinformation ()
{
int i;
int different;
if (strcmp (user, "")) {
printstring (concat
("User ",
concat (user,
" confirmed that same sign sizing was OK")));
newline ();
}
newline ();
if (count > 1) {
different = false;
for (i = 2; i <= count; i += 1) {
if (pinputs (i) != pinputs (1)
|| pstructures (i) != pstructures (1))
different = true;
}
} else {
different = true;
}
if (different == false) {
ps (concat
("All primary files input from " ", concat(pinputs(1), " "")));
if (strcmp (pstructures (1), "")) {
ps (concat (" with structure " ", concat(pstructures(1), " "")));
}
newline ();
} else {
printstring
("Filename Primary Input Structure");
newline ();
for (i = 1; i <= count; i += 1) {
ps (cincnames (i));
spaces (15 - strlen (cincnames (i)));
ps (pinputs (i));
space ();
spaces (30 - strlen (pinputs (i)));
ps (pstructures (i));
newline ();
}
}
if (hadfunction == true) {
newline ();
if (count > 1) {
different = false;
for (i = 2; i <= count; i += 1) {
if (sinputs (i) != sinputs (1)
|| sstructures (i) != sstructures (1))
different = true;
}
} else {
different = true;
}
if (different == false) {
ps (concat
("All secondary files input from " ", concat(sinputs(1), "
"")));
if (strcmp (sstructures (1), "")) {
ps (concat
(" with structure " ", concat(sstructures(1), " "")));
}
newline ();
} else {
ps ("Filename Secondary Input Structure");
newline ();
for (i = 1; i <= count; i += 1) {
if ((strcmp (functions (i), "") == 0))
continue;
ps (cincnames (i));
spaces (15 - strlen (cincnames (i)));
ps (sinputs (i));
space ();
spaces (30 - strlen (sinputs (i)));
ps (sstructures (i));
newline ();
}
}
}
newline ();
if (count > 1) {
different = false;
for (i = 2; i <= count; i += 1) {
if (plimits (i) != plimits (1))
different = true;
}
} else {
different = true;
}
if (different == false) {
ps ("All primary files have LIMITS ");
printlimits (plimits (1), pinputs (1), summary);
} else {
ps
("Filename Primary Limits LX,LY UX,UY CX,CY");
newline ();
for (i = 1; i <= count; i += 1) {
ps (cincnames (i));
spaces (15 - strlen (cincnames (i)));
printlimits (plimits (i), pinputs (i), detail);
}
}
if (hadfunction == true) {
newline ();
if (count > 1) {
different = false;
for (i = 2; i <= count; i += 1) {
if (slimits (i) != slimits (1) || sinputs (i) != sinputs (1))
different = true;
}
} else {
different = true;
}
if (different == false) {
ps ("All secondary files have LIMITS ");
printlimits (slimits (1), sinputs (1), summary);
} else {
ps
("Filename Secondary Limits LX,LY UX,UY CX,CY");
newline ();
for (i = 1; i <= count; i += 1) {
if ((strcmp (slimits (i), "") == 0)
&& (strcmp (sinputs (i), "") == 0))
continue;
ps (cincnames (i));
spaces (15 - strlen (cincnames (i)));
printlimits (slimits (i), sinputs (i), detail);
}
}
}
newline ();
ps
("Filename Layers Resol'n Grow Sizing Scaling Orient Reverse Select");
newline ();
for (i = 1; i <= count; i += 1) {
ps (cincnames (i));
spaces (15 - strlen (cincnames (i)));
if ((strcmp (players (i), "") == 0))
strcpy (players[i], "CFLT");
ps (players (i));
space ();
spaces (14 - strlen (players (i)));
junk = resolutions (i);
if (strchr (junk, '.')) {
while (junk[(strlen (junk)) - 1] == '0')
junk[strlen (junk) - 1] = '\0';
if (junk[(strlen (junk)) - 1] == '0')
strcat (junk, "0");
}
ps (junk);
space ();
spaces (12 - strlen (junk) - strlen (grows (i)));
ps (grows (i));
space ();
junk = psizings (i);
if (strchr (junk, '.')) {
while (junk[(strlen (junk)) - 1] == '0')
junk[strlen (junk) - 1] = '\0';
if (junk[(strlen (junk)) - 1] == '0')
strcat (junk, "0");
}
spaces (6 - strlen (junk));
ps (junk);
space ();
spaces (7 - strlen (pscalings (i)));
ps (pscalings (i));
space ();
spaces (6 - strlen (porients (i)));
ps (porients (i));
spaces (4);
ps (reverses (i));
space ();
spaces (6 - strlen (reverses (i)));
ps (pselects (i));
newline ();
if (strcmp (functions (i), "")) {
ps (" fun ");
ps (functions (i));
spaces (8 - strlen (functions (i)));
if ((strcmp (slayers (i), "") == 0))
strcpy (slayers[i], "CFLT");
ps (slayers (i));
space ();
junk = ssizings (i);
if (strchr (junk, '.')) {
while (junk[(strlen (junk)) - 1] == '0')
junk[strlen (junk) - 1] = '\0';
if (junk[(strlen (junk)) - 1] == '0')
strcat (junk, "0");
}
spaces (34 - strlen (slayers (i)) - strlen (junk));
ps (junk);
space ();
spaces (7 - strlen (sscalings (i)));
ps (sscalings (i));
space ();
spaces (6 - strlen (sorients (i)));
ps (sorients (i));
spaces (11);
ps (sselects (i));
newline ();
}
}
}
if (qualifierpresent ("IDENTIFY")) {
printidentification ();
if (!(qualifierpresent ("FILE")))
return;
}
count = 0;
files = 0;
for (;;) {
if (strstr (rs, ("CATS_START.CINC"))
|| strstr (rs, ("cats_start.cinc")))
continue;
files += 1;
checkfile ();
}
outputinformation ();
int main (int argc, char **argv)
{
if (setjmp ()) {
fatalerror ("Unable to open file PLC.LOG in the current directory");
}
openoutput (3, "plc.log");
}
selectoutput (3);
outputinformation ();
closeoutput ();
}