author | Ondrej Jirman <ondrej.jirman@zonio.net> | 2007-05-26 01:26:14 (UTC) |
---|---|---|
committer | Lars Hjemli <hjemli@gmail.com> | 2007-05-31 08:24:37 (UTC) |
commit | a922615dae5d1f7b932dd1fc5a5f121748d96c5a (patch) (side-by-side diff) | |
tree | 05fec55980234a64658f6612499212f923206d29 | |
parent | 3ce6fc16ef4670c535c6e35d48c7f980ff8a5532 (diff) | |
download | cgit-a922615dae5d1f7b932dd1fc5a5f121748d96c5a.zip cgit-a922615dae5d1f7b932dd1fc5a5f121748d96c5a.tar.gz cgit-a922615dae5d1f7b932dd1fc5a5f121748d96c5a.tar.bz2 |
Add option to disable pager to cgit_print_log().
This is needed for upcomming shortlog on summary page
patch.
Signed-off-by: Lars Hjemli <hjemli@gmail.com>
-rw-r--r-- | cgit.c | 2 | ||||
-rw-r--r-- | cgit.h | 2 | ||||
-rw-r--r-- | ui-log.c | 32 |
3 files changed, 19 insertions, 17 deletions
@@ -65,65 +65,65 @@ static void cgit_print_repo_page(struct cacheitem *item) } title = fmt("%s - %s", cgit_repo->name, cgit_repo->desc); show_search = 0; setenv("GIT_DIR", cgit_repo->path, 1); if ((cgit_cmd == CMD_SNAPSHOT) && cgit_repo->snapshots) { cgit_print_snapshot(item, cgit_query_sha1, "zip", cgit_repo->url, cgit_query_name); return; } if (cgit_cmd == CMD_BLOB) { cgit_print_blob(item, cgit_query_sha1, cgit_query_path); return; } show_search = (cgit_cmd == CMD_LOG); cgit_print_docstart(title, item); if (!cgit_cmd) { cgit_print_pageheader("summary", show_search); cgit_print_summary(); cgit_print_docend(); return; } cgit_print_pageheader(cgit_query_page, show_search); switch(cgit_cmd) { case CMD_LOG: cgit_print_log(cgit_query_head, cgit_query_ofs, cgit_max_commit_count, cgit_query_search, - cgit_query_path); + cgit_query_path, 1); break; case CMD_TREE: cgit_print_tree(cgit_query_head, cgit_query_sha1, cgit_query_path); break; case CMD_COMMIT: cgit_print_commit(cgit_query_head); break; case CMD_VIEW: cgit_print_view(cgit_query_sha1, cgit_query_path); break; case CMD_DIFF: cgit_print_diff(cgit_query_head, cgit_query_sha1, cgit_query_sha2, cgit_query_path); break; default: cgit_print_error("Invalid request"); } cgit_print_docend(); } static void cgit_fill_cache(struct cacheitem *item, int use_cache) { static char buf[PATH_MAX]; int stdout2; getcwd(buf, sizeof(buf)); item->st.st_mtime = time(NULL); if (use_cache) { stdout2 = chk_positive(dup(STDOUT_FILENO), "Preserving STDOUT"); chk_zero(close(STDOUT_FILENO), "Closing STDOUT"); @@ -184,44 +184,44 @@ 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); extern struct taginfo *cgit_parse_tag(struct tag *tag); extern void cgit_parse_url(const char *url); extern char *cache_safe_filename(const char *unsafe); extern int cache_lock(struct cacheitem *item); extern int cache_unlock(struct cacheitem *item); extern int cache_cancel_lock(struct cacheitem *item); extern int cache_exist(struct cacheitem *item); extern int cache_expired(struct cacheitem *item); extern char *cgit_repourl(const char *reponame); extern char *cgit_pageurl(const char *reponame, const char *pagename, const char *query); extern void cgit_print_error(char *msg); extern void cgit_print_date(time_t secs, char *format); extern void cgit_print_age(time_t t, time_t max_relative, char *format); extern void cgit_print_docstart(char *title, struct cacheitem *item); extern void cgit_print_docend(); 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_repolist(struct cacheitem *item); extern void cgit_print_summary(); -extern void cgit_print_log(const char *tip, int ofs, int cnt, char *grep, char *path); +extern void cgit_print_log(const char *tip, int ofs, int cnt, char *grep, char *path, int pager); extern void cgit_print_view(const char *hex, char *path); extern void cgit_print_blob(struct cacheitem *item, const char *hex, char *path); extern void cgit_print_tree(const char *rev, const char *hex, char *path); extern void cgit_print_commit(const char *hex); extern void cgit_print_diff(const char *head, const char *old_hex, const char *new_hex, char *path); extern void cgit_print_snapshot(struct cacheitem *item, const char *hex, const char *format, const char *prefix, const char *filename); #endif /* CGIT_H */ @@ -25,104 +25,106 @@ void inspect_files(struct diff_filepair *pair) void print_commit(struct commit *commit) { struct commitinfo *info; info = cgit_parse_commit(commit); html("<tr><td>"); cgit_print_age(commit->date, TM_WEEK * 2, FMT_SHORTDATE); html("</td><td>"); char *qry = fmt("h=%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(); if (cgit_repo->enable_log_filecount) { files = 0; lines = 0; cgit_diff_commit(commit, inspect_files); html("</td><td class='right'>"); htmlf("%d", files); if (cgit_repo->enable_log_linecount) { html("</td><td class='right'>"); htmlf("%d", lines); } } html("</td><td>"); html_txt(info->author); html("</td></tr>\n"); cgit_free_commitinfo(info); } -void cgit_print_log(const char *tip, int ofs, int cnt, char *grep, char *path) +void cgit_print_log(const char *tip, int ofs, int cnt, char *grep, char *path, int pager) { struct rev_info rev; struct commit *commit; const char *argv[] = {NULL, tip, NULL, NULL, NULL}; int argc = 2; int i; if (grep) argv[argc++] = fmt("--grep=%s", grep); if (path) { argv[argc++] = "--"; argv[argc++] = path; } 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("<table class='list nowrap'>"); html("<tr class='nohover'><th class='left'>Age</th>" "<th class='left'>Message</th>"); if (cgit_repo->enable_log_filecount) { html("<th class='left'>Files</th>"); if (cgit_repo->enable_log_linecount) html("<th class='left'>Lines</th>"); } html("<th class='left'>Author</th></tr>\n"); if (ofs<0) ofs = 0; for (i = 0; i < ofs && (commit = get_revision(&rev)) != NULL; i++) { free(commit->buffer); commit->buffer = NULL; free_commit_list(commit->parents); commit->parents = NULL; } for (i = 0; i < cnt && (commit = get_revision(&rev)) != NULL; i++) { print_commit(commit); free(commit->buffer); commit->buffer = NULL; free_commit_list(commit->parents); commit->parents = NULL; } html("</table>\n"); - html("<div class='pager'>"); - if (ofs > 0) { - html(" <a href='"); - html(cgit_pageurl(cgit_query_repo, cgit_query_page, - fmt("h=%s&ofs=%d", tip, ofs-cnt))); - html("'>[prev]</a> "); - } - - if ((commit = get_revision(&rev)) != NULL) { - html(" <a href='"); - html(cgit_pageurl(cgit_query_repo, "log", - fmt("h=%s&ofs=%d", tip, ofs+cnt))); - html("'>[next]</a> "); + if (pager) { + html("<div class='pager'>"); + if (ofs > 0) { + html(" <a href='"); + html(cgit_pageurl(cgit_query_repo, cgit_query_page, + fmt("h=%s&ofs=%d", tip, ofs-cnt))); + html("'>[prev]</a> "); + } + + if ((commit = get_revision(&rev)) != NULL) { + html(" <a href='"); + html(cgit_pageurl(cgit_query_repo, "log", + fmt("h=%s&ofs=%d", tip, ofs+cnt))); + html("'>[next]</a> "); + } + html("</div>"); } - html("</div>"); } |