source: pmb4.2/trunk/fuentes/pmb/classes/font/ttf2ufm/ttf2ufm-src/windows.h @ 815

Last change on this file since 815 was 815, checked in by jrpelegrina, 4 years ago

Initial release of pmb 4.2

  • Property svn:executable set to *
File size: 1.7 KB
Line 
1/*
2 * Implementation of things missing in Windows
3 */
4
5#ifndef M_PI
6#define M_PI  3.14159265358979323846
7#endif
8
9#undef ntohs
10#undef ntohl
11#undef htonl
12
13#ifdef WINDOWS_FUNCTIONS
14/* byte order */
15
16static unsigned short StoM(unsigned short inv) {
17    union iconv {
18        unsigned short    ui;
19        unsigned char   uc[2];
20    } *inp, outv;
21
22    inp = (union iconv *)&inv;
23
24    outv.uc[0] = inp->uc[1];
25    outv.uc[1] = inp->uc[0];
26 
27    return (outv.ui);
28}
29
30static unsigned int ItoM(unsigned int inv) {
31    union iconv {
32        unsigned int    ui;
33        unsigned char   uc[4];
34    } *inp, outv;
35
36    inp = (union iconv *)&inv;
37
38    outv.uc[0] = inp->uc[3];
39    outv.uc[1] = inp->uc[2];
40    outv.uc[2] = inp->uc[1];
41    outv.uc[3] = inp->uc[0];
42
43    return (outv.ui);
44}
45
46unsigned short ntohs(unsigned short inv) { return StoM(inv); }
47unsigned long ntohl(unsigned long inv) { return ItoM(inv); }
48unsigned long htonl(unsigned long inv) { return ItoM(inv); }
49
50char *optarg;
51int optind=1;
52
53char getopt(int argc, char **argv, char *args) {
54        int n,nlen=strlen(args),nLen=0;
55        char nCmd;
56       
57        if (argv[optind] && *argv[optind]=='-') {
58                nCmd=*((argv[optind]+1));
59
60                for (n=0;n<nlen;n++) {
61                        if (args[n] == ':') continue;
62                        if (args[n] == nCmd) {
63                                if (args[n+1]==':') {
64                                        char retVal;
65                                        retVal=*(argv[optind]+1);
66                                        optarg=argv[optind+1];
67                                        if (!optarg) optarg="";
68                                        optind+=2;
69                                        return retVal;
70                                } else {
71                                        char retVal;
72                                        retVal=*(argv[optind]+1);
73                                        optarg=NULL;
74                                        optind+=1;
75                                        return retVal;
76                                }
77                        }
78                }       
79        }
80        return -1;
81}
82
83#else
84
85unsigned short ntohs(unsigned short inv);
86unsigned long ntohl(unsigned long inv);
87unsigned long htonl(unsigned long inv);
88
89extern char *optarg;
90extern int optind;
91
92char getopt(int argc, char **argv, char *args);
93#endif
Note: See TracBrowser for help on using the repository browser.