(svn r22101) -Codechange (r22098): Unify a bit of code.

replace/41b28d7194a279bdc17475d4fbe2ea6ec885a466
alberth 14 years ago
parent 8c2fc45153
commit 41a67a9b94

@ -56,30 +56,23 @@ set_optval: // Handle option value of *odata .
return odata->id;
case ODF_HAS_VALUE:
case ODF_OPTIONAL_VALUE:
if (this->cont != NULL) { // Remainder of the argument is the option value.
this->opt = this->cont;
this->cont = NULL;
return odata->id;
}
if (this->numleft == 0) return -2; // Missing the option value.
this->opt = this->argv[0];
/* No more arguments, either return an error or a value-less option. */
if (this->numleft == 0) return (odata->flags == ODF_HAS_VALUE) ? -2 : odata->id;
/* Next argument looks like another option, let's not return it as option value. */
if (odata->flags == ODF_OPTIONAL_VALUE && this->argv[0][0] == '-') return odata->id;
this->opt = this->argv[0]; // Next argument is the option value.
this->argv++;
this->numleft--;
return odata->id;
case ODF_OPTIONAL_VALUE:
if (this->cont != NULL) { // Remainder of the argument is the option value.
this->opt = this->cont;
this->cont = NULL;
return odata->id;
}
if (this->numleft > 0 && this->argv[0][0] != '-') {
this->opt = this->argv[0];
this->argv++;
this->numleft--;
}
return odata->id;
default: NOT_REACHED();
}
}

Loading…
Cancel
Save