static bool log_open(struct view *view, enum open_flags flags) { const char *log_argv[] = { "git", "log", encoding_arg, commit_order_arg(), "--cc", "--stat", "%(logargs)", "%(cmdlineargs)", "%(revargs)", "--no-color", "--", "%(fileargs)", NULL }; return begin_update(view, NULL, log_argv, flags); }
static enum request refs_request(struct view *view, enum request request, struct line *line) { struct reference *reference = line->data; switch (request) { case REQ_REFRESH: load_refs(TRUE); refresh_view(view); return REQ_NONE; case REQ_ENTER: { const struct ref *ref = reference->ref; const char *all_references_argv[] = { GIT_MAIN_LOG_CUSTOM(encoding_arg, commit_order_arg(), "", refs_is_all(reference) ? "--all" : ref->name, "") }; open_argv(view, &main_view, all_references_argv, NULL, OPEN_SPLIT); return REQ_NONE; } case REQ_JUMP_COMMIT: { int lineno; for (lineno = 0; lineno < view->lines; lineno++) { struct reference *reference = view->line[lineno].data; if (!strncasecmp(reference->ref->id, view->env->search, strlen(view->env->search))) { select_view_line(view, lineno); report_clear(); return REQ_NONE; } } } default: return request; } }