- Changed assertions to abort to allow the build to fail on release
targets
- Fixed some wrong assertion
- Changed all stderr print to the respective macro
- Fix output for release builds
- Fix indentation
Revamp build system with CMake
- Completely removed config.h generation file, as it was not used
anywere in the code
- Removed all the old build files and switched to CMake (3.0+)
- As tl-parser only uses zlib for crc32, removing the dependency makes
the CMake file easier to maintain and makes the code building
without third party code. The crc32 implementation was taken from
abb3e47a98
.
82 lines
1.5 KiB
C
82 lines
1.5 KiB
C
/*
|
|
POSIX getopt for Windows
|
|
|
|
AT&T Public License
|
|
|
|
Code given out at the 1985 UNIFORUM conference in Dallas.
|
|
*/
|
|
|
|
#ifndef __GNUC__
|
|
|
|
#include "wingetopt.h"
|
|
#include <stdio.h>
|
|
#include <string.h>
|
|
|
|
#ifndef NULL
|
|
#define NULL 0
|
|
#endif
|
|
#define EOF (-1)
|
|
#define ERR(s, c) if(opterr){\
|
|
char errbuf[2];\
|
|
errbuf[0] = c; errbuf[1] = '\n';\
|
|
fputs(argv[0], stderr);\
|
|
fputs(s, stderr);\
|
|
fputc(c, stderr);}
|
|
//(void) write(2, argv[0], (unsigned)strlen(argv[0]));\
|
|
//(void) write(2, s, (unsigned)strlen(s));\
|
|
//(void) write(2, errbuf, 2);}
|
|
|
|
int opterr = 1;
|
|
int optind = 1;
|
|
int optopt;
|
|
char *optarg;
|
|
|
|
int
|
|
getopt(argc, argv, opts)
|
|
int argc;
|
|
char **argv, *opts;
|
|
{
|
|
static int sp = 1;
|
|
register int c;
|
|
register char *cp;
|
|
|
|
if (sp == 1)
|
|
if (optind >= argc ||
|
|
argv[optind][0] != '-' || argv[optind][1] == '\0')
|
|
return(EOF);
|
|
else if (strcmp(argv[optind], "--") == (int)NULL) {
|
|
optind++;
|
|
return(EOF);
|
|
}
|
|
optopt = c = argv[optind][sp];
|
|
if (c == ':' || (cp = strchr(opts, c)) == NULL) {
|
|
ERR(": illegal option -- ", c);
|
|
if (argv[optind][++sp] == '\0') {
|
|
optind++;
|
|
sp = 1;
|
|
}
|
|
return('?');
|
|
}
|
|
if (*++cp == ':') {
|
|
if (argv[optind][sp + 1] != '\0')
|
|
optarg = &argv[optind++][sp + 1];
|
|
else if (++optind >= argc) {
|
|
ERR(": option requires an argument -- ", c);
|
|
sp = 1;
|
|
return('?');
|
|
}
|
|
else
|
|
optarg = argv[optind++];
|
|
sp = 1;
|
|
}
|
|
else {
|
|
if (argv[optind][++sp] == '\0') {
|
|
sp = 1;
|
|
optind++;
|
|
}
|
|
optarg = NULL;
|
|
}
|
|
return(c);
|
|
}
|
|
|
|
#endif /* __GNUC__ */ |