# HG changeset patch # User Mike Becker # Date 1306493373 -7200 # Node ID c3acfb3b4957c703c1c54907743df502e5f8f0f7 # Parent 510d6b198dde45786dfbe3894594622a46170400 Fixed missing return statement in new_settings_t. Added support for c++ compilers. Added destroy_settings_t function diff -r 510d6b198dde -r c3acfb3b4957 cline.c --- a/cline.c Thu May 26 14:39:52 2011 +0200 +++ b/cline.c Fri May 27 12:49:33 2011 +0200 @@ -12,6 +12,15 @@ settings->recursive = false; settings->includeSuffixes = false; settings->matchesOnly = false; + + return settings; +} + +void destroy_settings_t(settings_t* settings) { + if (settings->suffixv != NULL) { + free(settings->suffixv); + } + free(settings); } void printHelpText(const char* prgName) { @@ -177,13 +186,13 @@ DIR *dir = opendir(directory); if (dir == NULL) { perror("Operation failed"); - free(settings->suffixv); - free(settings); + destroy_settings_t(settings); return 1; } // Scan directory int lines = scanDirectory(dir, 0, directory, settings); + closedir(dir); // Print double line and line count #ifdef _WIN32 @@ -201,8 +210,6 @@ printf("\n%74d lines\n", lines); #endif /* _WIN32 */ - closedir(dir); - free(settings->suffixv); - free(settings); + destroy_settings_t(settings); return 0; } diff -r 510d6b198dde -r c3acfb3b4957 cline.h --- a/cline.h Thu May 26 14:39:52 2011 +0200 +++ b/cline.h Fri May 27 12:49:33 2011 +0200 @@ -16,8 +16,15 @@ bool matchesOnly; } settings_t; +#ifdef _cplusplus +extern "C" { +#endif settings_t* new_settings_t(); +void destroy_settings_t(settings_t*); -void printHelpText(const char* prgName); +void printHelpText(const char*); +#ifdef _cplusplus +} +#endif #endif /* _CLINE_H */ diff -r 510d6b198dde -r c3acfb3b4957 functions.h --- a/functions.h Thu May 26 14:39:52 2011 +0200 +++ b/functions.h Fri May 27 12:49:33 2011 +0200 @@ -1,9 +1,17 @@ #ifndef _CLINE_FUNCTIONS_H #define _CLINE_FUNCTIONS_H +#ifdef _cplusplus +extern "C" { +#endif + int checkArgument(const char*, const char*); bool testSuffix(char* filename, settings_t* settings); int scanDirectory(DIR *dir, const int spaces, char* currdir, settings_t* settings); -#endif /* V2_H */ +#ifdef _cplusplus +} +#endif + +#endif /* _CLINE_FUNCTIONS_H */