9
/* #include "expr.h" */
23
double ArrowScale = 1.0;
25
static int SinterFlag = 0;
27
static char* trueStr = "true";
28
static char* falseStr = "false";
33
if (v) return trueStr;
38
file_select (char *str)
43
if (rv == NULL) { perror(str); exit(1); }
48
static char* useString = "nat [opts] files\n\
49
-p -- postscript output\n\
50
-v[n] -- verbose mode\n\
52
-C -- use connected components\n\
55
-A[s] -- add arrows on digraphs, scaled by s\n\
57
-o outfile (<stdout>)\n\
62
where d is distance between points and t is current iteration\n";
67
printf (useString, DfltHeight, DfltWidth, DfltIters);
71
void initialize(int argc, char** argv)
78
for (i = 1; i < argc; i++)
79
if (argv[i][0] != '-') nfiles++;
80
Files = (char**)malloc((nfiles + 1)*sizeof(char *));
82
for (i = 1; i < argc; i++) {
83
if (argv[i][0] == '-') {
85
switch (c = argv[i][1]) {
87
Output_file = file_select(rest[0]?rest:argv[++i]);
91
if (rest[0]) ArrowScale = atof(rest);
106
Verbose = rest[0]?atoi(rest):1;
109
UserK = atof(rest[0]?rest:argv[++i]);
112
tmp = atof(rest[0]?rest:argv[++i]);
113
if (tmp > 0.0) Stretch = tmp;
116
Width = atof(rest[0]?rest:argv[++i]);
119
Height = atof(rest[0]?rest:argv[++i]);
122
NumIters = atoi(rest[0]?rest:argv[++i]);
128
fprintf(stderr,"nat: option -%c unrecognized\n",c);
132
Files[nfiles++] = argv[i];
135
if (Output_file == NULL) Output_file = stdout;
138
void showOpts (FILE* outf)
140
fprintf (outf, "Connected components (C) : %s\n", boolOf (UseComp));
141
fprintf (outf, "Sinter mode (S) : %s\n", boolOf (SinterFlag));
142
fprintf (outf, "Grid mode (G) : %s\n", boolOf (UseGrid));
143
fprintf (outf, "Verbose level (v) : %d\n", Verbose);
144
fprintf (outf, "Width (w) : %f, Height (h) : %f, Iterations (n) :%d\n",
145
Width, Height, NumIters);