home · contact · privacy
More code re-styling and documentation.
[plomrogue] / src / readwrite.c
1 /* readwrite.c */
2
3 #include "readwrite.h"
4 #include <stdio.h>
5 #include <stdint.h>
6
7 extern uint16_t read_uint16_bigendian(FILE * file)
8 {
9     uint16_t x;
10     x =     (uint16_t) fgetc(file) << 8;
11     x = x + (uint16_t) fgetc(file);
12     return x;
13 }
14
15 extern uint32_t read_uint32_bigendian(FILE * file)
16 {
17     uint32_t x;
18     x =       (uint32_t) fgetc(file) << 24;
19     x = x + ( (uint32_t) fgetc(file) << 16 );
20     x = x + ( (uint32_t) fgetc(file) <<  8 );
21     x = x +   (uint32_t) fgetc(file);
22     return x;
23 }
24
25 extern void write_uint16_bigendian(uint16_t x, FILE * file)
26 {
27     fputc( x >> 8,   file );
28     fputc( x & 0xFF, file );
29 }
30
31 extern void write_uint32_bigendian(uint32_t x, FILE * file)
32 {
33     fputc(   x >> 24,          file);
34     fputc( ( x >> 16 ) & 0xFF, file);
35     fputc( ( x >>  8 ) & 0xFF, file);
36     fputc(   x         & 0xFF, file);
37 }