00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00038 #include <string.h>
00039
00040 #include "splt.h"
00041
00043 void splt_w_set_wrap_default_values(splt_state *state)
00044 {
00045 splt_wrap *wrap = state->wrap;
00046 wrap->wrap_files = NULL;
00047 wrap->wrap_files_num = 0;
00048 }
00049
00051 int splt_w_wrap_put_file(splt_state *state, int wrapfiles, int index,
00052 const char *filename)
00053 {
00054 splt_wrap *wrap = state->wrap;
00055
00056 if (index == 0)
00057 {
00058 if ((wrap->wrap_files = malloc(wrapfiles * sizeof(char*))) == NULL)
00059 {
00060 return SPLT_ERROR_CANNOT_ALLOCATE_MEMORY;
00061 }
00062 memset(wrap->wrap_files, 0x0, sizeof(char *) * wrapfiles);
00063
00064 wrap->wrap_files_num = 0;
00065 }
00066
00067 int err = splt_su_copy(filename, &wrap->wrap_files[index]);
00068 if (err < 0) { return err; }
00069
00070 wrap->wrap_files_num++;
00071
00072 return SPLT_OK;
00073 }
00074
00076 static void splt_w_free_files(char **files, int number)
00077 {
00078 if (files != NULL)
00079 {
00080 if (number != 0)
00081 {
00082 int i = 0;
00083 for (i = 0; i < number; i++)
00084 {
00085 if (files[i])
00086 {
00087 free(files[i]);
00088 files[i] = NULL;
00089 }
00090 }
00091 }
00092
00093 free(files);
00094 files = NULL;
00095 }
00096 }
00097
00099 void splt_w_wrap_free(splt_state *state)
00100 {
00101 splt_wrap *wrap = state->wrap;
00102 if (!wrap)
00103 {
00104 return;
00105 }
00106 splt_w_free_files(wrap->wrap_files, wrap->wrap_files_num);
00107 wrap->wrap_files_num = 0;
00108 }
00109