]> gitweb.ps.run Git - ps-cgit/commitdiff
Introduce html.h
authorLars Hjemli <hjemli@gmail.com>
Sat, 23 Feb 2008 21:45:33 +0000 (22:45 +0100)
committerLars Hjemli <hjemli@gmail.com>
Tue, 18 Mar 2008 07:13:10 +0000 (08:13 +0100)
All html-functions can be quite easily separated from the rest of cgit, so
lets do it; the only issue was html_filemode which uses some git-defined
macros so the function is moved into ui-shared.c::cgit_print_filemode().

Signed-off-by: Lars Hjemli <hjemli@gmail.com>
17 files changed:
cgit.c
cgit.h
html.c
html.h [new file with mode: 0644]
shared.c
ui-blob.c
ui-commit.c
ui-diff.c
ui-log.c
ui-patch.c
ui-refs.c
ui-repolist.c
ui-shared.c
ui-snapshot.c
ui-summary.c
ui-tag.c
ui-tree.c

diff --git a/cgit.c b/cgit.c
index 2c933dcdf7daff3e36009ff44733031a062b4fd8..e6b45262193c10bb5ee4f873071b756c00b15049 100644 (file)
--- a/cgit.c
+++ b/cgit.c
@@ -291,7 +291,6 @@ int main(int argc, const char **argv)
        const char *cgit_config_env = getenv("CGIT_CONFIG");
 
        cgit_prepare_context(&ctx);
-       htmlfd = STDOUT_FILENO;
        item.st.st_mtime = time(NULL);
        cgit_repolist.length = 0;
        cgit_repolist.count = 0;
diff --git a/cgit.h b/cgit.h
index 598d8c3b371bb8902b8109a382a194d694f8f885..5b7ee1c986afb2c1b3c7001e64864ff0c1781d51 100644 (file)
--- a/cgit.h
+++ b/cgit.h
@@ -186,8 +186,6 @@ extern struct cgit_repolist cgit_repolist;
 extern struct cgit_context ctx;
 extern int cgit_cmd;
 
-extern int htmlfd;
-
 extern void cgit_prepare_context(struct cgit_context *ctx);
 extern int cgit_get_cmd_index(const char *cmd);
 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);
 
 extern char *fmt(const char *format,...);
 
-extern void html(const char *txt);
-extern void htmlf(const char *format,...);
-extern void html_txt(char *txt);
-extern void html_ntxt(int len, char *txt);
-extern void html_attr(char *txt);
-extern void html_hidden(char *name, char *value);
-extern void html_option(char *value, char *text, char *selected_value);
-extern void html_link_open(char *url, char *title, char *class);
-extern void html_link_close(void);
-extern void html_filemode(unsigned short mode);
-extern int html_include(const char *filename);
-
 extern int cgit_read_config(const char *filename, configfn fn);
 extern int cgit_parse_query(char *txt, configfn fn);
 extern struct commitinfo *cgit_parse_commit(struct commit *commit);
@@ -280,6 +266,7 @@ extern void cgit_print_pageheader(char *title, int show_search);
 extern void cgit_print_snapshot_start(const char *mimetype,
                                      const char *filename,
                                      struct cacheitem *item);
+extern void cgit_print_filemode(unsigned short mode);
 extern void cgit_print_branches(int maxcount);
 extern void cgit_print_tags(int maxcount);
 
diff --git a/html.c b/html.c
index eb163d9d1f3a249feb36ee155ab5a464ef4aa64a..0962e71a32b66a68f1653594de37506425e5eca9 100644 (file)
--- a/html.c
+++ b/html.c
@@ -6,7 +6,13 @@
  *   (see COPYING for full license text)
  */
 
-#include "cgit.h"
+#include <unistd.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <stdarg.h>
+#include <string.h>
+
+int htmlfd = STDOUT_FILENO;
 
 char *fmt(const char *format, ...)
 {
@@ -21,8 +27,10 @@ char *fmt(const char *format, ...)
        va_start(args, format);
        len = vsnprintf(buf[bufidx], sizeof(buf[bufidx]), format, args);
        va_end(args);
-       if (len>sizeof(buf[bufidx]))
-               die("[html.c] string truncated: %s", format);
+       if (len>sizeof(buf[bufidx])) {
+               fprintf(stderr, "[html.c] string truncated: %s\n", format);
+               exit(1);
+       }
        return buf[bufidx];
 }
 
