void rename_files(const char* dir_path, rename_func_ptr renamefunc)
{
- glob_t files;
+ glob_t* files = malloc(sizeof(glob_t));
struct stat statbuf;
char* pattern = NULL;
char* input_filename = NULL;
memset(output_filename, 0, STR_MAX_LENGTH);
sprintf(pattern, "%s/*", dir_path);
- glob(pattern, 0, NULL, &files);
+ glob(pattern, 0, NULL, files);
- for (int i = 0; i < files.gl_pathc; i++) {
- stat(files.gl_pathv[i], &statbuf);
- renamefunc(files.gl_pathv[i], output_filename);
- if (strcmp(files.gl_pathv[i], output_filename) != 0) {
- printf("%s -> %s\n", files.gl_pathv[i], output_filename);
- rename(files.gl_pathv[i], output_filename);
+ for (int i = 0; i < files->gl_pathc; i++) {
+ stat(files->gl_pathv[i], &statbuf);
+ renamefunc(files->gl_pathv[i], output_filename);
+ if (strcmp(files->gl_pathv[i], output_filename) != 0) {
+ printf("%s -> %s\n", files->gl_pathv[i], output_filename);
+ rename(files->gl_pathv[i], output_filename);
}
if (S_ISDIR(statbuf.st_mode)) {
memset(input_filename, 0, STR_MAX_LENGTH);
}
- globfree(&files);
+ globfree(files);
+ files = NULL;
free(pattern);
pattern = NULL;
free(input_filename);