@b4n commented on this pull request.
- if (source_file->lang == TM_PARSER_C || source_file->lang == TM_PARSER_CPP)
+ { + const gchar **ext; + const gchar *common_src_exts[] = + {".c", ".C", ".cc", ".cp", ".cpp", ".cxx", ".c++", ".CPP", ".CXX", NULL}; + + for (ext = common_src_exts; *ext; ext++) + { + if (g_str_has_suffix(source_file->short_name, *ext)) + { + source_file->is_c_source = TRUE; + break; + } + } + } +
wouldn't it be simpler to have `source_file->is_source`, initialize it to `TRUE` and use it for all languages, and make it `FALSE` for C and C++ if the extension doesn't match any of those?
```C source_file->is_source = TRUE;
if (source_file->lang == TM_PARSER_C || source_file->lang == TM_PARSER_CPP) { const gchar *ext = strrchr(source_file->short_name, '.');
if (! ext) source_file->is_source = FALSE; else { int i; const gchar *common_src_exts[] = {"c", "C", "cc", "cp", "cpp", "cxx", "c++", "CPP", "CXX"};
for (i = 0; i < G_N_ELEMENTS(common_src_exts); i++) { if (strcmp(ext + 1, common_src_exts[i]) == 0) break }
source_file->is_source = (i < G_N_ELEMENTS(common_src_exts)); } } ``` note: code above is entirely untested.