home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
gdead.berkeley.edu
/
gdead.berkeley.edu.tar
/
gdead.berkeley.edu
/
pub
/
cad-tools
/
ciftomann.tar
/
cmd_dir
/
find_pg.c
< prev
next >
Wrap
C/C++ Source or Header
|
1993-03-29
|
2KB
|
77 lines
#include <stdio.h>
#include "pg_desc.h"
#define NUMBER_OF_PGS 4 /* number of entries in pgarray */
struct pg_struct pg_array[NUMBER_OF_PGS] = {
/* stage aperature grid convert
min, max, min, max, size,factor, name */
{ 0, 600000, 10, 12000, 10, 25.4, "Gyrex" },
{ 0, 100000, 4, 3000, 2, 100, "Metric_Mann3000" },
{ -500000, 500000, 20, 9500, 1, 10, "PG3600" },
{ 0, 131070, 2, 131070, 2, .3814697265, "Lebes" }
};
struct pg_struct pg_desc;
init_pg()
{
pg_desc = pg_array[0];
}
find_pg_desc(name)
char *name;
{
int i;
int matched = -1;
if (strcmp(name,"list") == 0) {
/* give them a list of the existing pattern generators */
print_pg_names();
exit(0);
}
for (i = 0; i < NUMBER_OF_PGS; i++) {
if ( match(pg_array[i].name, name) ) {
if (matched != -1) {
fprintf(stderr, "%s is an ambiguous name for a pattern generator\n", name);
print_pg_names();
exit(1);
}
matched = i;
}
}
if (matched == -1) {
fprintf(stderr, "%s is not a known pattern generator\n", name);
print_pg_names();
exit(1);
}
pg_desc = pg_array[matched];
}
match(full, partial)
char *full, *partial;
{
while (*full != '\0' && *partial != '\0' && *full == *partial) {
full++;
partial++;
}
return(*partial == '\0');
}
print_pg_names()
{
int i;
fprintf(stderr, "Please use one of the following pattern generator types:\n");
for (i = 0; i < NUMBER_OF_PGS; i++) {
printf("%s\n", pg_array[i].name);
}
}