a more 'modern' version of cgit
Log | Files | Refs | Submodules | README | LICENSE | git clone

commit 996f86e664ab6d00a9304a42374e9c691b78ca6b
parent 849ecd961df9454d6f849eac34e6f501395c4f01
Author: Lukas Fleischer <>
Date:   Mon,  1 Apr 2013 17:11:13 +0200

Return const char * in cgit_{httpscheme, hosturl, rooturl}()

The return values of these functions are essentially constant and should
never be modified.

Note that this will introduce a compiler warning when we try to free the
return value of any of these functions. However, given that all of these
currently return statically allocated strings in some cases, they need
to be refactored before this can be done anyway.

Signed-off-by: Lukas Fleischer <>

Mui-atom.c | 4++--
Mui-shared.c | 8++++----
Mui-shared.h | 6+++---
3 files changed, 9 insertions(+), 9 deletions(-)

diff --git a/ui-atom.c b/ui-atom.c @@ -10,7 +10,7 @@ #include "html.h" #include "ui-shared.h" -static void add_entry(struct commit *commit, char *host) +static void add_entry(struct commit *commit, const char *host) { char delim = '&'; char *hex; @@ -79,7 +79,7 @@ static void add_entry(struct commit *commit, char *host) void cgit_print_atom(char *tip, char *path, int max_count) { - char *host; + const char *host; const char *argv[] = {NULL, tip, NULL, NULL, NULL}; struct commit *commit; struct rev_info rev; diff --git a/ui-shared.c b/ui-shared.c @@ -34,7 +34,7 @@ void cgit_print_error(const char *msg) html("</div>\n"); } -char *cgit_httpscheme() +const char *cgit_httpscheme() { if (ctx.env.https && !strcmp(ctx.env.https, "on")) return "https://"; @@ -42,7 +42,7 @@ char *cgit_httpscheme() return "http://"; } -char *cgit_hosturl() +const char *cgit_hosturl() { if (ctx.env.http_host) return ctx.env.http_host; @@ -53,7 +53,7 @@ char *cgit_hosturl() return xstrdup(fmt("%s:%s", ctx.env.server_name, ctx.env.server_port)); } -char *cgit_rooturl() +const char *cgit_rooturl() { if (ctx.cfg.virtual_root) return fmt("%s/", ctx.cfg.virtual_root); @@ -651,7 +651,7 @@ void cgit_print_docstart(struct cgit_context *ctx) return; } - char *host = cgit_hosturl(); + const char *host = cgit_hosturl(); html(cgit_doctype); html("<html xmlns='' xml:lang='en' lang='en'>\n"); html("<head>\n"); diff --git a/ui-shared.h b/ui-shared.h @@ -1,9 +1,9 @@ #ifndef UI_SHARED_H #define UI_SHARED_H -extern char *cgit_httpscheme(); -extern char *cgit_hosturl(); -extern char *cgit_rooturl(); +extern const char *cgit_httpscheme(); +extern const char *cgit_hosturl(); +extern const char *cgit_rooturl(); extern char *cgit_repourl(const char *reponame); extern char *cgit_fileurl(const char *reponame, const char *pagename, const char *filename, const char *query);