diff options
| author | Lars Hjemli <hjemli@gmail.com> | 2008-02-23 22:45:33 +0100 | 
|---|---|---|
| committer | Lars Hjemli <hjemli@gmail.com> | 2008-03-18 08:13:10 +0100 | 
| commit | b1f9b9c1459cb9a30ebf80721aff6ef788d1f891 (patch) | |
| tree | 05796a741faef90c12aadd3a5c92b702ec870c48 | |
| parent | b88fb016d0209f7041ac7d3b4d2c077318407a4d (diff) | |
| download | cgit-b1f9b9c1459cb9a30ebf80721aff6ef788d1f891.tar.gz cgit-b1f9b9c1459cb9a30ebf80721aff6ef788d1f891.tar.bz2 cgit-b1f9b9c1459cb9a30ebf80721aff6ef788d1f891.zip | |
Introduce html.h
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>
| -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)  	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; @@ -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); @@ -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; @@ -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 */ @@ -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)); @@ -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)  { 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 @@   */  #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); @@ -7,7 +7,7 @@   */  #include "cgit.h" - +#include "html.h"  unsigned char old_rev_sha1[20];  unsigned char new_rev_sha1[20]; @@ -7,6 +7,7 @@   */  #include "cgit.h" +#include "html.h"  int files, add_lines, rem_lines; @@ -7,6 +7,7 @@   */  #include "cgit.h" +#include "html.h"  static void print_line(char *line, int len)  { @@ -7,9 +7,7 @@   */  #include "cgit.h" - - - +#include "html.h"  void cgit_print_refs()  { 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 @@   *   (see COPYING for full license text)   */ -#include "cgit.h"  #include <time.h> +#include "cgit.h" +#include "html.h"  time_t read_agefile(char *path)  { 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 @@   */  #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: */ 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 @@   */  #include "cgit.h" +#include "html.h"  static int write_compressed_tar_archive(struct archiver_args *args,const char *filter)  { 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 @@   */  #include "cgit.h" +#include "html.h"  static int header; @@ -7,7 +7,7 @@   */  #include "cgit.h" - +#include "html.h"  static void print_tag_content(char *buf)  { @@ -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='"); | 
