Fixed a bug about detection of failure with -set_filter

This commit is contained in:
Thomas Schmitt 2009-04-05 11:06:49 +00:00
parent f109865cc4
commit 3f0f1c72a5
2 changed files with 17 additions and 15 deletions

View File

@ -1 +1 @@
#define Xorriso_timestamP "2009.04.05.110534" #define Xorriso_timestamP "2009.04.05.110652"

View File

@ -9787,7 +9787,7 @@ int Xorriso_destroy_all_extf(struct XorrisO *xorriso, int flag)
int Xorriso_set_filter(struct XorrisO *xorriso, void *in_node, int Xorriso_set_filter(struct XorrisO *xorriso, void *in_node,
char *path, char *filter_name, int flag) char *path, char *filter_name, int flag)
{ {
int ret, lo= 0, ls= 0, strip_suffix= 0, strip_filter= 0; int ret, lo= 0, ls= 0, strip_suffix= 0, strip_filter= 0, filter_ret;
IsoNode *node; IsoNode *node;
IsoFile *file; IsoFile *file;
struct Xorriso_lsT *found_lst; struct Xorriso_lsT *found_lst;
@ -9903,7 +9903,7 @@ cannot_append_suffix:;
if(ret != 1) if(ret != 1)
break; break;
} }
ret= 1; filter_ret= 1;
} else { } else {
#ifndef Xorriso_allow_extf_suiD #ifndef Xorriso_allow_extf_suiD
@ -9918,14 +9918,14 @@ cannot_append_suffix:;
} }
#endif /* ! Xorriso_allow_extf_suiD */ #endif /* ! Xorriso_allow_extf_suiD */
ret = iso_file_add_external_filter(file, cmd, 0); filter_ret = iso_file_add_external_filter(file, cmd, 0);
if(filter_ret < 0) {
Xorriso_process_msg_queues(xorriso,0);
Xorriso_report_iso_error(xorriso, "", filter_ret,
"Error when setting filter to ISO node", 0, "FAILURE", 1);
}
} }
if(flag & 2) { if(filter_ret != 1 && new_name[0] && old_name != NULL) {
xorriso->pacifier_count++;
Xorriso_pacifier_callback(xorriso, "file filters processed",
xorriso->pacifier_count, xorriso->pacifier_total, "", 0);
}
if(ret != 1 && new_name[0] && old_name != NULL) {
ret = iso_node_set_name(node, old_name); ret = iso_node_set_name(node, old_name);
if (ret < 0) { if (ret < 0) {
Xorriso_process_msg_queues(xorriso,0); Xorriso_process_msg_queues(xorriso,0);
@ -9934,10 +9934,12 @@ cannot_append_suffix:;
"Error when renaming ISO node", 0, "FAILURE", 1); "Error when renaming ISO node", 0, "FAILURE", 1);
} }
} }
if(ret < 0) { if(flag & 2) {
Xorriso_process_msg_queues(xorriso,0); xorriso->pacifier_count++;
Xorriso_report_iso_error(xorriso, "", ret, Xorriso_pacifier_callback(xorriso, "file filters processed",
"Error when setting filter to ISO node", 0, "FAILURE", 1); xorriso->pacifier_count, xorriso->pacifier_total, "", 0);
}
if(filter_ret < 0) {
ret= 0; goto ex; ret= 0; goto ex;
} }
@ -9945,7 +9947,7 @@ cannot_append_suffix:;
old image and indev!=outdev old image and indev!=outdev
xorriso->volset_change_pending= 1; xorriso->volset_change_pending= 1;
*/ */
ret= filter_ret;
ex:; ex:;
if(old_name != NULL) if(old_name != NULL)
free(old_name); free(old_name);