| 1550 | } |
| 1551 | |
| 1552 | static bool is_header_include(const char *path) { |
| 1553 | if (!path || !path[0]) { |
| 1554 | return false; |
| 1555 | } |
| 1556 | static const char *header_exts[] = {".h", ".hh", ".hpp", ".hxx", ".inc", ".inl", ".ipp", NULL}; |
| 1557 | for (const char **ext = header_exts; *ext; ext++) { |
| 1558 | size_t path_len = strlen(path); |
| 1559 | size_t ext_len = strlen(*ext); |
| 1560 | if (path_len > ext_len && strcmp(path + path_len - ext_len, *ext) == 0) { |
| 1561 | return true; |
| 1562 | } |
| 1563 | } |
| 1564 | return false; |
| 1565 | } |
| 1566 | |
| 1567 | static bool is_c_family_source(const char *source_rel) { |
| 1568 | if (!source_rel || !source_rel[0]) { |
no outgoing calls
no test coverage detected