There is a problem with getstyle invoked with no arguments:

[mafra@Pilar:util]$ ./getstyle
Usage: getstyle [-t] [-p] [-h] [-v] [file]

or with -t:

[mafra@Pilar:util]$ ./getstyle -t
Usage: getstyle [-t] [-p] [-h] [-v] [file]

In both cases it is supposed to write to the standard output:

[mafra@Pilar:wmaker.git]$ getstyle -h
Usage: getstyle [-t] [-p] [-h] [-v] [file]
Retrieves style/theme configuration and output to FILE or to stdout

This regression was caused by commit 6bf79945201265dccf62 ("style Stuff up").
When that commit did

       argc -= optind;

       if (argc != 1)
               print_help(0,1);

it excluded the output to stdout as valid, because in this case
argc - optind is zero (see the manpage of getopt(3)).

The correct handling is to set the style_file only when there is
one non-option ARGV-element (argc - optind == 1) and print the
help message when there are more than one non-option element.

Signed-off-by: Carlos R. Mafra <[email protected]>
---
 util/getstyle.c |   17 +++++++++--------
 1 files changed, 9 insertions(+), 8 deletions(-)

diff --git a/util/getstyle.c b/util/getstyle.c
index 1a9ac31..6fd4502 100644
--- a/util/getstyle.c
+++ b/util/getstyle.c
@@ -385,17 +385,18 @@ int main(int argc, char **argv)
                                /* NOTREACHED */
                }
 
-       argc -= optind;
-       argv += optind;
-
-       if (argc != 1)
+       /* At most one non-option ARGV-element is accepted (the theme name) */
+       if (argc - optind > 1)
                print_help(0, 1);
 
-       style_file = argv[0];
-       while ((p = strchr(style_file, '/')) != NULL)
-               *p = '_';
+       if (argc - optind == 1) {
+               style_file = argv[argc - 1];
+               while ((p = strchr(style_file, '/')) != NULL)
+                       *p = '_';
+       }
 
-       if (style_file && !make_pack)   /* what's this? */
+       /* A theme name was given but the option to create it (-p) was not */
+       if (style_file && !make_pack)
                print_help(0, 1);
 
        if (make_pack && !style_file) {
-- 
1.7.3.4


-- 
To unsubscribe, send mail to [email protected].

Reply via email to