Make repository search case insensitive

This reuses the strcasestr() compiled or linked by libgit.a to implement a
case insensitive variation of the repository search.

Signed-off-by: Lars Hjemli <hjemli@gmail.com>
This commit is contained in:
Lars Hjemli 2008-04-13 12:42:27 +02:00
父節點 39912a24ed
當前提交 28d781f34b
共有 2 個檔案被更改,包括 11 行新增4 行删除

7
cgit.h
查看文件

@ -221,4 +221,11 @@ extern const char *cgit_repobasename(const char *reponame);
extern int cgit_parse_snapshots_mask(const char *str); extern int cgit_parse_snapshots_mask(const char *str);
/* libgit.a either links against or compiles its own implementation of
* strcasestr(), and we'd like to reuse it. Simply re-declaring it
* seems to do the trick.
*/
extern char *strcasestr(const char *haystack, const char *needle);
#endif /* CGIT_H */ #endif /* CGIT_H */

查看文件

@ -48,13 +48,13 @@ int is_match(struct cgit_repo *repo)
{ {
if (!ctx.qry.search) if (!ctx.qry.search)
return 1; return 1;
if (repo->url && strstr(repo->url, ctx.qry.search)) if (repo->url && strcasestr(repo->url, ctx.qry.search))
return 1; return 1;
if (repo->name && strstr(repo->name, ctx.qry.search)) if (repo->name && strcasestr(repo->name, ctx.qry.search))
return 1; return 1;
if (repo->desc && strstr(repo->desc, ctx.qry.search)) if (repo->desc && strcasestr(repo->desc, ctx.qry.search))
return 1; return 1;
if (repo->owner && strstr(repo->owner, ctx.qry.search)) if (repo->owner && strcasestr(repo->owner, ctx.qry.search))
return 1; return 1;
return 0; return 0;
} }