diff options
Diffstat (limited to 'toolchain/musl/patches/001-revert-getopt-change.patch')
-rw-r--r-- | toolchain/musl/patches/001-revert-getopt-change.patch | 113 |
1 files changed, 113 insertions, 0 deletions
diff --git a/toolchain/musl/patches/001-revert-getopt-change.patch b/toolchain/musl/patches/001-revert-getopt-change.patch new file mode 100644 index 0000000000..a981011394 --- /dev/null +++ b/toolchain/musl/patches/001-revert-getopt-change.patch @@ -0,0 +1,113 @@ +commit 84d8240bb5c487034ea3fb674a1de6d884df18aa +Author: Felix Fietkau <nbd@openwrt.org> +Date: Sun Jan 11 19:16:32 2015 +0100 + + Revert "add error message printing to getopt_long and make related improvements" + + This reverts commit 91184c4f16b143107fa9935edebe5d2b20bd70d8. + +diff --git a/src/misc/getopt.c b/src/misc/getopt.c +index 9217983..9db5eaa 100644 +--- a/src/misc/getopt.c ++++ b/src/misc/getopt.c +@@ -12,7 +12,7 @@ int optind=1, opterr=1, optopt, __optpos, __optreset=0; + #define optpos __optpos + weak_alias(__optreset, optreset); + +-void __getopt_msg(const char *a, const char *b, const char *c, size_t l) ++void __getopt_msg(const char *a, const char *b, const char *c, int l) + { + FILE *f = stderr; + b = __lctrans_cur(b); +@@ -80,7 +80,7 @@ int getopt(int argc, char * const argv[], const char *optstring) + + if (d != c) { + if (optstring[0] != ':' && opterr) +- __getopt_msg(argv[0], ": unrecognized option: ", optchar, k); ++ __getopt_msg(argv[0], ": illegal option: ", optchar, k); + return '?'; + } + if (optstring[i] == ':') { +diff --git a/src/misc/getopt_long.c b/src/misc/getopt_long.c +index e5a4a75..e245ab9 100644 +--- a/src/misc/getopt_long.c ++++ b/src/misc/getopt_long.c +@@ -2,7 +2,6 @@ + #include <stddef.h> + #include <getopt.h> + #include <stdio.h> +-#include <string.h> + + extern int __optpos, __optreset; + +@@ -16,14 +15,11 @@ static void permute(char *const *argv, int dest, int src) + av[dest] = tmp; + } + +-void __getopt_msg(const char *, const char *, const char *, size_t); +- + static int __getopt_long_core(int argc, char *const *argv, const char *optstring, const struct option *longopts, int *idx, int longonly); + + static int __getopt_long(int argc, char *const *argv, const char *optstring, const struct option *longopts, int *idx, int longonly) + { + int ret, skipped, resumed; +- const char *optstring2 = optstring + 1; + if (!optind || __optreset) { + __optreset = 0; + __optpos = 0; +@@ -38,10 +34,9 @@ static int __getopt_long(int argc, char *const *argv, const char *optstring, con + if (argv[i][0] == '-' && argv[i][1]) break; + } + optind = i; +- optstring2 = optstring; + } + resumed = optind; +- ret = __getopt_long_core(argc, argv, optstring2, longopts, idx, longonly); ++ ret = __getopt_long_core(argc, argv, optstring, longopts, idx, longonly); + if (resumed > skipped) { + int i, cnt = optind-resumed; + for (i=0; i<cnt; i++) +@@ -78,27 +73,12 @@ static int __getopt_long_core(int argc, char *const *argv, const char *optstring + optind++; + optopt = longopts[i].val; + if (*opt == '=') { +- if (!longopts[i].has_arg) { +- if (optstring[0] == ':' || !opterr) +- return '?'; +- __getopt_msg(argv[0], +- ": option does not take an argument: ", +- longopts[i].name, +- strlen(longopts[i].name)); +- return '?'; +- } ++ if (!longopts[i].has_arg) return '?'; + optarg = opt+1; + } else { + if (longopts[i].has_arg == required_argument) { +- if (!(optarg = argv[optind])) { +- if (optstring[0] == ':' || !opterr) +- return ':'; +- __getopt_msg(argv[0], +- ": option requires an argument: ", +- longopts[i].name, +- strlen(longopts[i].name)); +- return '?'; +- } ++ if (!(optarg = argv[optind])) ++ return ':'; + optind++; + } else optarg = NULL; + } +@@ -110,12 +90,6 @@ static int __getopt_long_core(int argc, char *const *argv, const char *optstring + return longopts[i].val; + } + if (argv[optind][1] == '-') { +- if (optstring[0] != ':' && opterr) +- __getopt_msg(argv[0], cnt ? +- ": option is ambiguous: " : +- ": unrecognized option: ", +- argv[optind]+2, +- strlen(argv[optind]+2)); + optind++; + return '?'; + } |