[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
20-fyi-long-opts.patch
From: |
Akim Demaille |
Subject: |
20-fyi-long-opts.patch |
Date: |
Sat, 29 Dec 2001 15:14:53 +0100 |
Index: ChangeLog
from Akim Demaille <address@hidden>
* src/options.h, src/options.c (create_long_option_table): Rename
as...
(long_option_table_new): this, with a clearer prototype.
(percent_table): Remove, unused,
* src/getargs.c (getargs): Adjust.
Index: src/getargs.c
--- src/getargs.c Sat, 08 Dec 2001 13:24:47 +0100 akim
+++ src/getargs.c Fri, 28 Dec 2001 16:54:47 +0100 akim
@@ -135,7 +135,7 @@ Output:\n\
{
int c;
- create_long_option_table ();
+ struct option *longopts = long_option_table_new ();
while ((c = getopt_long (argc, argv, shortopts, longopts, NULL)) != EOF)
switch (c)
{
@@ -217,7 +217,8 @@ Output:\n\
exit (1);
}
- XFREE (longopts);
+ free (longopts);
+
if (optind == argc)
{
fprintf (stderr, _("%s: no grammar file given\n"), program_name);
Index: src/options.c
--- src/options.c Sat, 08 Dec 2001 15:03:00 +0100 akim
+++ src/options.c Fri, 28 Dec 2001 16:53:43 +0100 akim
@@ -30,11 +30,6 @@
/* Shorts options. */
const char *shortopts = "yvegdhrltknVo:b:p:S:";
-/* Long options. */
-struct option *longopts = NULL;
-
-struct percent_table_struct *percent_table = NULL;
-
/* A CLI option only.
Arguments is the policy: `no', `optional', `required'.
OptionChar is the value given to the Var if the latter is specified. */
@@ -135,13 +130,16 @@
{0, 0, 0, 0, 0, 0}
};
+
/*--------------------------------------------------------.
| Create the longoptions structure from the option_table, |
| for the getopt file. |
`--------------------------------------------------------*/
-void
-create_long_option_table ()
+
+struct option *
+long_option_table_new ()
{
+ struct option *res = NULL;
int i = 0;
int j = 0;
int number_options;
@@ -151,26 +149,28 @@
|| option_table[i].access == opt_both)
++number_options;
- longopts = XMALLOC (struct option, number_options + 1);
+ res = XMALLOC (struct option, number_options + 1);
for (i = 0; option_table[i].name; i++)
if (option_table[i].access == opt_cmd_line
|| option_table[i].access == opt_both)
{
/* Copy the struct information in the longoptions. */
- longopts[j].name = option_table[i].name;
- longopts[j].has_arg = option_table[i].has_arg;
+ res[j].name = option_table[i].name;
+ res[j].has_arg = option_table[i].has_arg;
/* When an options is declared having 'optional_argument' and
a flag is specified to be set, the option is skipped on
command line. So we never use a flag when a command line
option is declared 'optional_argument. */
- if (longopts[j].has_arg == optional_argument)
- longopts[j].flag = NULL;
+ if (res[j].has_arg == optional_argument)
+ res[j].flag = NULL;
else
- longopts[j].flag = option_table[i].set_flag;
- longopts[j++].val = option_table[i].val;
+ res[j].flag = option_table[i].set_flag;
+ res[j++].val = option_table[i].val;
}
- longopts[number_options].name = NULL;
- longopts[number_options].has_arg = 0;
- longopts[number_options].flag = NULL;
- longopts[number_options].val = 0;
+ res[number_options].name = NULL;
+ res[number_options].has_arg = 0;
+ res[number_options].flag = NULL;
+ res[number_options].val = 0;
+
+ return res;
}
Index: src/options.h
--- src/options.h Sat, 08 Dec 2001 14:08:51 +0100 akim
+++ src/options.h Fri, 28 Dec 2001 16:52:19 +0100 akim
@@ -51,12 +51,11 @@
};
extern const char *shortopts;
-extern struct option *longopts;
/* Table which contain all options. */
extern const struct option_table_struct option_table[];
/* Set the longopts variable from option_table. */
-void create_long_option_table PARAMS ((void));
+struct option *long_option_table_new PARAMS ((void));
#endif /* !OPTIONS_H_ */
Index: src/reduce.c
--- src/reduce.c Fri, 28 Dec 2001 16:41:48 +0100 akim
+++ src/reduce.c Fri, 28 Dec 2001 16:57:22 +0100 akim
@@ -337,7 +337,6 @@
nonterminals_reduce (void)
{
int i, n;
- rule r;
/* Map the nonterminals to their new index: useful first, useless
afterwards. Kept for later report. */
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- 20-fyi-long-opts.patch,
Akim Demaille <=