diff options
| author | Lars Hjemli <hjemli@gmail.com> | 2008-03-24 16:38:47 +0100 | 
|---|---|---|
| committer | Lars Hjemli <hjemli@gmail.com> | 2008-03-24 16:38:47 +0100 | 
| commit | c5984a9896b39748e61daf6e620483749654b102 (patch) | |
| tree | 5576deee2c5bcc92ae85ab07af215295c52d4143 | |
| parent | f34478cbe0214a201e7ecef3e79ed6c957b7beee (diff) | |
Add separate header-files for each page/view
Yet another step towards removing cgit.h.
Signed-off-by: Lars Hjemli <hjemli@gmail.com>
| -rw-r--r-- | cgit.h | 17 | ||||
| -rw-r--r-- | cmd.c | 11 | ||||
| -rw-r--r-- | ui-blob.h | 6 | ||||
| -rw-r--r-- | ui-commit.h | 6 | ||||
| -rw-r--r-- | ui-diff.h | 7 | ||||
| -rw-r--r-- | ui-log.h | 7 | ||||
| -rw-r--r-- | ui-patch.h | 6 | ||||
| -rw-r--r-- | ui-refs.c | 172 | ||||
| -rw-r--r-- | ui-refs.h | 8 | ||||
| -rw-r--r-- | ui-repolist.h | 6 | ||||
| -rw-r--r-- | ui-snapshot.h | 8 | ||||
| -rw-r--r-- | ui-summary.c | 174 | ||||
| -rw-r--r-- | ui-summary.h | 6 | ||||
| -rw-r--r-- | ui-tag.h | 6 | ||||
| -rw-r--r-- | ui-tree.h | 6 | 
15 files changed, 257 insertions, 189 deletions
| @@ -269,23 +269,6 @@ extern void cgit_print_docstart(struct cgit_context *ctx);  extern void cgit_print_docend();  extern void cgit_print_pageheader(struct cgit_context *ctx);  extern void cgit_print_filemode(unsigned short mode); -extern void cgit_print_branches(int maxcount); -extern void cgit_print_tags(int maxcount); - -extern void cgit_print_repolist(); -extern void cgit_print_summary(); -extern void cgit_print_log(const char *tip, int ofs, int cnt, char *grep, -			   char *pattern, char *path, int pager); -extern void cgit_print_blob(const char *hex, char *path); -extern void cgit_print_tree(const char *rev, char *path); -extern void cgit_print_commit(char *hex); -extern void cgit_print_refs(); -extern void cgit_print_tag(char *revname); -extern void cgit_print_diff(const char *new_hex, const char *old_hex, const char *prefix); -extern void cgit_print_patch(char *hex); -extern void cgit_print_snapshot(const char *head, const char *hex, -				const char *prefix, const char *filename, -				int snapshot);  extern void cgit_print_snapshot_links(const char *repo, const char *head,  				      const char *hex, int snapshots);  extern int cgit_parse_snapshots_mask(const char *str); @@ -8,6 +8,17 @@  #include "cgit.h"  #include "cmd.h" +#include "ui-blob.h" +#include "ui-commit.h" +#include "ui-diff.h" +#include "ui-log.h" +#include "ui-patch.h" +#include "ui-refs.h" +#include "ui-repolist.h" +#include "ui-snapshot.h" +#include "ui-summary.h" +#include "ui-tag.h" +#include "ui-tree.h"  static void blob_fn(struct cgit_context *ctx)  { diff --git a/ui-blob.h b/ui-blob.h new file mode 100644 index 0000000..5a920a8 --- /dev/null +++ b/ui-blob.h @@ -0,0 +1,6 @@ +#ifndef UI_BLOB_H +#define UI_BLOB_H + +extern void cgit_print_blob(const char *hex, char *path); + +#endif /* UI_BLOB_H */ diff --git a/ui-commit.h b/ui-commit.h new file mode 100644 index 0000000..40bcb31 --- /dev/null +++ b/ui-commit.h @@ -0,0 +1,6 @@ +#ifndef UI_COMMIT_H +#define UI_COMMIT_H + +extern void cgit_print_commit(char *hex); + +#endif /* UI_COMMIT_H */ diff --git a/ui-diff.h b/ui-diff.h new file mode 100644 index 0000000..2307322 --- /dev/null +++ b/ui-diff.h @@ -0,0 +1,7 @@ +#ifndef UI_DIFF_H +#define UI_DIFF_H + +extern void cgit_print_diff(const char *new_hex, const char *old_hex, +			    const char *prefix); + +#endif /* UI_DIFF_H */ diff --git a/ui-log.h b/ui-log.h new file mode 100644 index 0000000..877e40e --- /dev/null +++ b/ui-log.h @@ -0,0 +1,7 @@ +#ifndef UI_LOG_H +#define UI_LOG_H + +extern void cgit_print_log(const char *tip, int ofs, int cnt, char *grep, +			   char *pattern, char *path, int pager); + +#endif /* UI_LOG_H */ diff --git a/ui-patch.h b/ui-patch.h new file mode 100644 index 0000000..9f68212 --- /dev/null +++ b/ui-patch.h @@ -0,0 +1,6 @@ +#ifndef UI_PATCH_H +#define UI_PATCH_H + +extern void cgit_print_patch(char *hex); + +#endif /* UI_PATCH_H */ @@ -9,6 +9,178 @@  #include "cgit.h"  #include "html.h" +static int header; + +static int cmp_age(int age1, int age2) +{ +	if (age1 != 0 && age2 != 0) +		return age2 - age1; + +	if (age1 == 0 && age2 == 0) +		return 0; + +	if (age1 == 0) +		return +1; + +	return -1; +} + +static int cmp_ref_name(const void *a, const void *b) +{ +	struct refinfo *r1 = *(struct refinfo **)a; +	struct refinfo *r2 = *(struct refinfo **)b; + +	return strcmp(r1->refname, r2->refname); +} + +static int cmp_branch_age(const void *a, const void *b) +{ +	struct refinfo *r1 = *(struct refinfo **)a; +	struct refinfo *r2 = *(struct refinfo **)b; + +	return cmp_age(r1->commit->committer_date, r2->commit->committer_date); +} + +static int cmp_tag_age(const void *a, const void *b) +{ +	struct refinfo *r1 = *(struct refinfo **)a; +	struct refinfo *r2 = *(struct refinfo **)b; + +	return cmp_age(r1->tag->tagger_date, r2->tag->tagger_date); +} + +static int print_branch(struct refinfo *ref) +{ +	struct commitinfo *info = ref->commit; +	char *name = (char *)ref->refname; + +	if (!info) +		return 1; +	html("<tr><td>"); +	cgit_log_link(name, NULL, NULL, name, NULL, NULL, 0, NULL, NULL); +	html("</td><td>"); + +	if (ref->object->type == OBJ_COMMIT) { +		cgit_print_age(info->commit->date, -1, NULL); +		html("</td><td>"); +		html_txt(info->author); +		html("</td><td>"); +		cgit_commit_link(info->subject, NULL, NULL, name, NULL); +	} else { +		html("</td><td></td><td>"); +		cgit_object_link(ref->object); +	} +	html("</td></tr>\n"); +	return 0; +} + +static void print_tag_header() +{ +	html("<tr class='nohover'><th class='left'>Tag</th>" +	     "<th class='left'>Age</th>" +	     "<th class='left'>Author</th>" +	     "<th class='left'>Reference</th></tr>\n"); +	header = 1; +} + +static int print_tag(struct refinfo *ref) +{ +	struct tag *tag; +	struct taginfo *info; +	char *url, *name = (char *)ref->refname; + +	if (ref->object->type == OBJ_TAG) { +		tag = (struct tag *)ref->object; +		info = ref->tag; +		if (!tag || !info) +			return 1; +		html("<tr><td>"); +		url = cgit_pageurl(ctx.qry.repo, "tag", +				   fmt("id=%s", name)); +		html_link_open(url, NULL, NULL); +		html_txt(name); +		html_link_close(); +		html("</td><td>"); +		if (info->tagger_date > 0) +			cgit_print_age(info->tagger_date, -1, NULL); +		html("</td><td>"); +		if (info->tagger) +			html(info->tagger); +		html("</td><td>"); +		cgit_object_link(tag->tagged); +		html("</td></tr>\n"); +	} else { +		if (!header) +			print_tag_header(); +		html("<tr><td>"); +		html_txt(name); +		html("</td><td colspan='2'/><td>"); +		cgit_object_link(ref->object); +		html("</td></tr>\n"); +	} +	return 0; +} + +static void print_refs_link(char *path) +{ +	html("<tr class='nohover'><td colspan='4'>"); +	cgit_refs_link("[...]", NULL, NULL, ctx.qry.head, NULL, path); +	html("</td></tr>"); +} + +void cgit_print_branches(int maxcount) +{ +	struct reflist list; +	int i; + +	html("<tr class='nohover'><th class='left'>Branch</th>" +	     "<th class='left'>Idle</th>" +	     "<th class='left'>Author</th>" +	     "<th class='left'>Head commit</th></tr>\n"); + +	list.refs = NULL; +	list.alloc = list.count = 0; +	for_each_branch_ref(cgit_refs_cb, &list); + +	if (maxcount == 0 || maxcount > list.count) +		maxcount = list.count; + +	if (maxcount < list.count) { +		qsort(list.refs, list.count, sizeof(*list.refs), cmp_branch_age); +		qsort(list.refs, maxcount, sizeof(*list.refs), cmp_ref_name); +	} + +	for(i=0; i<maxcount; i++) +		print_branch(list.refs[i]); + +	if (maxcount < list.count) +		print_refs_link("heads"); +} + +void cgit_print_tags(int maxcount) +{ +	struct reflist list; +	int i; + +	header = 0; +	list.refs = NULL; +	list.alloc = list.count = 0; +	for_each_tag_ref(cgit_refs_cb, &list); +	if (list.count == 0) +		return; +	qsort(list.refs, list.count, sizeof(*list.refs), cmp_tag_age); +	if (!maxcount) +		maxcount = list.count; +	else if (maxcount > list.count) +		maxcount = list.count; +	print_tag_header(); +	for(i=0; i<maxcount; i++) +		print_tag(list.refs[i]); + +	if (maxcount < list.count) +		print_refs_link("tags"); +} +  void cgit_print_refs()  { diff --git a/ui-refs.h b/ui-refs.h new file mode 100644 index 0000000..b35c04a --- /dev/null +++ b/ui-refs.h @@ -0,0 +1,8 @@ +#ifndef UI_REFS_H +#define UI_REFS_H + +extern void cgit_print_branches(int maxcount); +extern void cgit_print_tags(int maxcount); +extern void cgit_print_refs(); + +#endif /* UI_REFS_H */ diff --git a/ui-repolist.h b/ui-repolist.h new file mode 100644 index 0000000..c23e5d2 --- /dev/null +++ b/ui-repolist.h @@ -0,0 +1,6 @@ +#ifndef UI_REPOLIST_H +#define UI_REPOLIST_H + +extern void cgit_print_repolist(); + +#endif /* UI_REPOLIST_H */ diff --git a/ui-snapshot.h b/ui-snapshot.h new file mode 100644 index 0000000..6e03761 --- /dev/null +++ b/ui-snapshot.h @@ -0,0 +1,8 @@ +#ifndef UI_SNAPSHOT_H +#define UI_SNAPSHOT_H + +extern void cgit_print_snapshot(const char *head, const char *hex, +				const char *prefix, const char *filename, +				int snapshot); + +#endif /* UI_SNAPSHOT_H */ diff --git a/ui-summary.c b/ui-summary.c index 0afa0a3..0b66b52 100644 --- a/ui-summary.c +++ b/ui-summary.c @@ -8,178 +8,8 @@  #include "cgit.h"  #include "html.h" - -static int header; - -static int cmp_age(int age1, int age2) -{ -	if (age1 != 0 && age2 != 0) -		return age2 - age1; - -	if (age1 == 0 && age2 == 0) -		return 0; - -	if (age1 == 0) -		return +1; - -	return -1; -} - -static int cmp_ref_name(const void *a, const void *b) -{ -	struct refinfo *r1 = *(struct refinfo **)a; -	struct refinfo *r2 = *(struct refinfo **)b; - -	return strcmp(r1->refname, r2->refname); -} - -static int cmp_branch_age(const void *a, const void *b) -{ -	struct refinfo *r1 = *(struct refinfo **)a; -	struct refinfo *r2 = *(struct refinfo **)b; - -	return cmp_age(r1->commit->committer_date, r2->commit->committer_date); -} - -static int cmp_tag_age(const void *a, const void *b) -{ -	struct refinfo *r1 = *(struct refinfo **)a; -	struct refinfo *r2 = *(struct refinfo **)b; - -	return cmp_age(r1->tag->tagger_date, r2->tag->tagger_date); -} - -static int print_branch(struct refinfo *ref) -{ -	struct commitinfo *info = ref->commit; -	char *name = (char *)ref->refname; - -	if (!info) -		return 1; -	html("<tr><td>"); -	cgit_log_link(name, NULL, NULL, name, NULL, NULL, 0, NULL, NULL); -	html("</td><td>"); - -	if (ref->object->type == OBJ_COMMIT) { -		cgit_print_age(info->commit->date, -1, NULL); -		html("</td><td>"); -		html_txt(info->author); -		html("</td><td>"); -		cgit_commit_link(info->subject, NULL, NULL, name, NULL); -	} else { -		html("</td><td></td><td>"); -		cgit_object_link(ref->object); -	} -	html("</td></tr>\n"); -	return 0; -} - -static void print_tag_header() -{ -	html("<tr class='nohover'><th class='left'>Tag</th>" -	     "<th class='left'>Age</th>" -	     "<th class='left'>Author</th>" -	     "<th class='left'>Reference</th></tr>\n"); -	header = 1; -} - -static int print_tag(struct refinfo *ref) -{ -	struct tag *tag; -	struct taginfo *info; -	char *url, *name = (char *)ref->refname; - -	if (ref->object->type == OBJ_TAG) { -		tag = (struct tag *)ref->object; -		info = ref->tag; -		if (!tag || !info) -			return 1; -		html("<tr><td>"); -		url = cgit_pageurl(ctx.qry.repo, "tag", -				   fmt("id=%s", name)); -		html_link_open(url, NULL, NULL); -		html_txt(name); -		html_link_close(); -		html("</td><td>"); -		if (info->tagger_date > 0) -			cgit_print_age(info->tagger_date, -1, NULL); -		html("</td><td>"); -		if (info->tagger) -			html(info->tagger); -		html("</td><td>"); -		cgit_object_link(tag->tagged); -		html("</td></tr>\n"); -	} else { -		if (!header) -			print_tag_header(); -		html("<tr><td>"); -		html_txt(name); -		html("</td><td colspan='2'/><td>"); -		cgit_object_link(ref->object); -		html("</td></tr>\n"); -	} -	return 0; -} - -static void print_refs_link(char *path) -{ -	html("<tr class='nohover'><td colspan='4'>"); -	cgit_refs_link("[...]", NULL, NULL, ctx.qry.head, NULL, path); -	html("</td></tr>"); -} - -void cgit_print_branches(int maxcount) -{ -	struct reflist list; -	int i; - -	html("<tr class='nohover'><th class='left'>Branch</th>" -	     "<th class='left'>Idle</th>" -	     "<th class='left'>Author</th>" -	     "<th class='left'>Head commit</th></tr>\n"); - -	list.refs = NULL; -	list.alloc = list.count = 0; -	for_each_branch_ref(cgit_refs_cb, &list); - -	if (maxcount == 0 || maxcount > list.count) -		maxcount = list.count; - -	if (maxcount < list.count) { -		qsort(list.refs, list.count, sizeof(*list.refs), cmp_branch_age); -		qsort(list.refs, maxcount, sizeof(*list.refs), cmp_ref_name); -	} - -	for(i=0; i<maxcount; i++) -		print_branch(list.refs[i]); - -	if (maxcount < list.count) -		print_refs_link("heads"); -} - -void cgit_print_tags(int maxcount) -{ -	struct reflist list; -	int i; - -	header = 0; -	list.refs = NULL; -	list.alloc = list.count = 0; -	for_each_tag_ref(cgit_refs_cb, &list); -	if (list.count == 0) -		return; -	qsort(list.refs, list.count, sizeof(*list.refs), cmp_tag_age); -	if (!maxcount) -		maxcount = list.count; -	else if (maxcount > list.count) -		maxcount = list.count; -	print_tag_header(); -	for(i=0; i<maxcount; i++) -		print_tag(list.refs[i]); - -	if (maxcount < list.count) -		print_refs_link("tags"); -} +#include "ui-log.h" +#include "ui-refs.h"  void cgit_print_summary()  { diff --git a/ui-summary.h b/ui-summary.h new file mode 100644 index 0000000..37aedd2 --- /dev/null +++ b/ui-summary.h @@ -0,0 +1,6 @@ +#ifndef UI_SUMMARY_H +#define UI_SUMMARY_H + +extern void cgit_print_summary(); + +#endif /* UI_SUMMARY_H */ diff --git a/ui-tag.h b/ui-tag.h new file mode 100644 index 0000000..d295cdc --- /dev/null +++ b/ui-tag.h @@ -0,0 +1,6 @@ +#ifndef UI_TAG_H +#define UI_TAG_H + +extern void cgit_print_tag(char *revname); + +#endif /* UI_TAG_H */ diff --git a/ui-tree.h b/ui-tree.h new file mode 100644 index 0000000..bbd34e3 --- /dev/null +++ b/ui-tree.h @@ -0,0 +1,6 @@ +#ifndef UI_TREE_H +#define UI_TREE_H + +extern void cgit_print_tree(const char *rev, char *path); + +#endif /* UI_TREE_H */ | 
