/* ui-log.c: functions for log output
 *
 * Copyright (C) 2006 Lars Hjemli
 *
 * Licensed under GNU General Public License v2
 *   (see COPYING for full license text)
 */
#include "cgit.h"
int files, lines;
void inspect_files(struct diff_filepair *pair)
{
	files++;
}
void print_commit(struct commit *commit)
{
	char buf[32];
	struct commitinfo *info;
	struct tm *time;
	info = cgit_parse_commit(commit);
	time = gmtime(&commit->date);
	html("
| ");
	strftime(buf, sizeof(buf), "%Y-%m-%d %H:%M", time);
	html_txt(buf);
	html(" | ");
	char *qry = fmt("id=%s", sha1_to_hex(commit->object.sha1));
	char *url = cgit_pageurl(cgit_query_repo, "commit", qry);
	html_link_open(url, NULL, NULL);
	html_ntxt(cgit_max_msg_len, info->subject);
	html_link_close();
	html(" | ");
	files = 0;
	lines = 0;
	cgit_diff_commit(commit, inspect_files);
	htmlf("%d", files);
	html(" | ");
	html_txt(info->author);
	html(" | 
\n");
	cgit_free_commitinfo(info);
}
void cgit_print_log(const char *tip, int ofs, int cnt, char *grep)
{
	struct rev_info rev;
	struct commit *commit;
	const char *argv[3] = {NULL, tip, NULL};
	int argc = 2;
	int i;
	if (grep)
		argv[argc++] = fmt("--grep=%s", grep);
	init_revisions(&rev, NULL);
	rev.abbrev = DEFAULT_ABBREV;
	rev.commit_format = CMIT_FMT_DEFAULT;
	rev.verbose_header = 1;
	rev.show_root_diff = 0;
	setup_revisions(argc, argv, &rev, NULL);
	if (rev.grep_filter) {
		rev.grep_filter->regflags |= REG_ICASE;
		compile_grep_patterns(rev.grep_filter);
	}
	prepare_revision_walk(&rev);
	html("