File: io.c

package info (click to toggle)
dvi2ps 4.1j-2
  • links: PTS
  • area: main
  • in suites: lenny
  • size: 1,740 kB
  • ctags: 2,295
  • sloc: ansic: 14,953; sh: 964; makefile: 284
file content (108 lines) | stat: -rw-r--r-- 2,567 bytes parent folder | download | duplicates (11)
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]);
}