95 |
|
void printdefaults(void); |
96 |
|
void userror(char *msg); |
97 |
|
double normsc(void); |
98 |
< |
void cvthour(char *hs); |
98 |
> |
int cvthour(char *hs); |
99 |
|
void printhead(register int ac, register char **av); |
100 |
|
|
101 |
|
|
104 |
|
int argc; |
105 |
|
char *argv[]; |
106 |
|
{ |
107 |
+ |
int got_meridian = 0; |
108 |
|
int i; |
109 |
|
|
110 |
|
progname = argv[0]; |
125 |
|
day = atoi(argv[2]); |
126 |
|
if (day < 1 || day > 31) |
127 |
|
userror("bad day"); |
128 |
< |
cvthour(argv[3]); |
128 |
> |
got_meridian = cvthour(argv[3]); |
129 |
|
} |
130 |
|
for (i = 4; i < argc; i++) |
131 |
|
if (argv[i][0] == '-' || argv[i][0] == '+') |
167 |
|
s_longitude = atof(argv[++i]) * (PI/180); |
168 |
|
break; |
169 |
|
case 'm': |
170 |
+ |
if (got_meridian) { |
171 |
+ |
++i; |
172 |
+ |
break; /* time overrides */ |
173 |
+ |
} |
174 |
|
s_meridian = atof(argv[++i]) * (PI/180); |
175 |
|
break; |
176 |
|
default: |
375 |
|
} |
376 |
|
|
377 |
|
|
378 |
< |
void |
378 |
> |
int |
379 |
|
cvthour( /* convert hour string */ |
380 |
|
char *hs |
381 |
|
) |
393 |
|
} |
394 |
|
while (isdigit(*cp)) cp++; |
395 |
|
if (!*cp) |
396 |
< |
return; |
396 |
> |
return(0); |
397 |
|
if (tsolar || !isalpha(*cp)) { |
398 |
|
fprintf(stderr, "%s: bad time format: %s\n", progname, hs); |
399 |
|
exit(1); |
405 |
|
break; |
406 |
|
if (!cp[j] && !tzone[i].zname[j]) { |
407 |
|
s_meridian = tzone[i].zmer * (PI/180); |
408 |
< |
return; |
408 |
> |
return(1); |
409 |
|
} |
410 |
|
} while (tzone[i++].zname[0]); |
411 |
|
|