summaryrefslogtreecommitdiff
path: root/src/libopts/find.c
diff options
context:
space:
mode:
authorNikos Mavrogiannopoulos <nmav@gnutls.org>2013-11-05 21:11:23 +0100
committerNikos Mavrogiannopoulos <nmav@gnutls.org>2013-11-05 21:11:23 +0100
commit46f8a466a19cd36108e8fa33950678b3d85aee63 (patch)
tree2c90bfb3f2a704c9f8a0159a84eaaee02bb7c00d /src/libopts/find.c
parent2a2df234e768c88ed931032cc2baf83fdb6e3fb1 (diff)
downloadgnutls-46f8a466a19cd36108e8fa33950678b3d85aee63.tar.gz
updated libopts to 5.18
Diffstat (limited to 'src/libopts/find.c')
-rw-r--r--src/libopts/find.c13
1 files changed, 11 insertions, 2 deletions
diff --git a/src/libopts/find.c b/src/libopts/find.c
index e3534291d1..1ba504ebc3 100644
--- a/src/libopts/find.c
+++ b/src/libopts/find.c
@@ -107,6 +107,9 @@ opt_ambiguities(tOptions * opts, char const * name, int nm_len)
fputs(zambig_list_msg, stderr);
do {
+ if (pOD->pz_Name == NULL)
+ continue; /* doc option */
+
if (strneqvcmp(name, pOD->pz_Name, nm_len) == 0)
fprintf(stderr, zambig_file, hyph, pOD->pz_Name);
@@ -375,7 +378,10 @@ opt_find_long(tOptions * opts, char const * opt_name, tOptState * state)
bool disable = false;
int ct;
- if (nm_len <= 0) {
+ if (nm_len <= 1) {
+ if ((opts->fOptSet & OPTPROC_ERRSTOP) == 0)
+ return FAILURE;
+
fprintf(stderr, zInvalOptName, opts->pzProgName, opt_name);
(*opts->pUsageProc)(opts, EXIT_FAILURE);
/* NOTREACHED */
@@ -418,6 +424,9 @@ opt_find_short(tOptions* pOpts, uint_t optValue, tOptState* pOptState)
if (SKIP_OPT(pRes)) {
if ( (pRes->fOptState == (OPTST_OMITTED | OPTST_NO_INIT))
&& (pRes->pz_Name != NULL)) {
+ if ((pOpts->fOptSet & OPTPROC_ERRSTOP) == 0)
+ return FAILURE;
+
fprintf(stderr, zDisabledErr, pOpts->pzProgPath, pRes->pz_Name);
if (pRes->pzText != NULL)
fprintf(stderr, SET_OFF_FMT, pRes->pzText);
@@ -500,7 +509,7 @@ get_opt_arg_must(tOptions * opts, tOptState * o_st)
default:
#ifdef DEBUG
fputs("AutoOpts lib error: option type not selected\n", stderr);
- exit(EXIT_FAILURE);
+ option_exits(EXIT_FAILURE);
#endif
case TOPT_DEFAULT: