diff options
| -rw-r--r-- | cgit.c | 1 | ||||
| -rw-r--r-- | cgit.h | 15 | ||||
| -rw-r--r-- | html.c | 31 | ||||
| -rw-r--r-- | html.h | 18 | ||||
| -rw-r--r-- | shared.c | 2 | ||||
| -rw-r--r-- | ui-blob.c | 9 | ||||
| -rw-r--r-- | ui-commit.c | 7 | ||||
| -rw-r--r-- | ui-diff.c | 2 | ||||
| -rw-r--r-- | ui-log.c | 1 | ||||
| -rw-r--r-- | ui-patch.c | 1 | ||||
| -rw-r--r-- | ui-refs.c | 4 | ||||
| -rw-r--r-- | ui-repolist.c | 3 | ||||
| -rw-r--r-- | ui-shared.c | 16 | ||||
| -rw-r--r-- | ui-snapshot.c | 1 | ||||
| -rw-r--r-- | ui-summary.c | 1 | ||||
| -rw-r--r-- | ui-tag.c | 2 | ||||
| -rw-r--r-- | ui-tree.c | 3 |
17 files changed, 71 insertions, 46 deletions
| @@ -291,7 +291,6 @@ int main(int argc, const char **argv) | |||
| 291 | const char *cgit_config_env = getenv("CGIT_CONFIG"); | 291 | const char *cgit_config_env = getenv("CGIT_CONFIG"); |
| 292 | 292 | ||
| 293 | cgit_prepare_context(&ctx); | 293 | cgit_prepare_context(&ctx); |
| 294 | htmlfd = STDOUT_FILENO; | ||
| 295 | item.st.st_mtime = time(NULL); | 294 | item.st.st_mtime = time(NULL); |
| 296 | cgit_repolist.length = 0; | 295 | cgit_repolist.length = 0; |
| 297 | cgit_repolist.count = 0; | 296 | cgit_repolist.count = 0; |
| @@ -186,8 +186,6 @@ extern struct cgit_repolist cgit_repolist; | |||
| 186 | extern struct cgit_context ctx; | 186 | extern struct cgit_context ctx; |
| 187 | extern int cgit_cmd; | 187 | extern int cgit_cmd; |
| 188 | 188 | ||
| 189 | extern int htmlfd; | ||
| 190 | |||
| 191 | extern void cgit_prepare_context(struct cgit_context *ctx); | 189 | extern void cgit_prepare_context(struct cgit_context *ctx); |
| 192 | extern int cgit_get_cmd_index(const char *cmd); | 190 | extern int cgit_get_cmd_index(const char *cmd); |
| 193 | extern struct cgit_repo *cgit_get_repoinfo(const char *url); | 191 | extern struct cgit_repo *cgit_get_repoinfo(const char *url); |
| @@ -222,18 +220,6 @@ extern void cgit_diff_commit(struct commit *commit, filepair_fn fn); | |||
| 222 | 220 | ||
| 223 | extern char *fmt(const char *format,...); | 221 | extern char *fmt(const char *format,...); |
| 224 | 222 | ||
| 225 | extern void html(const char *txt); | ||
| 226 | extern void htmlf(const char *format,...); | ||
| 227 | extern void html_txt(char *txt); | ||
| 228 | extern void html_ntxt(int len, char *txt); | ||
| 229 | extern void html_attr(char *txt); | ||
| 230 | extern void html_hidden(char *name, char *value); | ||
| 231 | extern void html_option(char *value, char *text, char *selected_value); | ||
| 232 | extern void html_link_open(char *url, char *title, char *class); | ||
| 233 | extern void html_link_close(void); | ||
| 234 | extern void html_filemode(unsigned short mode); | ||
| 235 | extern int html_include(const char *filename); | ||
| 236 | |||
| 237 | extern int cgit_read_config(const char *filename, configfn fn); | 223 | extern int cgit_read_config(const char *filename, configfn fn); |
| 238 | extern int cgit_parse_query(char *txt, configfn fn); | 224 | extern int cgit_parse_query(char *txt, configfn fn); |
| 239 | extern struct commitinfo *cgit_parse_commit(struct commit *commit); | 225 | extern struct commitinfo *cgit_parse_commit(struct commit *commit); |
| @@ -280,6 +266,7 @@ extern void cgit_print_pageheader(char *title, int show_search); | |||
| 280 | extern void cgit_print_snapshot_start(const char *mimetype, | 266 | extern void cgit_print_snapshot_start(const char *mimetype, |
| 281 | const char *filename, | 267 | const char *filename, |
| 282 | struct cacheitem *item); | 268 | struct cacheitem *item); |
| 269 | extern void cgit_print_filemode(unsigned short mode); | ||
| 283 | extern void cgit_print_branches(int maxcount); | 270 | extern void cgit_print_branches(int maxcount); |
| 284 | extern void cgit_print_tags(int maxcount); | 271 | extern void cgit_print_tags(int maxcount); |
| 285 | 272 | ||
| @@ -6,7 +6,13 @@ | |||
| 6 | * (see COPYING for full license text) | 6 | * (see COPYING for full license text) |
| 7 | */ | 7 | */ |
| 8 | 8 | ||
| 9 | #include "cgit.h" | 9 | #include <unistd.h> |
| 10 | #include <stdio.h> | ||
| 11 | #include <stdlib.h> | ||
| 12 | #include <stdarg.h> | ||
| 13 | #include <string.h> | ||
| 14 | |||
| 15 | int htmlfd = STDOUT_FILENO; | ||
| 10 | 16 | ||
| 11 | char *fmt(const char *format, ...) | 17 | char *fmt(const char *format, ...) |
| 12 | { | 18 | { |
| @@ -21,8 +27,10 @@ char *fmt(const char *format, ...) | |||
| 21 | va_start(args, format); | 27 | va_start(args, format); |
| 22 | len = vsnprintf(buf[bufidx], sizeof(buf[bufidx]), format, args); | 28 | len = vsnprintf(buf[bufidx], sizeof(buf[bufidx]), format, args); |
| 23 | va_end(args); | 29 | va_end(args); |
| 24 | if (len>sizeof(buf[bufidx])) | 30 | if (len>sizeof(buf[bufidx])) { |
| 25 | die("[html.c] string truncated: %s", format); | 31 | fprintf(stderr, "[html.c] string truncated: %s\n", format); |
| 32 | exit(1); | ||
| 33 | } | ||
| 26 | return buf[bufidx]; | 34 | return buf[bufidx]; |
| 27 | } | 35 | } |
| 28 | 36 | ||
| @@ -160,25 +168,10 @@ void html_link_close(void) | |||
| 160 | 168 | ||
| 161 | void html_fileperm(unsigned short mode) | 169 | void html_fileperm(unsigned short mode) |
| 162 | { | 170 | { |
| 163 | htmlf("%c%c%c", (mode & 4 ? 'r' : '-'), | 171 | htmlf("%c%c%c", (mode & 4 ? 'r' : '-'), |
| 164 | (mode & 2 ? 'w' : '-'), (mode & 1 ? 'x' : '-')); | 172 | (mode & 2 ? 'w' : '-'), (mode & 1 ? 'x' : '-')); |
| 165 | } | 173 | } |
| 166 | 174 | ||
| 167 | void html_filemode(unsigned short mode) | ||
| 168 | { | ||
| 169 | if (S_ISDIR(mode)) | ||
| 170 | html("d"); | ||
| 171 | else if (S_ISLNK(mode)) | ||
| 172 | html("l"); | ||
| 173 | else if (S_ISGITLINK(mode)) | ||
| 174 | html("m"); | ||
| 175 | else | ||
| 176 | html("-"); | ||
| 177 | html_fileperm(mode >> 6); | ||
| 178 | html_fileperm(mode >> 3); | ||
| 179 | html_fileperm(mode); | ||
| 180 | } | ||
| 181 | |||
| 182 | int html_include(const char *filename) | 175 | int html_include(const char *filename) |
| 183 | { | 176 | { |
| 184 | FILE *f; | 177 | FILE *f; |
| @@ -0,0 +1,18 @@ | |||
| 1 | #ifndef HTML_H | ||
| 2 | #define HTML_H | ||
| 3 | |||
| 4 | extern int htmlfd; | ||
| 5 | |||
| 6 | extern void html(const char *txt); | ||
| 7 | extern void htmlf(const char *format,...); | ||
| 8 | extern void html_txt(char *txt); | ||
| 9 | extern void html_ntxt(int len, char *txt); | ||
| 10 | extern void html_attr(char *txt); | ||
| 11 | extern void html_hidden(char *name, char *value); | ||
| 12 | extern void html_option(char *value, char *text, char *selected_value); | ||
| 13 | extern void html_link_open(char *url, char *title, char *class); | ||
| 14 | extern void html_link_close(void); | ||
| 15 | extern void html_fileperm(unsigned short mode); | ||
| 16 | extern int html_include(const char *filename); | ||
| 17 | |||
| 18 | #endif /* HTML_H */ | ||
| @@ -14,8 +14,6 @@ int cgit_cmd; | |||
| 14 | 14 | ||
| 15 | const char *cgit_version = CGIT_VERSION; | 15 | const char *cgit_version = CGIT_VERSION; |
| 16 | 16 | ||
| 17 | int htmlfd = 0; | ||
| 18 | |||
| 19 | void cgit_prepare_context(struct cgit_context *ctx) | 17 | void cgit_prepare_context(struct cgit_context *ctx) |
| 20 | { | 18 | { |
| 21 | memset(ctx, 0, sizeof(ctx)); | 19 | memset(ctx, 0, sizeof(ctx)); |
| @@ -1,4 +1,13 @@ | |||
| 1 | /* ui-blob.c: show blob content | ||
| 2 | * | ||
| 3 | * Copyright (C) 2008 Lars Hjemli | ||
| 4 | * | ||
| 5 | * Licensed under GNU General Public License v2 | ||
| 6 | * (see COPYING for full license text) | ||
| 7 | */ | ||
| 8 | |||
| 1 | #include "cgit.h" | 9 | #include "cgit.h" |
| 10 | #include "html.h" | ||
| 2 | 11 | ||
| 3 | void cgit_print_blob(struct cacheitem *item, const char *hex, char *path) | 12 | void cgit_print_blob(struct cacheitem *item, const char *hex, char *path) |
| 4 | { | 13 | { |
diff --git a/ui-commit.c b/ui-commit.c index 25721ca..ed25824 100644 --- a/ui-commit.c +++ b/ui-commit.c | |||
| @@ -7,6 +7,7 @@ | |||
| 7 | */ | 7 | */ |
| 8 | 8 | ||
| 9 | #include "cgit.h" | 9 | #include "cgit.h" |
| 10 | #include "html.h" | ||
| 10 | 11 | ||
| 11 | static int files, slots; | 12 | static int files, slots; |
| 12 | static int total_adds, total_rems, max_changes; | 13 | static int total_adds, total_rems, max_changes; |
| @@ -62,16 +63,16 @@ void print_fileinfo(struct fileinfo *info) | |||
| 62 | html("<tr>"); | 63 | html("<tr>"); |
| 63 | htmlf("<td class='mode'>"); | 64 | htmlf("<td class='mode'>"); |
| 64 | if (is_null_sha1(info->new_sha1)) { | 65 | if (is_null_sha1(info->new_sha1)) { |
| 65 | html_filemode(info->old_mode); | 66 | cgit_print_filemode(info->old_mode); |
| 66 | } else { | 67 | } else { |
| 67 | html_filemode(info->new_mode); | 68 | cgit_print_filemode(info->new_mode); |
| 68 | } | 69 | } |
| 69 | 70 | ||
| 70 | if (info->old_mode != info->new_mode && | 71 | if (info->old_mode != info->new_mode && |
| 71 | !is_null_sha1(info->old_sha1) && | 72 | !is_null_sha1(info->old_sha1) && |
| 72 | !is_null_sha1(info->new_sha1)) { | 73 | !is_null_sha1(info->new_sha1)) { |
| 73 | html("<span class='modechange'>["); | 74 | html("<span class='modechange'>["); |
| 74 | html_filemode(info->old_mode); | 75 | cgit_print_filemode(info->old_mode); |
| 75 | html("]</span>"); | 76 | html("]</span>"); |
| 76 | } | 77 | } |
| 77 | htmlf("</td><td class='%s'>", class); | 78 | htmlf("</td><td class='%s'>", class); |
| @@ -7,7 +7,7 @@ | |||
| 7 | */ | 7 | */ |
| 8 | 8 | ||
| 9 | #include "cgit.h" | 9 | #include "cgit.h" |
| 10 | 10 | #include "html.h" | |
| 11 | 11 | ||
| 12 | unsigned char old_rev_sha1[20]; | 12 | unsigned char old_rev_sha1[20]; |
| 13 | unsigned char new_rev_sha1[20]; | 13 | unsigned char new_rev_sha1[20]; |
| @@ -7,6 +7,7 @@ | |||
| 7 | */ | 7 | */ |
| 8 | 8 | ||
| 9 | #include "cgit.h" | 9 | #include "cgit.h" |
| 10 | #include "html.h" | ||
| 10 | 11 | ||
| 11 | int files, add_lines, rem_lines; | 12 | int files, add_lines, rem_lines; |
| 12 | 13 | ||
| @@ -7,6 +7,7 @@ | |||
| 7 | */ | 7 | */ |
| 8 | 8 | ||
| 9 | #include "cgit.h" | 9 | #include "cgit.h" |
| 10 | #include "html.h" | ||
| 10 | 11 | ||
| 11 | static void print_line(char *line, int len) | 12 | static void print_line(char *line, int len) |
| 12 | { | 13 | { |
| @@ -7,9 +7,7 @@ | |||
| 7 | */ | 7 | */ |
| 8 | 8 | ||
| 9 | #include "cgit.h" | 9 | #include "cgit.h" |
| 10 | 10 | #include "html.h" | |
| 11 | |||
| 12 | |||
| 13 | 11 | ||
| 14 | void cgit_print_refs() | 12 | void cgit_print_refs() |
| 15 | { | 13 | { |
diff --git a/ui-repolist.c b/ui-repolist.c index 5fde174..cd4e41d 100644 --- a/ui-repolist.c +++ b/ui-repolist.c | |||
| @@ -6,9 +6,10 @@ | |||
| 6 | * (see COPYING for full license text) | 6 | * (see COPYING for full license text) |
| 7 | */ | 7 | */ |
| 8 | 8 | ||
| 9 | #include "cgit.h" | ||
| 10 | #include <time.h> | 9 | #include <time.h> |
| 11 | 10 | ||
| 11 | #include "cgit.h" | ||
| 12 | #include "html.h" | ||
| 12 | 13 | ||
| 13 | time_t read_agefile(char *path) | 14 | time_t read_agefile(char *path) |
| 14 | { | 15 | { |
diff --git a/ui-shared.c b/ui-shared.c index cc1ab8b..2eff79d 100644 --- a/ui-shared.c +++ b/ui-shared.c | |||
| @@ -7,6 +7,7 @@ | |||
| 7 | */ | 7 | */ |
| 8 | 8 | ||
| 9 | #include "cgit.h" | 9 | #include "cgit.h" |
| 10 | #include "html.h" | ||
| 10 | 11 | ||
| 11 | const char cgit_doctype[] = | 12 | const char cgit_doctype[] = |
| 12 | "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n" | 13 | "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n" |
| @@ -567,4 +568,19 @@ void cgit_print_snapshot_start(const char *mimetype, const char *filename, | |||
| 567 | html("\n"); | 568 | html("\n"); |
| 568 | } | 569 | } |
| 569 | 570 | ||
| 571 | void cgit_print_filemode(unsigned short mode) | ||
| 572 | { | ||
| 573 | if (S_ISDIR(mode)) | ||
| 574 | html("d"); | ||
| 575 | else if (S_ISLNK(mode)) | ||
| 576 | html("l"); | ||
| 577 | else if (S_ISGITLINK(mode)) | ||
| 578 | html("m"); | ||
| 579 | else | ||
| 580 | html("-"); | ||
| 581 | html_fileperm(mode >> 6); | ||
| 582 | html_fileperm(mode >> 3); | ||
| 583 | html_fileperm(mode); | ||
| 584 | } | ||
| 585 | |||
| 570 | /* vim:set sw=8: */ | 586 | /* vim:set sw=8: */ |
diff --git a/ui-snapshot.c b/ui-snapshot.c index dfedd8f..67dbbdd 100644 --- a/ui-snapshot.c +++ b/ui-snapshot.c | |||
| @@ -7,6 +7,7 @@ | |||
| 7 | */ | 7 | */ |
| 8 | 8 | ||
| 9 | #include "cgit.h" | 9 | #include "cgit.h" |
| 10 | #include "html.h" | ||
| 10 | 11 | ||
| 11 | static int write_compressed_tar_archive(struct archiver_args *args,const char *filter) | 12 | static int write_compressed_tar_archive(struct archiver_args *args,const char *filter) |
| 12 | { | 13 | { |
diff --git a/ui-summary.c b/ui-summary.c index 3baac08..0afa0a3 100644 --- a/ui-summary.c +++ b/ui-summary.c | |||
| @@ -7,6 +7,7 @@ | |||
| 7 | */ | 7 | */ |
| 8 | 8 | ||
| 9 | #include "cgit.h" | 9 | #include "cgit.h" |
| 10 | #include "html.h" | ||
| 10 | 11 | ||
| 11 | static int header; | 12 | static int header; |
| 12 | 13 | ||
| @@ -7,7 +7,7 @@ | |||
| 7 | */ | 7 | */ |
| 8 | 8 | ||
| 9 | #include "cgit.h" | 9 | #include "cgit.h" |
| 10 | 10 | #include "html.h" | |
| 11 | 11 | ||
| 12 | static void print_tag_content(char *buf) | 12 | static void print_tag_content(char *buf) |
| 13 | { | 13 | { |
| @@ -7,6 +7,7 @@ | |||
| 7 | */ | 7 | */ |
| 8 | 8 | ||
| 9 | #include "cgit.h" | 9 | #include "cgit.h" |
| 10 | #include "html.h" | ||
| 10 | 11 | ||
| 11 | char *curr_rev; | 12 | char *curr_rev; |
| 12 | char *match_path; | 13 | char *match_path; |
| @@ -79,7 +80,7 @@ static int ls_item(const unsigned char *sha1, const char *base, int baselen, | |||
| 79 | } | 80 | } |
| 80 | 81 | ||
| 81 | html("<tr><td class='ls-mode'>"); | 82 | html("<tr><td class='ls-mode'>"); |
| 82 | html_filemode(mode); | 83 | cgit_print_filemode(mode); |
| 83 | html("</td><td>"); | 84 | html("</td><td>"); |
| 84 | if (S_ISGITLINK(mode)) { | 85 | if (S_ISGITLINK(mode)) { |
| 85 | htmlf("<a class='ls-mod' href='"); | 86 | htmlf("<a class='ls-mod' href='"); |
