1.1 --- a/cline.c Thu May 26 14:39:52 2011 +0200 1.2 +++ b/cline.c Fri May 27 12:49:33 2011 +0200 1.3 @@ -12,6 +12,15 @@ 1.4 settings->recursive = false; 1.5 settings->includeSuffixes = false; 1.6 settings->matchesOnly = false; 1.7 + 1.8 + return settings; 1.9 +} 1.10 + 1.11 +void destroy_settings_t(settings_t* settings) { 1.12 + if (settings->suffixv != NULL) { 1.13 + free(settings->suffixv); 1.14 + } 1.15 + free(settings); 1.16 } 1.17 1.18 void printHelpText(const char* prgName) { 1.19 @@ -177,13 +186,13 @@ 1.20 DIR *dir = opendir(directory); 1.21 if (dir == NULL) { 1.22 perror("Operation failed"); 1.23 - free(settings->suffixv); 1.24 - free(settings); 1.25 + destroy_settings_t(settings); 1.26 return 1; 1.27 } 1.28 1.29 // Scan directory 1.30 int lines = scanDirectory(dir, 0, directory, settings); 1.31 + closedir(dir); 1.32 1.33 // Print double line and line count 1.34 #ifdef _WIN32 1.35 @@ -201,8 +210,6 @@ 1.36 printf("\n%74d lines\n", lines); 1.37 #endif /* _WIN32 */ 1.38 1.39 - closedir(dir); 1.40 - free(settings->suffixv); 1.41 - free(settings); 1.42 + destroy_settings_t(settings); 1.43 return 0; 1.44 }