X-Git-Url: https://wimlib.net/git/?a=blobdiff_plain;f=src%2Fsplit.c;h=4167ecdfdb59648676f6d242f1bd87f9c7ebabe9;hb=45c3ad86e44a05a169bfb1fa8ff318861bbf9fbf;hp=971306c3bed775596babb9ae627f3225915e8f54;hpb=16e3b6e5615abcefc9e5bb9607e2804b64d19cc2;p=wimlib diff --git a/src/split.c b/src/split.c index 971306c3..4167ecdf 100644 --- a/src/split.c +++ b/src/split.c @@ -28,7 +28,7 @@ #include "xml.h" #include "io.h" -struct args { +struct split_args { WIMStruct *w; char *swm_base_name; size_t swm_base_name_len; @@ -67,21 +67,13 @@ static int finish_swm(WIMStruct *w, struct lookup_table_entry *lte_chain_head, w->hdr.lookup_table_res_entry.offset = lookup_table_offset; w->hdr.lookup_table_res_entry.size = xml_data_offset - lookup_table_offset; - ret = finish_write(w, WIM_ALL_IMAGES, - write_flags | WIMLIB_WRITE_FLAG_NO_LOOKUP_TABLE); - if (ret != 0) - return ret; - - ret = fclose(w->out_fp); - if (ret != 0) - ret = WIMLIB_ERR_WRITE; - w->out_fp = NULL; - return ret; + return finish_write(w, WIM_ALL_IMAGES, + write_flags | WIMLIB_WRITE_FLAG_NO_LOOKUP_TABLE); } static int copy_resource_to_swm(struct lookup_table_entry *lte, void *__args) { - struct args *args = (struct args*)__args; + struct split_args *args = (struct split_args*)__args; WIMStruct *w = args->w; int ret; @@ -100,9 +92,8 @@ static int copy_resource_to_swm(struct lookup_table_entry *lte, void *__args) args->lte_chain_tail = NULL; args->lte_chain_head = NULL; - sprintf(args->swm_base_name + args->swm_base_name_len, "%d", - ++args->part_number); - strcat(args->swm_base_name, args->swm_suffix); + sprintf(args->swm_base_name + args->swm_base_name_len, "%d%s", + ++args->part_number, args->swm_suffix); w->hdr.part_number = args->part_number; @@ -203,7 +194,7 @@ WIMLIBAPI int wimlib_split(const char *wimfile, const char *swm_name, } w->write_metadata = false; - struct args args = { + struct split_args args = { .w = w, .swm_base_name = name, .swm_base_name_len = swm_base_name_len,