@@ -160,25 +168,10 @@ void html_link_close(void)
 
 void html_fileperm(unsigned short mode)
 {
-       htmlf("%c%c%c", (mode & 4 ? 'r' : '-'), 
+       htmlf("%c%c%c", (mode & 4 ? 'r' : '-'),
              (mode & 2 ? 'w' : '-'), (mode & 1 ? 'x' : '-'));
 }
 
-void html_filemode(unsigned short mode)
-{
-       if (S_ISDIR(mode))
-               html("d");
-       else if (S_ISLNK(mode))
-               html("l");
-       else if (S_ISGITLINK(mode))
-               html("m");
-       else
-               html("-");
-       html_fileperm(mode >> 6);
-       html_fileperm(mode >> 3);
-       html_fileperm(mode);
-}
-
 int html_include(const char *filename)
 {
        FILE *f;
diff --git a/html.h b/html.h
new file mode 100644 (file)
index 0000000..63f4551
--- /dev/null
+++ b/html.h
@@ -0,0 +1,18 @@
+#ifndef HTML_H
+#define HTML_H
+
+extern int htmlfd;
+
+extern void html(const char *txt);
+extern void htmlf(const char *format,...);
+extern void html_txt(char *txt);
+extern void html_ntxt(int len, char *txt);
+extern void html_attr(char *txt);
+extern void html_hidden(char *name, char *value);
+extern void html_option(char *value, char *text, char *selected_value);
+extern void html_link_open(char *url, char *title, char *class);
+extern void html_link_close(void);
+extern void html_fileperm(unsigned short mode);
+extern int html_include(const char *filename);
+
+#endif /* HTML_H */
index 808e6745376bf67f4101a7bfa395a3329ea22587..76e10d044660f0112cd2f88b81d9aa41f7a9105d 100644 (file)
--- a/shared.c
+++ b/shared.c
@@ -14,8 +14,6 @@ int cgit_cmd;
 
 const char *cgit_version = CGIT_VERSION;
 
-int htmlfd = 0;
-
 void cgit_prepare_context(struct cgit_context *ctx)
 {
        memset(ctx, 0, sizeof(ctx));
index f5b844b6da4287a9bd05a55ea9872fa2d8c8283a..be4fb88b690bbb04beb9fd371b1df2bcbe12a8d2 100644 (file)
--- a/ui-blob.c
+++ b/ui-blob.c
@@ -1,4 +1,13 @@
+/* ui-blob.c: show blob content
+ *
+ * Copyright (C) 2008 Lars Hjemli
+ *
+ * Licensed under GNU General Public License v2
+ *   (see COPYING for full license text)
+ */
+
 #include "cgit.h"
+#include "html.h"
 
 void cgit_print_blob(struct cacheitem *item, const char *hex, char *path)
 {
index 25721ca76a3ad7614e2b46363545c48d4e3314f7..ed258243f17c1254e3fcc1b853a5930d307055d8 100644 (file)
@@ -7,6 +7,7 @@
  */
 
 #include "cgit.h"
+#include "html.h"
 
 static int files, slots;
 static int total_adds, total_rems, max_changes;
@@ -62,16 +63,16 @@ void print_fileinfo(struct fileinfo *info)
        html("<tr>");
        htmlf("<td class='mode'>");
        if (is_null_sha1(info->new_sha1)) {
-               html_filemode(info->old_mode);
+               cgit_print_filemode(info->old_mode);
        } else {
-               html_filemode(info->new_mode);
+               cgit_print_filemode(info->new_mode);
        }
 
        if (info->old_mode != info->new_mode &&
            !is_null_sha1(info->old_sha1) &&
            !is_null_sha1(info->new_sha1)) {
                html("<span class='modechange'>[");
-               html_filemode(info->old_mode);
+               cgit_print_filemode(info->old_mode);
                html("]</span>");
        }
        htmlf("</td><td class='%s'>", class);
index 263a7baee0bacdc01001d12abe70e4e202cb4fdc..5c3bc98309650165237ca3edb791f5c8e5475408 100644 (file)
--- a/ui-diff.c
+++ b/ui-diff.c
@@ -7,7 +7,7 @@
  */
 
 #include "cgit.h"
-
+#include "html.h"
 
 unsigned char old_rev_sha1[20];
 unsigned char new_rev_sha1[20];
index 72e2a4b104fab7580f6d84040e9f2553f1399e93..e1d324d2bf406023f93d176f1e3e7e1b719b0518 100644 (file)
--- a/ui-log.c
+++ b/ui-log.c
@@ -7,6 +7,7 @@
  */
 
 #include "cgit.h"
+#include "html.h"
 
 int files, add_lines, rem_lines;
 
index 1da0a27ae9cac4f0c57770be2edd795b8ebaa18d..d93426b01b9c420697162de3abef710d6a02d2d1 100644 (file)
@@ -7,6 +7,7 @@
  */
 
 #include "cgit.h"
+#include "html.h"
 
 static void print_line(char *line, int len)
 {
index ba513c1ce00c22dc07604596fe96f5689ae6a3a0..e2a16f49fb378823f1d8726563acd472e2029331 100644 (file)
--- a/ui-refs.c
+++ b/ui-refs.c
@@ -7,9 +7,7 @@
  */
 
 #include "cgit.h"
-
-
-
+#include "html.h"
 
 void cgit_print_refs()
 {
index 5fde174476aec8e36600c848ba528b8639cc4e8b..cd4e41dae41b1c697e3b5d8aa9024986a9d8e199 100644 (file)
@@ -6,9 +6,10 @@
  *   (see COPYING for full license text)
  */
 
-#include "cgit.h"
 #include <time.h>
 
+#include "cgit.h"
+#include "html.h"
 
 time_t read_agefile(char *path)
 {
index cc1ab8bb50a36cec0403fc1215d50e1d6128d5cd..2eff79d63bee6bd6f55dacc609879f61f59c603a 100644 (file)
@@ -7,6 +7,7 @@
  */
 
 #include "cgit.h"
+#include "html.h"
 
 const char cgit_doctype[] =
 "<!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,
        html("\n");
 }
 
+void cgit_print_filemode(unsigned short mode)
+{
+       if (S_ISDIR(mode))
+               html("d");
+       else if (S_ISLNK(mode))
+               html("l");
+       else if (S_ISGITLINK(mode))
+               html("m");
+       else
+               html("-");
+       html_fileperm(mode >> 6);
+       html_fileperm(mode >> 3);
+       html_fileperm(mode);
+}
+
 /* vim:set sw=8: */
index dfedd8f490f344f06c2fb665c3af5e33b5239466..67dbbdda833c048ffba4801c84b043f0442ad034 100644 (file)
@@ -7,6 +7,7 @@
  */
 
 #include "cgit.h"
+#include "html.h"
 
 static int write_compressed_tar_archive(struct archiver_args *args,const char *filter)
 {
index 3baac08f0cf7d43933dda233272fda154b2952c1..0afa0a34abd1eab81bc80fb51ca064d08e70a692 100644 (file)
@@ -7,6 +7,7 @@
  */
 
 #include "cgit.h"
+#include "html.h"
 
 static int header;
 
index 6d761f30722b444e7f3eb11ad9d2bcf0f97ccd1c..2998d0277265ddd78780fb1723adf6f7e252ff3c 100644 (file)
--- a/ui-tag.c
+++ b/ui-tag.c
@@ -7,7 +7,7 @@
  */
 
 #include "cgit.h"
-
+#include "html.h"
 
 static void print_tag_content(char *buf)
 {
index df05ad30171d22ce8f162e53beb8d41ae77036af..79127840e0f029d3ae8c4ef2bf8c5b417f1cfda9 100644 (file)
--- a/ui-tree.c
+++ b/ui-tree.c
@@ -7,6 +7,7 @@
  */
 
 #include "cgit.h"
+#include "html.h"
 
 char *curr_rev;
 char *match_path;
@@ -79,7 +80,7 @@ static int ls_item(const unsigned char *sha1, const char *base, int baselen,
        }
 
        html("<tr><td class='ls-mode'>");
-       html_filemode(mode);
+       cgit_print_filemode(mode);
        html("</td><td>");
        if (S_ISGITLINK(mode)) {
                htmlf("<a class='ls-mod' href='");