+ bool used_next_orig_arg = false;
+ const char *opt_arg = NULL;
+ const struct argpar_opt_descr *descr;
+ struct argpar_item_opt *opt_item;
+
+ ARGPAR_ASSERT(strlen(short_opt_group) != 0);
+
+ if (!iter->short_opt_group_ch) {
+ iter->short_opt_group_ch = short_opt_group;
+ }
+
+ /* Find corresponding option descriptor */
+ descr = find_descr(descrs, *iter->short_opt_group_ch, NULL);
+ if (!descr) {
+ const char unknown_opt_name[] = { *iter->short_opt_group_ch, '\0' };
+
+ ret = PARSE_ORIG_ARG_OPT_RET_ERROR;
+
+ if (set_error(error, ARGPAR_ERROR_TYPE_UNKNOWN_OPT, unknown_opt_name, NULL, true)) {
+ ret = PARSE_ORIG_ARG_OPT_RET_ERROR_MEMORY;
+ }