X-Git-Url: https://gitweb.ps.run/ps-cgit/blobdiff_plain/420712ac2531f65a2b94d5ec6d8e03de6942331e..23734c5a2b607dca2d634cafdc63202a687f26d3:/shared.c?ds=sidebyside diff --git a/shared.c b/shared.c index 6b5cfc2..dd711a8 100644 --- a/shared.c +++ b/shared.c @@ -1,3 +1,11 @@ +/* shared.c: global vars + some callback functions + * + * Copyright (C) 2006 Lars Hjemli + * + * Licensed under GNU General Public License v2 + * (see COPYING for full license text) + */ + #include "cgit.h" char *cgit_root = "/usr/src/git"; @@ -9,6 +17,7 @@ char *cgit_virtual_root = NULL; char *cgit_cache_root = "/var/cache/cgit"; +int cgit_nocache = 0; int cgit_max_lock_attempts = 5; int cgit_cache_root_ttl = 5; int cgit_cache_repo_ttl = 5; @@ -27,7 +36,10 @@ char *cgit_querystring = NULL; char *cgit_query_repo = NULL; char *cgit_query_page = NULL; char *cgit_query_head = NULL; +char *cgit_query_search = NULL; char *cgit_query_sha1 = NULL; +char *cgit_query_sha2 = NULL; +char *cgit_query_path = NULL; int cgit_query_ofs = 0; int htmlfd = 0; @@ -46,6 +58,18 @@ void cgit_global_config_cb(const char *name, const char *value) cgit_logo_link = xstrdup(value); else if (!strcmp(name, "virtual-root")) cgit_virtual_root = xstrdup(value); + else if (!strcmp(name, "nocache")) + cgit_nocache = atoi(value); + else if (!strcmp(name, "cache-root")) + cgit_cache_root = xstrdup(value); + else if (!strcmp(name, "cache-root-ttl")) + cgit_cache_root_ttl = atoi(value); + else if (!strcmp(name, "cache-repo-ttl")) + cgit_cache_repo_ttl = atoi(value); + else if (!strcmp(name, "cache-static-ttl")) + cgit_cache_static_ttl = atoi(value); + else if (!strcmp(name, "cache-dynamic-ttl")) + cgit_cache_dynamic_ttl = atoi(value); } void cgit_repo_config_cb(const char *name, const char *value) @@ -64,14 +88,44 @@ void cgit_querystring_cb(const char *name, const char *value) cgit_query_repo = xstrdup(value); } else if (!strcmp(name, "p")) { cgit_query_page = xstrdup(value); + } else if (!strcmp(name, "q")) { + cgit_query_search = xstrdup(value); } else if (!strcmp(name, "h")) { cgit_query_head = xstrdup(value); cgit_query_has_symref = 1; } else if (!strcmp(name, "id")) { cgit_query_sha1 = xstrdup(value); cgit_query_has_sha1 = 1; + } else if (!strcmp(name, "id2")) { + cgit_query_sha2 = xstrdup(value); + cgit_query_has_sha1 = 1; } else if (!strcmp(name, "ofs")) { cgit_query_ofs = atoi(value); + } else if (!strcmp(name, "path")) { + cgit_query_path = xstrdup(value); } } +void *cgit_free_commitinfo(struct commitinfo *info) +{ + free(info->author); + free(info->author_email); + free(info->committer); + free(info->committer_email); + free(info->subject); + free(info); + return NULL; +} + +int hextoint(char c) +{ + if (c >= 'a' && c <= 'f') + return 10 + c - 'a'; + else if (c >= 'A' && c <= 'F') + return 10 + c - 'A'; + else if (c >= '0' && c <= '9') + return c - '0'; + else + return -1; +} +