X-Git-Url: https://git.distorted.org.uk/~mdw/tig/blobdiff_plain/976447f81b0594d9e6ff43772dab533b208a8bad..9a66631561319b86f54f20346d953070238cc346:/tig.c diff --git a/tig.c b/tig.c index cba8c82..055ad11 100644 --- a/tig.c +++ b/tig.c @@ -1,8 +1,9 @@ /* Copyright (c) 2006 Jonas Fonseca * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 as - * published by the Free Software Foundation. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of + * the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -292,14 +293,14 @@ parse_options(int argc, char *argv[]) } /** - * -t[NSPACES], --tab-size[=NSPACES]:: + * -b[NSPACES], --tab-size[=NSPACES]:: * Set the number of spaces tabs should be expanded to. **/ - if (!strncmp(opt, "-t", 2) || + if (!strncmp(opt, "-b", 2) || !strncmp(opt, "--tab-size", 10)) { char *num = opt; - if (opt[1] == 't') { + if (opt[1] == 'b') { num = opt + 2; } else if (opt[STRING_SIZE("--tab-size")] == '=') { @@ -473,9 +474,9 @@ parse_options(int argc, char *argv[]) "git ls-remote . 2>/dev/null" /** - * [[view-commands]] - * View commands - * ~~~~~~~~~~~~~ + * [[history-commands]] + * History commands + * ~~~~~~~~~~~~~~~~ * It is possible to alter which commands are used for the different views. * If for example you prefer commits in the main view to be sorted by date * and only show 500 commits, use: @@ -819,6 +820,10 @@ redraw_view(struct view *view) * [main] c622eefaa485995320bc743431bae0d497b1d875 - commit 1 of 61 (1%) * * By default, the title of the current view is highlighted using bold font. + * For long loading views (taking over 3 seconds) the time since loading + * started will be appended: + * + * [main] 77d9e40fbcea3238015aea403e06f61542df9a31 - commit 1 of 779 (0%) 5s **/ static void @@ -1471,9 +1476,10 @@ view_driver(struct view *view, enum request request) break; case REQ_STOP_LOADING: - foreach_view (view, i) { + for (i = 0; i < ARRAY_SIZE(views); i++) { + view = &views[i]; if (view->pipe) - report("Stopped loaded the %s view", view->name), + report("Stopped loading the %s view", view->name), end_update(view); } break; @@ -1494,11 +1500,15 @@ view_driver(struct view *view, enum request request) return TRUE; case REQ_VIEW_CLOSE: - if (view->parent) { + /* XXX: Mark closed views by letting view->parent point to the + * view itself. Parents to closed view should never be + * followed. */ + if (view->parent && + view->parent->parent != view->parent) { memset(display, 0, sizeof(display)); current_view = 0; display[current_view] = view->parent; - view->parent = NULL; + view->parent = view; resize_display(); redraw_display(); break; @@ -2420,8 +2430,10 @@ read_properties(const char *cmd, int separator, namelen = value - name; *value++ = 0; valuelen = strlen(value); - if (valuelen > 0) - value[valuelen - 1] = 0; + if (valuelen > 0) { + valuelen--; + value[valuelen] = 0; + } } else { namelen = strlen(name); @@ -2533,7 +2545,9 @@ main(int argc, char *argv[]) memcpy(opt_cmd, "git ", 4); opt_request = REQ_VIEW_PAGER; } else { - request = ERR; + report("Prompt interrupted by loading view, " + "press 'z' to stop loading views"); + request = REQ_SCREEN_UPDATE; } noecho(); @@ -2575,7 +2589,8 @@ main(int argc, char *argv[]) * * You can tune the interaction with git by making use of the options * explained in this section. For example, by configuring the environment - * variables described in the <> section. + * variables described in the <> + * section. * * Limit by path name * ~~~~~~~~~~~~~~~~~~ @@ -2671,6 +2686,8 @@ main(int argc, char *argv[]) * - The cursor can wrap-around on the last line and cause the * window to scroll. * + * - The prompt doesn't work while loading. + * * TODO * ---- * Features that should be explored. @@ -2694,7 +2711,7 @@ main(int argc, char *argv[]) * - link:http://www.kernel.org/pub/software/scm/cogito/docs/[cogito(7)] * * Other git repository browsers: -* + * * - gitk(1) * - qgit(1) * - gitview(1)