| 2901 | if (!aliases || !lang || !lang[0]) return false; |
| 2902 | size_t llen = strlen(lang); |
| 2903 | const char *p = aliases; |
| 2904 | while (*p) { |
| 2905 | while (*p == ' ') p++; |
| 2906 | const char *start = p; |
| 2907 | while (*p && *p != ' ') p++; |
| 2908 | if ((size_t)(p - start) == llen && !strncasecmp(start, lang, llen)) |
| 2909 | return true; |
| 2910 | } |
| 2911 | return false; |
| 2912 | } |
| 2913 | |
| 2914 | static const agent_syntax *agent_syntax_for_lang(const char *lang) { |
| 2915 | if (lang && lang[0]) { |
| 2916 | for (const agent_syntax *s = agent_syntaxes; s->name; s++) { |
| 2917 | if (!strcasecmp(s->name, lang) || |
| 2918 | agent_syntax_alias_match(s->aliases, lang)) |
| 2919 | return s; |
| 2920 | } |
| 2921 | } |
| 2922 | return &agent_syntaxes[0]; |
| 2923 | } |
| 2924 | |
| 2925 | static const agent_syntax *agent_syntax_for_path(const char *path) { |
no test coverage detected