|
DataMuseum.dkPresents historical artifacts from the history of: DKUUG/EUUG Conference tapes |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about DKUUG/EUUG Conference tapes Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - downloadIndex: T b
Length: 3303 (0xce7) Types: TextFile Names: »b_input.BSD4_n.c«
└─⟦060c9c824⟧ Bits:30007080 DKUUG TeX 2/12/89 └─⟦this⟧ »./tex82/Unsupported/MFpxl/mflib/b_input.BSD4_n.c« └─⟦52210d11f⟧ Bits:30007239 EUUGD2: TeX 3 1992-12 └─⟦beba6c409⟧ »unix3.0/Unsupported.tar.Z« └─⟦25c524ae4⟧ └─⟦this⟧ »Unsupported/MFpxl/mflib/b_input.BSD4_n.c«
#ifndef lint static char RCSid[] = "$Header: b_input.c,v 1.0 86/01/31 14:58:03 richards Released $"; #endif /* * Byte Input routines: a compiler independent set of routines for * reading byte files for the MF utilities * * * function breadunsigned(var bf: bytefile): integer; * { return next byte of byte file as unsigned int } * * function breadsigned(var bf: bytefile): integer; * { return next byte of byte file as signed value } * * function bread2unsigned(var bf: bytefile): integer; * function bread2signed(var bf: bytefile): integer; * function bread3unsigned(var bf: bytefile): integer; * function bread3signed(var bf: bytefile): integer; * function bread4signed(var bf: bytefile): integer; * { similar to breadsigned/unsigned; but return } * { 2, 3, or 4 bytes, either as signed or } * { unsigned value } * */ #include <stdio.h> #include "mftypes.h" /* * function breadsigned(var f: bytefile): integer; * * read next byte (signed) from bytefile "f". * if EOF is true or file isn't open, return 0 */ integer breadsigned(bf) bytefile *bf; { register FILE *fp = bf->b_fp; register int c; if (fp == NULL || (c = getc(fp)) == EOF) return(0); if (bf->b_locptr) *bf->b_locptr += 1; return((char)c); } /* * function breadunsigned(var bf: bytefile): integer; * * read next byte (unsigned) from bytefile bf. * if EOF is true or file isn't open, return 0 */ integer breadunsigned(bf) bytefile *bf; { register FILE *fp = bf->b_fp; register int c; if (fp == NULL || (c = getc(fp)) == EOF) return(0); if (bf->b_locptr) *bf->b_locptr += 1; return((unsigned char)c); } /* * and the remaining breadbyte functions: */ integer bread2signed(bf) bytefile *bf; { register FILE *fp = bf->b_fp; register int w; if (fp == NULL || (w = getc(fp)) == EOF) return(0); w = ((char)w << 8) | ((unsigned char)getc(fp)); if (bf->b_locptr) *bf->b_locptr += 2; return(w); } integer bread2unsigned(bf) bytefile *bf; { register FILE *fp = bf->b_fp; register int w; if (fp == NULL || (w = getc(fp)) == EOF) return(0); w = ((unsigned char)w << 8) | ((unsigned char)getc(fp)); if (bf->b_locptr) *bf->b_locptr += 2; return(w); } integer bread3signed(bf) bytefile *bf; { register FILE *fp = bf->b_fp; register int w; if (fp == NULL || (w = getc(fp)) == EOF) return(0); w = ( char)w << 16; w |= ((unsigned char)getc(fp)) << 8; w |= ((unsigned char)getc(fp)); if (bf->b_locptr) *bf->b_locptr += 3; return(w); } integer bread3unsigned(bf) bytefile *bf; { register FILE *fp = bf->b_fp; register int w; if (fp == NULL || (w = getc(fp)) == EOF) return(0); w = (unsigned char)w << 16; w |= ((unsigned char)getc(fp)) << 8; w |= ((unsigned char)getc(fp)); if (bf->b_locptr) *bf->b_locptr += 3; return(w); } integer bread4signed(bf) bytefile *bf; { register FILE *fp = bf->b_fp; register int w; if (fp == NULL || (w = getc(fp)) == EOF) return(0); w = w << 24; w |= ((unsigned char)getc(fp)) << 16; w |= ((unsigned char)getc(fp)) << 8; w |= ((unsigned char)getc(fp)); if (bf->b_locptr) *bf->b_locptr += 4; return(w); }