1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108
|
#include "defs.h"
#include "global.h"
#include "emit.h"
/*-->getbytes*/
/**********************************************************************/
/***************************** getbytes *****************************/
/**********************************************************************/
void
getbytes(fp, cp, n) /* get n bytes from file fp */
FILE *fp; /* file pointer */
byte *cp; /* character pointer */
int n; /* number of bytes */
{
(void)fread((char *)cp, 1, n, fp);
}
void
skipbytes(fp, n)
FILE *fp;
int n;
{
(void)fseek(fp, (long)n, SEEK_CUR);
}
/*-->getuint*/
/**********************************************************************/
/*************************** getuint ********************************/
/**********************************************************************/
int
getuint(fp, n) /* return n byte quantity from file fd */
FILE *fp; /* file pointer */
int n; /* number of bytes */
{
byte s[sizeof(int)];
(void)fread((char *)s, 1, n, fp);
return makeuint(s, n);
}
/*-->getint*/
/**********************************************************************/
/**************************** getint ********************************/
/**********************************************************************/
int
getint(fp, n) /* return n byte quantity from file fd */
FILE *fp; /* file pointer */
int n; /* number of bytes */
{
byte s[sizeof(int)];
(void)fread((char *)s, 1, n, fp);
return makeint(s, n);
}
/* formatted i/o was killing us, so build some tables */
char *digit = "0123456789ABCDEF";
/*-->putint*/
/**********************************************************************/
/***************************** putint *******************************/
/**********************************************************************/
void
putint(n) /* output an integer followed by a space */
int n;
{
char buf[10];
char *b;
if (n == 0)
EMITC('0');
else {
if (n < 0) {
EMITC('-');
n = -n;
}
for (b=buf; n>0; ) {
*b++ = digit[n%10];
n /= 10;
}
for ( ; b>buf; )
EMITC(*--b);
}
EMITC(' ');
}
/*-->putoct*/
/**********************************************************************/
/***************************** putoct *******************************/
/**********************************************************************/
void
putoct(n) /* output an 3 digit octal number preceded by a "\" */
int n;
{
EMITC('\\');
EMITC(digit[(n&0300)>>6]);
EMITC(digit[(n&0070)>>3]);
EMITC(digit[n&0007]);
}
|