/* Copyright (c) 2006 Jonas Fonseca <fonseca@diku.dk>
*
- * 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
}
/**
- * -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")] == '=') {
"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:
case REQ_STOP_LOADING:
foreach_view (view, i) {
if (view->pipe)
- report("Stopped loaded the %s view", view->name),
+ report("Stopped loading the %s view", view->name),
end_update(view);
}
break;
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;
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);
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();
*
* 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 <<view-commands, "View commands">> section.
+ * variables described in the <<history-commands, "History commands">>
+ * section.
*
* Limit by path name
* ~~~~~~~~~~~~~~~~~~
* - 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.
* - link:http://www.kernel.org/pub/software/scm/cogito/docs/[cogito(7)]
*
* Other git repository browsers:
-*
+ *
* - gitk(1)
* - qgit(1)
* - gitview(1)