|
|
1.1 root 1: /* As per your license agreement, your distribution is not to be moved or copied outside the Designated Site
2: * without specific permission from Plum Hall Inc.
3: */
4:
5: /*
6: * SDUTIL - system-dependent utility routines for freestanding implementations
7: *
8: * These functions are used by UTIL.C. They provide facilities that cannot
9: * be implemented portably and must be rewritten for each freestanding imple-
10: * mentation. This sample implementation uses standard library functions
11: * (provided by a hosted implementation).
12: */
13:
14: #ifndef FREESTANDING
15: #include <errno.h>
16: #include <stdio.h>
17: #endif /* FREESTANDING */
18:
19: #include "defs.h"
20:
21: extern char last_char_printed;
22:
23: /*
24: * PR_OK - printf a text line in ok situation (no error, just text)
25: */
26: void pr_ok FN_DEF1(s,
27: const char *s)
28: {
29: char c;
30: fputs(s, stdout);
31: while (*s != '\0')
32: c = *s++;
33: last_char_printed = c;
34: fflush(stdout);
35: }
36:
37: /*
38: * SETZERO - appear, to a compiler, as though Zero is unpredictably set
39: */
40: void setzero()
41: {
42: FILE *fp;
43: int save;
44:
45: save = errno;
46: if ((fp = fopen("nonexistent", "r")) != 0)
47: {
48: fscanf(fp, "ignore format", &Zero);
49: fclose(fp);
50: }
51: errno = save;
52: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.