Revision: | 1.7 |
Committed: | Thu Sep 11 05:34:47 2008 UTC (16 years ago) by greg |
Content type: | text/plain |
Branch: | MAIN |
CVS Tags: | rad5R2, rad4R2P2, rad5R0, rad5R1, rad4R2, rad4R1, rad4R0, rad4R2P1, rad5R3 |
Changes since 1.6: | +4 -1 lines |
Log Message: | Avoid returning error on spurious errno settings |
# | User | Rev | Content |
---|---|---|---|
1 | greg | 1.1 | #ifndef lint |
2 | greg | 1.7 | static const char RCSid[] = "$Id: ev.c,v 1.6 2003/11/14 17:31:24 schorsch Exp $"; |
3 | greg | 1.1 | #endif |
4 | /* | ||
5 | * ev.c - program to evaluate expression arguments | ||
6 | * | ||
7 | * 1/29/87 | ||
8 | */ | ||
9 | |||
10 | schorsch | 1.2 | #include <stdlib.h> |
11 | greg | 1.1 | #include <stdio.h> |
12 | schorsch | 1.4 | #include <errno.h> |
13 | greg | 1.1 | |
14 | #include "calcomp.h" | ||
15 | schorsch | 1.3 | #include "rterror.h" |
16 | greg | 1.1 | |
17 | |||
18 | schorsch | 1.6 | int |
19 | greg | 1.1 | main(argc, argv) |
20 | int argc; | ||
21 | char *argv[]; | ||
22 | { | ||
23 | int i; | ||
24 | |||
25 | esupport |= E_FUNCTION; | ||
26 | esupport &= ~(E_VARIABLE|E_INCHAN|E_OUTCHAN|E_RCONST); | ||
27 | |||
28 | #ifdef BIGGERLIB | ||
29 | biggerlib(); | ||
30 | #endif | ||
31 | |||
32 | errno = 0; | ||
33 | for (i = 1; i < argc; i++) | ||
34 | printf("%.9g\n", eval(argv[i])); | ||
35 | |||
36 | greg | 1.7 | if (errno != EDOM && errno != ERANGE) |
37 | errno = 0; | ||
38 | |||
39 | greg | 1.1 | quit(errno ? 2 : 0); |
40 | schorsch | 1.6 | return (errno ? 2 : 0); /* pro forma return */ |
41 | greg | 1.1 | } |
42 | |||
43 | |||
44 | void | ||
45 | eputs(msg) | ||
46 | char *msg; | ||
47 | { | ||
48 | fputs(msg, stderr); | ||
49 | } | ||
50 | |||
51 | |||
52 | void | ||
53 | wputs(msg) | ||
54 | char *msg; | ||
55 | { | ||
56 | eputs(msg); | ||
57 | } | ||
58 | |||
59 | |||
60 | void | ||
61 | quit(code) | ||
62 | int code; | ||
63 | { | ||
64 | exit(code); | ||
65 | } |