Alexandre Julliard : make_xftmpl: Avoid using getopt().
Alexandre Julliard
julliard at winehq.org
Tue Oct 5 15:51:41 CDT 2021
Module: wine
Branch: master
Commit: 5f921c7f1bbe8ebab5193e42cca06eb1536a91be
URL: https://source.winehq.org/git/wine.git/?a=commit;h=5f921c7f1bbe8ebab5193e42cca06eb1536a91be
Author: Alexandre Julliard <julliard at winehq.org>
Date: Tue Oct 5 11:52:57 2021 +0200
make_xftmpl: Avoid using getopt().
Signed-off-by: Alexandre Julliard <julliard at winehq.org>
---
tools/make_xftmpl.c | 58 +++++++++++++++++++++++------------------------------
1 file changed, 25 insertions(+), 33 deletions(-)
diff --git a/tools/make_xftmpl.c b/tools/make_xftmpl.c
index 45204b62643..686beeb449c 100644
--- a/tools/make_xftmpl.c
+++ b/tools/make_xftmpl.c
@@ -25,9 +25,6 @@
#include <stdarg.h>
#include <stdio.h>
#include <stdlib.h>
-#ifdef HAVE_GETOPT_H
-# include <getopt.h>
-#endif
#ifdef HAVE_UNISTD_H
# include <unistd.h>
#endif
@@ -91,8 +88,6 @@ static const struct keyword reserved_words[] = {
{"WORD", TOKEN_WORD}
};
-extern int getopt(int argc, char *const *argv, const char *optstring);
-
static BOOL option_header;
static char *option_inc_var_name = NULL;
static char *option_inc_size_name = NULL;
@@ -419,50 +414,47 @@ static void usage(void)
program_name);
}
-static char **parse_options(int argc, char **argv)
+static void option_callback( int optc, char *optarg )
{
- int optc;
-
- while ((optc = getopt(argc, argv, "hHi:o:s:")) != -1)
+ switch (optc)
{
- switch (optc)
- {
- case 'h':
- usage();
- exit(0);
- case 'H':
- option_header = TRUE;
- break;
- case 'i':
- option_header = TRUE;
- option_inc_var_name = xstrdup(optarg);
- break;
- case 'o':
- option_outfile_name = xstrdup(optarg);
- break;
- case 's':
- option_inc_size_name = xstrdup(optarg);
- break;
- }
+ case 'h':
+ usage();
+ exit(0);
+ case 'H':
+ option_header = TRUE;
+ break;
+ case 'i':
+ option_header = TRUE;
+ option_inc_var_name = xstrdup(optarg);
+ break;
+ case 'o':
+ option_outfile_name = xstrdup(optarg);
+ break;
+ case 's':
+ option_inc_size_name = xstrdup(optarg);
+ break;
+ case '?':
+ fprintf( stderr, "%s: %s\n", program_name, optarg );
+ exit(1);
}
- return &argv[optind];
}
int main(int argc, char **argv)
{
char header[16];
- char **args;
+ struct strarray args;
char *header_name = NULL;
program_name = argv[0];
- args = parse_options(argc, argv);
- infile_name = *args++;
- if (!infile_name || *args)
+ args = parse_options(argc, argv, "hHi:o:s:", NULL, 0, option_callback );
+ if (!args.count)
{
usage();
return 1;
}
+ infile_name = args.str[0];
infile = stdin;
outfile = NULL;
More information about the wine-cvs
mailing list