summaryrefslogtreecommitdiff
path: root/fonts/utilities/ttf2pt1/windows.h
blob: a90ecf7e5f886ba7fc20ccc1aad2334387d72767 (plain)
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
/*
 * Implementation of things missing in Windows
 */

#ifndef M_PI
#define M_PI  3.14159265358979323846
#endif

#undef ntohs
#undef ntohl
#undef htonl

#ifdef WINDOWS_FUNCTIONS
/* byte order */

static unsigned short StoM(unsigned short inv) {
    union iconv {
        unsigned short    ui;
        unsigned char   uc[2];
    } *inp, outv;

    inp = (union iconv *)&inv;

    outv.uc[0] = inp->uc[1];
    outv.uc[1] = inp->uc[0];
 
    return (outv.ui);
}

static unsigned int ItoM(unsigned int inv) {
    union iconv {
        unsigned int    ui;
        unsigned char   uc[4];
    } *inp, outv;

    inp = (union iconv *)&inv;

    outv.uc[0] = inp->uc[3];
    outv.uc[1] = inp->uc[2];
    outv.uc[2] = inp->uc[1];
    outv.uc[3] = inp->uc[0];

    return (outv.ui);
}

unsigned short ntohs(unsigned short inv) { return StoM(inv); }
unsigned long ntohl(unsigned long inv) { return ItoM(inv); }
unsigned long htonl(unsigned long inv) { return ItoM(inv); }

char *optarg;
int optind=1;

char getopt(int argc, char **argv, char *args) {
	int n,nlen=strlen(args),nLen=0;
	char nCmd;
	
	if (argv[optind] && *argv[optind]=='-') {
		nCmd=*((argv[optind]+1));

		for (n=0;n<nlen;n++) {
			if (args[n] == ':') continue;
			if (args[n] == nCmd) {
				if (args[n+1]==':') {
					char retVal;
					retVal=*(argv[optind]+1);
					optarg=argv[optind+1];
					if (!optarg) optarg="";
					optind+=2;
					return retVal;
				} else {
					char retVal;
					retVal=*(argv[optind]+1);
					optarg=NULL;
					optind+=1;
					return retVal;
				}
			}
		}	
	}
	return -1;
}

#else

unsigned short ntohs(unsigned short inv);
unsigned long ntohl(unsigned long inv);
unsigned long htonl(unsigned long inv);

extern char *optarg;
extern int optind;

char getopt(int argc, char **argv, char *args);
#endif