mirror of
https://github.com/danbulant/Cosmos
synced 2026-05-31 13:21:05 +00:00
72 lines
1.2 KiB
C#
72 lines
1.2 KiB
C#
/*
|
|
* getopt.c
|
|
*
|
|
* Replacement for a Unix style getopt function
|
|
*
|
|
* Quick, clean, and portable to funky systems that don't have getopt()
|
|
* for whatever reason.
|
|
*
|
|
*/
|
|
|
|
//#include <stdio.h>
|
|
//#include <string.h>
|
|
|
|
//#ifndef MSDOS_16BIT
|
|
//#define cdecl
|
|
//#endif
|
|
|
|
//int optind = 1;
|
|
//int optopt = 0;
|
|
|
|
//const char *optarg = NULL;
|
|
|
|
//int cdecl getopt (int argc, char *argv[], const char *options)
|
|
//{
|
|
// static int pos = 1;
|
|
|
|
// const char *p;
|
|
|
|
// if (optind >= argc || argv[optind][0] != '-' || argv[optind][1] == 0)
|
|
// return EOF;
|
|
|
|
// optopt = argv[optind][pos++];
|
|
// optarg = NULL;
|
|
|
|
// if (argv[optind][pos] == 0)
|
|
// { pos = 1; optind++; }
|
|
|
|
// p = strchr (options, optopt);
|
|
|
|
// if (optopt == ':' || p == NULL) {
|
|
|
|
// fputs ("illegal option -- ", stdout);
|
|
// goto error;
|
|
|
|
// } else if (p[1] == ':') {
|
|
|
|
// if (optind >= argc) {
|
|
|
|
// fputs ("option requires an argument -- ", stdout);
|
|
// goto error;
|
|
|
|
// } else {
|
|
|
|
// optarg = argv[optind];
|
|
|
|
// if (pos != 1)
|
|
// optarg += pos;
|
|
|
|
// pos = 1; optind++;
|
|
|
|
// }
|
|
// }
|
|
// return optopt;
|
|
|
|
//error:
|
|
|
|
// fputc (optopt, stdout);
|
|
// fputc ('\n', stdout);
|
|
|
|
// return '?';
|
|
|
|
//}/* getopt */
|