|
|
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.