-rw-r--r-- | ui-shared.c | 22 | ||||
-rw-r--r-- | ui-shared.h | 2 |
2 files changed, 19 insertions, 5 deletions
diff --git a/ui-shared.c b/ui-shared.c index d08ede9..f366354 100644 --- a/ui-shared.c +++ b/ui-shared.c | |||
@@ -113,9 +113,9 @@ char *cgit_currurl() | |||
113 | else | 113 | else |
114 | return fmt("%s/", ctx.cfg.virtual_root); | 114 | return fmt("%s/", ctx.cfg.virtual_root); |
115 | } | 115 | } |
116 | 116 | ||
117 | static void site_url(char *page, char *search) | 117 | static void site_url(char *page, char *search, int ofs) |
118 | { | 118 | { |
119 | char *delim = "?"; | 119 | char *delim = "?"; |
120 | 120 | ||
121 | if (ctx.cfg.virtual_root) { | 121 | if (ctx.cfg.virtual_root) { |
@@ -132,13 +132,18 @@ static void site_url(char *page, char *search) | |||
132 | if (search) { | 132 | if (search) { |
133 | html(delim); | 133 | html(delim); |
134 | html("q="); | 134 | html("q="); |
135 | html_attr(search); | 135 | html_attr(search); |
136 | delim = "&"; | ||
137 | } | ||
138 | if (ofs) { | ||
139 | html(delim); | ||
140 | htmlf("ofs=%d", ofs); | ||
136 | } | 141 | } |
137 | } | 142 | } |
138 | 143 | ||
139 | static void site_link(char *page, char *name, char *title, char *class, | 144 | static void site_link(char *page, char *name, char *title, char *class, |
140 | char *search) | 145 | char *search, int ofs) |
141 | { | 146 | { |
142 | html("<a"); | 147 | html("<a"); |
143 | if (title) { | 148 | if (title) { |
144 | html(" title='"); | 149 | html(" title='"); |
@@ -150,14 +155,20 @@ static void site_link(char *page, char *name, char *title, char *class, | |||
150 | html_attr(class); | 155 | html_attr(class); |
151 | html("'"); | 156 | html("'"); |
152 | } | 157 | } |
153 | html(" href='"); | 158 | html(" href='"); |
154 | site_url(page, search); | 159 | site_url(page, search, ofs); |
155 | html("'>"); | 160 | html("'>"); |
156 | html_txt(name); | 161 | html_txt(name); |
157 | html("</a>"); | 162 | html("</a>"); |
158 | } | 163 | } |
159 | 164 | ||
165 | void cgit_index_link(char *name, char *title, char *class, char *pattern, | ||
166 | int ofs) | ||
167 | { | ||
168 | site_link(NULL, name, title, class, pattern, ofs); | ||
169 | } | ||
170 | |||
160 | static char *repolink(char *title, char *class, char *page, char *head, | 171 | static char *repolink(char *title, char *class, char *page, char *head, |
161 | char *path) | 172 | char *path) |
162 | { | 173 | { |
163 | char *delim = "?"; | 174 | char *delim = "?"; |
@@ -595,11 +606,12 @@ void cgit_print_pageheader(struct cgit_context *ctx) | |||
595 | html("'/>\n"); | 606 | html("'/>\n"); |
596 | html("<input type='submit' value='search'/>\n"); | 607 | html("<input type='submit' value='search'/>\n"); |
597 | html("</form>\n"); | 608 | html("</form>\n"); |
598 | } else { | 609 | } else { |
599 | site_link(NULL, "index", NULL, hc(cmd, "repolist"), NULL); | 610 | site_link(NULL, "index", NULL, hc(cmd, "repolist"), NULL, 0); |
600 | if (ctx->cfg.root_readme) | 611 | if (ctx->cfg.root_readme) |
601 | site_link("about", "about", NULL, hc(cmd, "about"), NULL); | 612 | site_link("about", "about", NULL, hc(cmd, "about"), |
613 | NULL, 0); | ||
602 | html("</td><td class='form'>"); | 614 | html("</td><td class='form'>"); |
603 | html("<form method='get' action='"); | 615 | html("<form method='get' action='"); |
604 | html_attr(cgit_rooturl()); | 616 | html_attr(cgit_rooturl()); |
605 | html("'>\n"); | 617 | html("'>\n"); |
diff --git a/ui-shared.h b/ui-shared.h index 76c2b1f..3005d30 100644 --- a/ui-shared.h +++ b/ui-shared.h | |||
@@ -6,8 +6,10 @@ extern char *cgit_fileurl(const char *reponame, const char *pagename, | |||
6 | const char *filename, const char *query); | 6 | const char *filename, const char *query); |
7 | extern char *cgit_pageurl(const char *reponame, const char *pagename, | 7 | extern char *cgit_pageurl(const char *reponame, const char *pagename, |
8 | const char *query); | 8 | const char *query); |
9 | 9 | ||
10 | extern void cgit_index_link(char *name, char *title, char *class, | ||
11 | char *pattern, int ofs); | ||
10 | extern void cgit_tree_link(char *name, char *title, char *class, char *head, | 12 | extern void cgit_tree_link(char *name, char *title, char *class, char *head, |
11 | char *rev, char *path); | 13 | char *rev, char *path); |
12 | extern void cgit_log_link(char *name, char *title, char *class, char *head, | 14 | extern void cgit_log_link(char *name, char *title, char *class, char *head, |
13 | char *rev, char *path, int ofs, char *grep, | 15 | char *rev, char *path, int ofs, char *grep, |