diff options
Diffstat (limited to 'ui-shared.c')
-rw-r--r-- | ui-shared.c | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/ui-shared.c b/ui-shared.c index aba93e8..9ab6409 100644 --- a/ui-shared.c +++ b/ui-shared.c | |||
@@ -87,6 +87,70 @@ char *cgit_currurl() | |||
87 | return fmt("%s/", cgit_virtual_root); | 87 | return fmt("%s/", cgit_virtual_root); |
88 | } | 88 | } |
89 | 89 | ||
90 | static char *repolink(char *title, char *class, char *page, char *head, | ||
91 | char *path) | ||
92 | { | ||
93 | char *delim = "?"; | ||
94 | |||
95 | html("<a"); | ||
96 | if (title) { | ||
97 | html(" title='"); | ||
98 | html_attr(title); | ||
99 | html("'"); | ||
100 | } | ||
101 | if (class) { | ||
102 | html(" class='"); | ||
103 | html_attr(class); | ||
104 | html("'"); | ||
105 | } | ||
106 | html(" href='"); | ||
107 | if (cgit_virtual_root) { | ||
108 | html_attr(cgit_virtual_root); | ||
109 | if (cgit_virtual_root[strlen(cgit_virtual_root) - 1] != '/') | ||
110 | html("/"); | ||
111 | html_attr(cgit_repo->url); | ||
112 | if (cgit_repo->url[strlen(cgit_repo->url) - 1] != '/') | ||
113 | html("/"); | ||
114 | html(page); | ||
115 | html("/"); | ||
116 | if (path) | ||
117 | html_attr(path); | ||
118 | } else { | ||
119 | html(cgit_script_name); | ||
120 | html("?url="); | ||
121 | html_attr(cgit_repo->url); | ||
122 | if (cgit_repo->url[strlen(cgit_repo->url) - 1] != '/') | ||
123 | html("/"); | ||
124 | html(page); | ||
125 | html("/"); | ||
126 | if (path) | ||
127 | html_attr(path); | ||
128 | delim = "&"; | ||
129 | } | ||
130 | if (head && head != cgit_query_head) { | ||
131 | html(delim); | ||
132 | html("h="); | ||
133 | html_attr(head); | ||
134 | delim = "&"; | ||
135 | } | ||
136 | return fmt("%s", delim); | ||
137 | } | ||
138 | |||
139 | void cgit_tree_link(char *name, char *title, char *class, char *head, | ||
140 | char *rev, char *path) | ||
141 | { | ||
142 | char *delim; | ||
143 | |||
144 | delim = repolink(title, class, "tree", head, path); | ||
145 | if (rev && rev != cgit_query_head) { | ||
146 | html(delim); | ||
147 | html("id="); | ||
148 | html_attr(rev); | ||
149 | } | ||
150 | html("'>"); | ||
151 | html_txt(name); | ||
152 | html("</a>"); | ||
153 | } | ||
90 | 154 | ||
91 | void cgit_print_date(time_t secs, char *format) | 155 | void cgit_print_date(time_t secs, char *format) |
92 | { | 156 | { |