94 lines
1.7 KiB
C
94 lines
1.7 KiB
C
|
/*
|
||
|
* 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
|