diff options
-rw-r--r-- | ui-repolist.c | 4 | ||||
-rw-r--r-- | ui-shared.c | 11 | ||||
-rw-r--r-- | ui-shared.h | 1 |
3 files changed, 12 insertions, 4 deletions
diff --git a/ui-repolist.c b/ui-repolist.c index 4b16b6e..12ac1fc 100644 --- a/ui-repolist.c +++ b/ui-repolist.c | |||
@@ -108,7 +108,7 @@ static int is_in_url(struct cgit_repo *repo) | |||
108 | static void print_sort_header(const char *title, const char *sort) | 108 | static void print_sort_header(const char *title, const char *sort) |
109 | { | 109 | { |
110 | html("<th class='left'><a href='"); | 110 | html("<th class='left'><a href='"); |
111 | html_attr(ctx.qry.url); | 111 | html_attr(cgit_currenturl()); |
112 | htmlf("?s=%s", sort); | 112 | htmlf("?s=%s", sort); |
113 | if (ctx.qry.search) { | 113 | if (ctx.qry.search) { |
114 | html("&q="); | 114 | html("&q="); |
@@ -315,7 +315,7 @@ void cgit_print_repolist() | |||
315 | cgit_close_filter(ctx.repo->owner_filter); | 315 | cgit_close_filter(ctx.repo->owner_filter); |
316 | } else { | 316 | } else { |
317 | html("<a href='"); | 317 | html("<a href='"); |
318 | html_attr(ctx.qry.url); | 318 | html_attr(cgit_currenturl()); |
319 | html("?q="); | 319 | html("?q="); |
320 | html_url_arg(ctx.repo->owner); | 320 | html_url_arg(ctx.repo->owner); |
321 | html("'>"); | 321 | html("'>"); |
diff --git a/ui-shared.c b/ui-shared.c index f8e5bef..838437c 100644 --- a/ui-shared.c +++ b/ui-shared.c | |||
@@ -65,6 +65,13 @@ const char *cgit_hosturl() | |||
65 | return fmtalloc("%s:%s", ctx.env.server_name, ctx.env.server_port); | 65 | return fmtalloc("%s:%s", ctx.env.server_name, ctx.env.server_port); |
66 | } | 66 | } |
67 | 67 | ||
68 | const char *cgit_currenturl() | ||
69 | { | ||
70 | if (!ctx.qry.url) | ||
71 | return cgit_rooturl(); | ||
72 | return ctx.qry.url; | ||
73 | } | ||
74 | |||
68 | const char *cgit_rooturl() | 75 | const char *cgit_rooturl() |
69 | { | 76 | { |
70 | if (ctx.cfg.virtual_root) | 77 | if (ctx.cfg.virtual_root) |
@@ -145,7 +152,7 @@ static void site_url(const char *page, const char *search, const char *sort, int | |||
145 | char *delim = "?"; | 152 | char *delim = "?"; |
146 | 153 | ||
147 | if (!page) | 154 | if (!page) |
148 | html_attr(ctx.qry.url); | 155 | html_attr(cgit_currenturl()); |
149 | else | 156 | else |
150 | html_attr(cgit_rooturl()); | 157 | html_attr(cgit_rooturl()); |
151 | 158 | ||
@@ -952,7 +959,7 @@ void cgit_print_pageheader(void) | |||
952 | NULL, NULL, 0); | 959 | NULL, NULL, 0); |
953 | html("</td><td class='form'>"); | 960 | html("</td><td class='form'>"); |
954 | html("<form method='get' action='"); | 961 | html("<form method='get' action='"); |
955 | html_attr(ctx.qry.url); | 962 | html_attr(cgit_currenturl()); |
956 | html("'>\n"); | 963 | html("'>\n"); |
957 | html("<input type='text' name='q' size='10' value='"); | 964 | html("<input type='text' name='q' size='10' value='"); |
958 | html_attr(ctx.qry.search); | 965 | html_attr(ctx.qry.search); |
diff --git a/ui-shared.h b/ui-shared.h index 021fe4e..af78a13 100644 --- a/ui-shared.h +++ b/ui-shared.h | |||
@@ -4,6 +4,7 @@ | |||
4 | extern const char *cgit_httpscheme(); | 4 | extern const char *cgit_httpscheme(); |
5 | extern const char *cgit_hosturl(); | 5 | extern const char *cgit_hosturl(); |
6 | extern const char *cgit_rooturl(); | 6 | extern const char *cgit_rooturl(); |
7 | extern const char *cgit_currenturl(); | ||
7 | extern const char *cgit_loginurl(); | 8 | extern const char *cgit_loginurl(); |
8 | extern char *cgit_repourl(const char *reponame); | 9 | extern char *cgit_repourl(const char *reponame); |
9 | extern char *cgit_fileurl(const char *reponame, const char *pagename, | 10 | extern char *cgit_fileurl(const char *reponame, const char *pagename, |