aboutsummaryrefslogtreecommitdiff
diff refs
from: back
to: back
| flip
diff options
context:
space:
mode:
-rw-r--r--cgit.c2
-rw-r--r--ui-shared.c37
-rw-r--r--ui-shared.h1
3 files changed, 3 insertions, 37 deletions
diff --git a/cgit.c b/cgit.c
index 2f07e6d..6301b87 100644
--- a/cgit.c
+++ b/cgit.c
@@ -645,7 +645,7 @@ static inline void open_auth_filter(const char *function)
ctx.env.https ? ctx.env.https : "",
ctx.qry.repo ? ctx.qry.repo : "",
ctx.qry.page ? ctx.qry.page : "",
- cgit_currentfullurl(),
+ ctx.qry.url ? ctx.qry.url : "",
cgit_loginurl());
}
diff --git a/ui-shared.c b/ui-shared.c
index 7a4c726..b53c56d 100644
--- a/ui-shared.c
+++ b/ui-shared.c
@@ -68,48 +68,15 @@ char *cgit_hosturl(void)
char *cgit_currenturl(void)
{
const char *root = cgit_rooturl();
+ size_t len = strlen(root);
if (!ctx.qry.url)
return xstrdup(root);
- if (root[0] && root[strlen(root) - 1] == '/')
+ if (len && root[len - 1] == '/')
return fmtalloc("%s%s", root, ctx.qry.url);
return fmtalloc("%s/%s", root, ctx.qry.url);
}
-char *cgit_currentfullurl(void)
-{
- const char *root = cgit_rooturl();
- const char *orig_query = ctx.env.query_string ? ctx.env.query_string : "";
- size_t len = strlen(orig_query);
- char *query = xmalloc(len + 2), *start_url, *ret;
-
- /* Remove all url=... parts from query string */
- memcpy(query + 1, orig_query, len + 1);
- query[0] = '?';
- start_url = query;
- while ((start_url = strstr(start_url, "url=")) != NULL) {
- if (start_url[-1] == '?' || start_url[-1] == '&') {
- const char *end_url = strchr(start_url, '&');
- if (end_url)
- memmove(start_url, end_url + 1, strlen(end_url));
- else
- start_url[0] = '\0';
- } else
- ++start_url;
- }
- if (!query[1])
- query[0] = '\0';
-
- if (!ctx.qry.url)
- ret = fmtalloc("%s%s", root, query);
- else if (root[0] && root[strlen(root) - 1] == '/')
- ret = fmtalloc("%s%s%s", root, ctx.qry.url, query);
- else
- ret = fmtalloc("%s/%s%s", root, ctx.qry.url, query);
- free(query);
- return ret;
-}
-
const char *cgit_rooturl(void)
{
if (ctx.cfg.virtual_root)
diff --git a/ui-shared.h b/ui-shared.h
index 6964873..4d5978b 100644
--- a/ui-shared.h
+++ b/ui-shared.h
@@ -5,7 +5,6 @@ extern const char *cgit_httpscheme(void);
extern char *cgit_hosturl(void);
extern const char *cgit_rooturl(void);
extern char *cgit_currenturl(void);
-extern char *cgit_currentfullurl(void);
extern const char *cgit_loginurl(void);
extern char *cgit_repourl(const char *reponame);
extern char *cgit_fileurl(const char *reponame, const char *pagename,