a specfied module name and the option name is wrong and filter names
do not matche the specfied module name.
if (r2 == ARCHIVE_FATAL)
return (ARCHIVE_FATAL);
+ if (r2 == ARCHIVE_WARN - 1)
+ return r1;
return r1 > r2 ? r1 : r2;
}
struct archive_write *a = (struct archive_write *)_a;
if (a->format_name == NULL)
- return (ARCHIVE_FAILED);
+ return (m == NULL)?ARCHIVE_FAILED:ARCHIVE_WARN - 1;
/* If the format name didn't match, return a special code for
* _archive_set_option[s]. */
if (m != NULL && strcmp(m, a->format_name) != 0)