Lines Matching refs:fl
180 file_list_init(struct file_list *fl, bool tmp)
182 fl->count = 0;
183 fl->sz = 0;
184 fl->fns = NULL;
185 fl->tmp = tmp;
192 file_list_add(struct file_list *fl, char *fn, bool allocate)
194 if (fl->count >= fl->sz) {
195 fl->fns = sort_reallocarray(fl->fns,
196 fl->sz ? fl->sz : (fl->sz = 1), 2 * sizeof(char *));
197 fl->sz *= 2;
199 fl->fns[fl->count] = allocate ? sort_strdup(fn) : fn;
200 fl->count += 1;
207 file_list_populate(struct file_list *fl, int argc, char **argv, bool allocate)
212 file_list_add(fl, argv[i], allocate);
220 file_list_clean(struct file_list *fl)
222 if (fl->fns) {
225 for (i = 0; i < fl->count; i++) {
226 if (fl->fns[i]) {
227 if (fl->tmp)
228 unlink(fl->fns[i]);
229 sort_free(fl->fns[i]);
230 fl->fns[i] = NULL;
233 sort_free(fl->fns);
234 fl->fns = NULL;
236 fl->sz = 0;
237 fl->count = 0;
238 fl->tmp = false;
713 procfile(const char *fsrc, struct sort_list *list, struct file_list *fl)
737 file_list_add(fl, fn, false);
1008 shrink_file_list(struct file_list *fl)
1013 if (fl->count < max_open_files)
1017 while (indx < fl->count) {
1021 num = fl->count - indx;
1026 merge_files_array(num, fl->fns + indx, fnew);
1027 if (fl->tmp) {
1031 unlink(fl->fns[indx + i]);
1036 fl->tmp = false; /* already taken care of */
1037 file_list_clean(fl);
1039 fl->count = new_fl.count;
1040 fl->fns = new_fl.fns;
1041 fl->sz = new_fl.sz;
1042 fl->tmp = new_fl.tmp;
1051 merge_files(struct file_list *fl, const char *fn_out)
1053 while (shrink_file_list(fl))
1056 merge_files_array(fl->count, fl->fns, fn_out);