Statistics
| Revision:

svn-gvsig-desktop / tmp / trunk / servidor / Importacion / dbase / endian.c @ 26474

History | View | Annotate | Download (722 Bytes)

1
/* Maarten Boekhold (maarten.boekhold@reuters.com) oktober 1995 */
2

    
3
#include <sys/types.h>
4
#include "dbf.h"
5
/*
6
 * routine to change little endian long to host long
7
 */
8
long
9
get_long(u_char *cp)
10
{
11
        long                ret;
12

    
13
        ret = *cp++;
14
        ret += ((*cp++) << 8);
15
        ret += ((*cp++) << 16);
16
        ret += ((*cp++) << 24);
17

    
18
        return ret;
19
}
20

    
21
void
22
put_long(u_char *cp, long lval)
23
{
24
        cp[0] = lval & 0xff;
25
        cp[1] = (lval >> 8) & 0xff;
26
        cp[2] = (lval >> 16) & 0xff;
27
        cp[3] = (lval >> 24) & 0xff;
28
}
29

    
30
/*
31
 * routine to change little endian short to host short
32
 */
33
short
34
get_short(u_char *cp)
35
{
36
        short                ret;
37

    
38
        ret = *cp++;
39
        ret += ((*cp++) << 8);
40

    
41
        return ret;
42
}
43

    
44
void
45
put_short(u_char *cp, short sval)
46
{
47
        cp[0] = sval & 0xff;
48
        cp[1] = (sval >> 8) & 0xff;
49
}