List for cgit developers and users
 help / color / mirror / Atom feed
From: john at keeping.me.uk (John Keeping)
Subject: [PATCH 1/3] Return const char * in cgit_{httpscheme, hosturl, rooturl}()
Date: Mon, 1 Apr 2013 16:35:35 +0100	[thread overview]
Message-ID: <20130401153535.GA2222@serenity.lan> (raw)
In-Reply-To: <1364829075-18159-1-git-send-email-cgit@cryptocrack.de>

On Mon, Apr 01, 2013 at 05:11:13PM +0200, Lukas Fleischer wrote:
> 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.

It looks like cgit_hosturl() already returns allocated memory in one
case, and cgit_rooturl() returns a static buffer from fmt().

I wonder if it's sensible to just set ctx.env.http_host to something
sensible in prepare_context() and get rid of cgit_hosturl completely,
especially since it is used in all requests anyway.

I think we can also remove cgit_rooturl since in main() we set
ctx.cfg.virtual_root to ctx.cfg.script_name in the same way this
function does, so there's no need to fall back to script_name when we're
rendering a page.

> Signed-off-by: Lukas Fleischer <cgit at cryptocrack.de>
> ---
>  ui-atom.c   | 4 ++--
>  ui-shared.c | 8 ++++----
>  ui-shared.h | 6 +++---
>  3 files changed, 9 insertions(+), 9 deletions(-)
> 
> diff --git a/ui-atom.c b/ui-atom.c
> index 5b5525d..1554088 100644
> --- 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
> index d4fb3d9..7a726c1 100644
> --- 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='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>\n");
>  	html("<head>\n");
> diff --git a/ui-shared.h b/ui-shared.h
> index 87a7dac..0666388 100644
> --- 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);
> -- 
> 1.8.2.411.g65a544e




  parent reply	other threads:[~2013-04-01 15:35 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-04-01 15:11 cgit
2013-04-01 15:11 ` [PATCH 2/3] Maŕk cgit_environment members const cgit
2013-04-04 14:17   ` Jason
2013-04-01 15:11 ` [PATCH 3/3] Do not unnecessarily strdup() environment variables cgit
2013-04-04 14:19   ` Jason
2013-04-01 15:35 ` john [this message]
2013-04-01 17:53   ` [PATCH 1/3] Return const char * in cgit_{httpscheme, hosturl, rooturl}() john
2013-04-01 19:51   ` cgit

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20130401153535.GA2222@serenity.lan \
    --to=cgit@lists.zx2c4.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).