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].