cechew@bruce.OZ (Earl Chew) (09/05/89)
#! /bin/sh # This is a shell archive. Remove anything before this line, then unpack # it by saving it into a file and typing "sh file". To overwrite existing # files, type "sh file -c". You can also feed this as standard input via # unshar, or by typing "sh <file", e.g.. If this archive is complete, you # will see the following message at the end: # "End of archive 4 (of 5)." # Contents: stdio.h.cdif stdiolib.h.cdif texit.c.cdif # Wrapped by cechew@bruce on Tue Sep 5 16:55:08 1989 PATH=/bin:/usr/bin:/usr/ucb ; export PATH if test -f 'stdio.h.cdif' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'stdio.h.cdif'\" else echo shar: Extracting \"'stdio.h.cdif'\" \(8955 characters\) sed "s/^X//" >'stdio.h.cdif' <<'END_OF_FILE' X*** Old/stdio.h Mon Sep 4 10:51:05 1989 X--- New/stdio.h Tue Sep 5 16:38:35 1989 X*************** X*** 3,8 X * Author: C. E. Chew X * Date: August 1989 X * X * Definitions and user interface for the stream io package. X * X * Edit History: X X--- 3,15 ----- X * Author: C. E. Chew X * Date: August 1989 X * X+ * (C) Copyright C E Chew X+ * X+ * Feel free to copy, use and distribute this software provided: X+ * X+ * 1. you do not pretend that you wrote it X+ * 2. you leave this copyright notice intact. X+ * X * Definitions and user interface for the stream io package. X * X * Patchlevel 1.1 X*************** X*** 5,10 X * X * Definitions and user interface for the stream io package. X * X * Edit History: X * 04-Sep-1989 Undo change to putc() since it makes it so much X * more complicated and makes so little difference X X--- 12,19 ----- X * X * Definitions and user interface for the stream io package. X * X+ * Patchlevel 1.1 X+ * X * Edit History: X * 05-Sep-1989 Make self reliant by removing dependency on proto.h X * and varargs.h. X*************** X*** 6,11 X * Definitions and user interface for the stream io package. X * X * Edit History: X * 04-Sep-1989 Undo change to putc() since it makes it so much X * more complicated and makes so little difference X * to the speed. X X--- 15,22 ----- X * Patchlevel 1.1 X * X * Edit History: X+ * 05-Sep-1989 Make self reliant by removing dependency on proto.h X+ * and varargs.h. X * 04-Sep-1989 Undo change to putc() since it makes it so much X * more complicated and makes so little difference X * to the speed. X*************** X*** 17,24 X * many moons ago. X */ X X! #include <proto.h> X! #include <varargs.h> X X #define BUFSIZ 1024 X #define _NFILE 20 X X--- 28,34 ----- X * many moons ago. X */ X X! #if !defined(__STDIO__) X X #define __STDIO__ X X*************** X*** 20,25 X #include <proto.h> X #include <varargs.h> X X #define BUFSIZ 1024 X #define _NFILE 20 X X X--- 30,43 ----- X X #if !defined(__STDIO__) X X+ #define __STDIO__ X+ X+ #if defined(__STDC__) X+ # define __STDIO_P__(x) x X+ #else X+ # define __STDIO_P__(x) () X+ #endif X+ X #define BUFSIZ 1024 X #define _NFILE 20 X X*************** X*** 56,62 X #define stdout (_iop[1]) X #define stderr (_iop[2]) X X! #define getc(p) ((p)->_ptr<(p)->_end?*(p)->_ptr++\ X :_filbuf(p)) X #define getchar() getc(stdin) X X X--- 74,80 ----- X #define stdout (_iop[1]) X #define stderr (_iop[2]) X X! #define getc(p) ((p)->_ptr<(p)->_end?(int)(*(p)->_ptr++)\ X :_filbuf(p)) X #define getchar() getc(stdin) X X*************** X*** 60,67 X :_filbuf(p)) X #define getchar() getc(stdin) X X! #define putc(x,p) ((p)->_ptr<(p)->_end?*(p)->_ptr++=(unsigned char)(x)\ X! :_flsbuf((x),(p))) X #define putchar(x) putc(x,stdout) X X #define fileno(p) ((p)->_file) X X--- 78,86 ----- X :_filbuf(p)) X #define getchar() getc(stdin) X X! #define putc(x,p) ((p)->_ptr<(p)->_end\ X! ?(int)(*(p)->_ptr++=(unsigned char)(x))\ X! :_flsbuf((x),(p))) X #define putchar(x) putc(x,stdout) X X #define fileno(p) ((p)->_file) X*************** X*** 70,77 X #define ferror(p) (((p)->_flag&_IOERR)!=0) X #define clearerr(p) ((p)->_flag&=~(_IOEOF|_IOERR)) X X! int _filbuf Prototype((FILE *)); X! int _flsbuf Prototype((int, FILE *)); X X FILE *fopen Prototype((char *, char *)); X FILE *fdopen Prototype((int, char *)); X X--- 89,96 ----- X #define ferror(p) (((p)->_flag&_IOERR)!=0) X #define clearerr(p) ((p)->_flag&=~(_IOEOF|_IOERR)) X X! int _filbuf __STDIO_P__((FILE *)); X! int _flsbuf __STDIO_P__((int, FILE *)); X X FILE *fopen __STDIO_P__((char *, char *)); X FILE *fdopen __STDIO_P__((int, char *)); X*************** X*** 73,83 X int _filbuf Prototype((FILE *)); X int _flsbuf Prototype((int, FILE *)); X X! FILE *fopen Prototype((char *, char *)); X! FILE *fdopen Prototype((int, char *)); X! FILE *freopen Prototype((char *, char *, FILE *)); X! int fflush Prototype((FILE *)); X! int fclose Prototype((FILE *)); X X long ftell Prototype((FILE *)); X int fseek Prototype((FILE *, long, int)); X X--- 92,102 ----- X int _filbuf __STDIO_P__((FILE *)); X int _flsbuf __STDIO_P__((int, FILE *)); X X! FILE *fopen __STDIO_P__((char *, char *)); X! FILE *fdopen __STDIO_P__((int, char *)); X! FILE *freopen __STDIO_P__((char *, char *, FILE *)); X! int fflush __STDIO_P__((FILE *)); X! int fclose __STDIO_P__((FILE *)); X X long ftell __STDIO_P__((FILE *)); X int fseek __STDIO_P__((FILE *, long, int)); X*************** X*** 79,87 X int fflush Prototype((FILE *)); X int fclose Prototype((FILE *)); X X! long ftell Prototype((FILE *)); X! int fseek Prototype((FILE *, long, int)); X! void rewind Prototype((FILE *)); X X int fgetc Prototype((FILE *)); X int fputc Prototype((int, FILE *)); X X--- 98,106 ----- X int fflush __STDIO_P__((FILE *)); X int fclose __STDIO_P__((FILE *)); X X! long ftell __STDIO_P__((FILE *)); X! int fseek __STDIO_P__((FILE *, long, int)); X! void rewind __STDIO_P__((FILE *)); X X int fgetc __STDIO_P__((FILE *)); X int fputc __STDIO_P__((int, FILE *)); X*************** X*** 83,98 X int fseek Prototype((FILE *, long, int)); X void rewind Prototype((FILE *)); X X! int fgetc Prototype((FILE *)); X! int fputc Prototype((int, FILE *)); X! int fread Prototype((void *, unsigned int, unsigned int, FILE *)); X! int fwrite Prototype((void *, unsigned int, unsigned int, FILE *)); X! int getw Prototype((FILE *)); X! int putw Prototype((int, FILE *)); X! char *gets Prototype((char *)); X! char *fgets Prototype((char *, int, FILE *)); X! int puts Prototype((char *)); X! int fputs Prototype((char *, FILE *)); X X int ungetc Prototype((int, FILE *)); X X X--- 102,119 ----- X int fseek __STDIO_P__((FILE *, long, int)); X void rewind __STDIO_P__((FILE *)); X X! int fgetc __STDIO_P__((FILE *)); X! int fputc __STDIO_P__((int, FILE *)); X! int fread __STDIO_P__((void *, unsigned int, X! unsigned int, FILE *)); X! int fwrite __STDIO_P__((void *, unsigned int, X! unsigned int, FILE *)); X! int getw __STDIO_P__((FILE *)); X! int putw __STDIO_P__((int, FILE *)); X! char *gets __STDIO_P__((char *)); X! char *fgets __STDIO_P__((char *, int, FILE *)); X! int puts __STDIO_P__((char *)); X! int fputs __STDIO_P__((char *, FILE *)); X X int ungetc __STDIO_P__((int, FILE *)); X X*************** X*** 94,100 X int puts Prototype((char *)); X int fputs Prototype((char *, FILE *)); X X! int ungetc Prototype((int, FILE *)); X X int printf Prototype((char *, ...)); X int fprintf Prototype((FILE *, char *, ...)); X X--- 115,121 ----- X int puts __STDIO_P__((char *)); X int fputs __STDIO_P__((char *, FILE *)); X X! int ungetc __STDIO_P__((int, FILE *)); X X int printf __STDIO_P__((char *, ...)); X int fprintf __STDIO_P__((FILE *, char *, ...)); X*************** X*** 96,113 X X int ungetc Prototype((int, FILE *)); X X! int printf Prototype((char *, ...)); X! int fprintf Prototype((FILE *, char *, ...)); X! int sprintf Prototype((char *, char *, ...)); X! int vprintf Prototype((char *, va_list)); X! int vfprintf Prototype((FILE *, char *, va_list)); X! int vsprintf Prototype((char *, char *, va_list)); X! int scanf Prototype((char *, ...)); X! int fscanf Prototype((FILE *, char *, ...)); X! int sscanf Prototype((char *, char *, ...)); X! int vscanf Prototype((char *, va_list)); X! int vfscanf Prototype((FILE *, char *, va_list)); X! int vsscanf Prototype((char *, char *, va_list)); X X void setbuf Prototype((FILE *, char *)); X int setvbuf Prototype((FILE *, char *, int, unsigned int)); X X--- 117,134 ----- X X int ungetc __STDIO_P__((int, FILE *)); X X! int printf __STDIO_P__((char *, ...)); X! int fprintf __STDIO_P__((FILE *, char *, ...)); X! int sprintf __STDIO_P__((char *, char *, ...)); X! int vprintf __STDIO_P__((char *, char *)); X! int vfprintf __STDIO_P__((FILE *, char *, char *)); X! int vsprintf __STDIO_P__((char *, char *, char *)); X! int scanf __STDIO_P__((char *, ...)); X! int fscanf __STDIO_P__((FILE *, char *, ...)); X! int sscanf __STDIO_P__((char *, char *, ...)); X! int vscanf __STDIO_P__((char *, char *)); X! int vfscanf __STDIO_P__((FILE *, char *, char *)); X! int vsscanf __STDIO_P__((char *, char *, char *)); X X void setbuf __STDIO_P__((FILE *, char *)); X int setvbuf __STDIO_P__((FILE *, char *, int, unsigned int)); X*************** X*** 109,113 X int vfscanf Prototype((FILE *, char *, va_list)); X int vsscanf Prototype((char *, char *, va_list)); X X! void setbuf Prototype((FILE *, char *)); X! int setvbuf Prototype((FILE *, char *, int, unsigned int)); X X--- 130,135 ----- X int vfscanf __STDIO_P__((FILE *, char *, char *)); X int vsscanf __STDIO_P__((char *, char *, char *)); X X! void setbuf __STDIO_P__((FILE *, char *)); X! int setvbuf __STDIO_P__((FILE *, char *, int, unsigned int)); X! #endif END_OF_FILE if test 8955 -ne `wc -c <'stdio.h.cdif'`; then echo shar: \"'stdio.h.cdif'\" unpacked with wrong size! fi # end of 'stdio.h.cdif' fi if test -f 'stdiolib.h.cdif' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'stdiolib.h.cdif'\" else echo shar: Extracting \"'stdiolib.h.cdif'\" \(6525 characters\) sed "s/^X//" >'stdiolib.h.cdif' <<'END_OF_FILE' X*** Old/stdiolib.h Mon Sep 4 09:02:08 1989 X--- New/stdiolib.h Tue Sep 5 16:39:01 1989 X*************** X*** 1,5 X /* s t d i o l i b X * X * This include file is used by the stdio code. It provides some X * useful macro definitions that make the code a bit easier to X * write. X X--- 1,12 ----- X /* s t d i o l i b X * X+ * (C) Copyright C E Chew X+ * X+ * Feel free to copy, use and distribute this software provided: X+ * X+ * 1. you do not pretend that you wrote it X+ * 2. you leave this copyright notice intact. X+ * X * This include file is used by the stdio code. It provides some X * useful macro definitions that make the code a bit easier to X * write. X*************** X*** 4,10 X * useful macro definitions that make the code a bit easier to X * write. X * X! * Edit History: X * X * 03-Sep-1989 Added BUFFERSIZE() and altered UNUSEDINBUFFER() to X * accommodate line buffered streams. Added PUTC() X X--- 11,17 ----- X * useful macro definitions that make the code a bit easier to X * write. X * X! * Patchlevel 1.1 X * X * Edit History: X * 05-Sep-1989 Remove dependency on MINIX define. Define P() instead X*************** X*** 6,11 X * X * Edit History: X * X * 03-Sep-1989 Added BUFFERSIZE() and altered UNUSEDINBUFFER() to X * accommodate line buffered streams. Added PUTC() X * and NPUTC() for non line buffered streams. X X--- 13,25 ----- X * X * Patchlevel 1.1 X * X+ * Edit History: X+ * 05-Sep-1989 Remove dependency on MINIX define. Define P() instead X+ * of Prototype() (apparently less distracting). Use X+ * atexit() instead of __cleanup for better portability. X+ * For ld type loaders, we can use a loader trick X+ * and not use an explicit call to atexit thus SETIOFLUSH X+ * can be empty (almost). X * 03-Sep-1989 Added BUFFERSIZE() and altered UNUSEDINBUFFER() to X * accommodate line buffered streams. Added PUTC() X * and NPUTC() for non line buffered streams. X*************** X*** 12,17 X */ X X #include <stdio.h> X X #ifdef MINIX X extern void (*__cleanup) Prototype(()); /* pointer to cleanup function */ X X--- 26,33 ----- X */ X X #include <stdio.h> X+ #include <varargs.h> X+ #include <errno.h> X X #if defined(__STDC__) X # define P(x) x X*************** X*** 13,20 X X #include <stdio.h> X X! #ifdef MINIX X! extern void (*__cleanup) Prototype(()); /* pointer to cleanup function */ X #endif X X void _cleanup Prototype(()); /* cleanup function */ X X--- 29,38 ----- X #include <varargs.h> X #include <errno.h> X X! #if defined(__STDC__) X! # define P(x) x X! #else X! # define P(x) () X #endif X X void _ioflush P((void)); /* flush output */ X*************** X*** 17,27 X extern void (*__cleanup) Prototype(()); /* pointer to cleanup function */ X #endif X X! void _cleanup Prototype(()); /* cleanup function */ X! int _allocbuf Prototype((FILE *)); /* internal buffering */ X! int _fopen Prototype((char *, char *, int, short *)); /* fopen assist */ X! FILE **_slot Prototype((FILE *)); /* find a slot */ X! FILE *_file Prototype((FILE *, int, short)); /* initialise FILE */ X X /* Flag manipulation macros */ X X X--- 35,46 ----- X # define P(x) () X #endif X X! void _ioflush P((void)); /* flush output */ X! void _ioexit P((void)); /* exit linking function */ X! int _allocbuf P((FILE *)); /* internal buffering */ X! int _fopen P((char *, char *, int, short *)); /* fopen assist */ X! FILE **_slot P((FILE *)); /* find a slot */ X! FILE *_file P((FILE *, int, short)); /* initialise FILE */ X X int atexit P((void (*)(void))); /* specify wrapup */ X X*************** X*** 23,28 X FILE **_slot Prototype((FILE *)); /* find a slot */ X FILE *_file Prototype((FILE *, int, short)); /* initialise FILE */ X X /* Flag manipulation macros */ X X #define TESTFLAG(f,x) (((f)->_flag & (x)) != 0) X X--- 42,52 ----- X FILE **_slot P((FILE *)); /* find a slot */ X FILE *_file P((FILE *, int, short)); /* initialise FILE */ X X+ int atexit P((void (*)(void))); /* specify wrapup */ X+ X+ extern int _wrapstdio; /* stdio wrap required */ X+ extern int errno; /* system error number */ X+ X /* Flag manipulation macros */ X X #define TESTFLAG(f,x) (((f)->_flag & (x)) != 0) X*************** X*** 31,37 X #define GETFLAG(f,x) ((f)->_flag & (x)) X #define TOGGLEFLAG(f,x) ((f)->_flag ^= (x)) X X! /* Add _cleanup to exit code X * X * Check is _cleanup needs to be added to the exit code. If so then X * add it. This macro is run time system dependent. X X--- 55,61 ----- X #define GETFLAG(f,x) ((f)->_flag & (x)) X #define TOGGLEFLAG(f,x) ((f)->_flag ^= (x)) X X! /* Add _ioflush to exit code X * X * Check is _ioflush needs to be added to the exit code. If so then X * add it. This macro is run time system dependent. X*************** X*** 33,39 X X /* Add _cleanup to exit code X * X! * Check is _cleanup needs to be added to the exit code. If so then X * add it. This macro is run time system dependent. X */ X #if defined(MINIX) X X--- 57,63 ----- X X /* Add _ioflush to exit code X * X! * Check is _ioflush needs to be added to the exit code. If so then X * add it. This macro is run time system dependent. X */ X #if defined(MSDOS) X*************** X*** 36,43 X * Check is _cleanup needs to be added to the exit code. If so then X * add it. This macro is run time system dependent. X */ X! #if defined(MINIX) X! # define SETCLEANUP() { if (__cleanup == NULL) __cleanup = _cleanup; } X #endif X #if !defined(SETCLEANUP) X # define SETCLEANUP() X X--- 60,67 ----- X * Check is _ioflush needs to be added to the exit code. If so then X * add it. This macro is run time system dependent. X */ X! #if defined(MSDOS) X! # define SETIOFLUSH() { if (_wrapstdio != 0) _wrapstdio = atexit(_ioflush); } X #endif X X #if !defined(SETIOFLUSH) X*************** X*** 39,46 X #if defined(MINIX) X # define SETCLEANUP() { if (__cleanup == NULL) __cleanup = _cleanup; } X #endif X! #if !defined(SETCLEANUP) X! # define SETCLEANUP() X #endif X X /* Putc for non buffered streams X X--- 63,71 ----- X #if defined(MSDOS) X # define SETIOFLUSH() { if (_wrapstdio != 0) _wrapstdio = atexit(_ioflush); } X #endif X! X! #if !defined(SETIOFLUSH) X! # define SETIOFLUSH() _ioexit() X #endif X X /* Putc for non buffered streams X*************** X*** 57,63 X */ X #define PUTC(x,p) ( \ X (p)->_ptr < (p)->_base + (p)->_bufsiz \ X! ? *(p)->_ptr++ = (unsigned char)(x) \ X : _flsbuf((x),(p)) \ X ) X X X--- 82,88 ----- X */ X #define PUTC(x,p) ( \ X (p)->_ptr < (p)->_base + (p)->_bufsiz \ X! ? (int) (*(p)->_ptr++ = (unsigned char)(x)) \ X : _flsbuf((x),(p)) \ X ) X END_OF_FILE if test 6525 -ne `wc -c <'stdiolib.h.cdif'`; then echo shar: \"'stdiolib.h.cdif'\" unpacked with wrong size! fi # end of 'stdiolib.h.cdif' fi if test -f 'texit.c.cdif' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'texit.c.cdif'\" else echo shar: Extracting \"'texit.c.cdif'\" \(137 characters\) sed "s/^X//" >'texit.c.cdif' <<'END_OF_FILE' X*** /dev/null Tue Sep 5 16:22:51 1989 X--- New/texit.c Tue Sep 5 14:48:13 1989 X*************** X*** 0 X X--- 1,4 ----- X+ main() X+ X+ { X+ } END_OF_FILE if test 137 -ne `wc -c <'texit.c.cdif'`; then echo shar: \"'texit.c.cdif'\" unpacked with wrong size! fi # end of 'texit.c.cdif' fi echo shar: End of archive 4 \(of 5\). cp /dev/null ark4isdone MISSING="" for I in 1 2 3 4 5 ; do if test ! -f ark${I}isdone ; then MISSING="${MISSING} ${I}" fi done if test "${MISSING}" = "" ; then echo You have unpacked all 5 archives. rm -f ark[1-9]isdone else echo You still need to unpack the following archives: echo " " ${MISSING} fi ## End of shell archive. exit 0