static void die(const char *err, ...);
static void report(const char *msg, ...);
-static int read_properties(const char *cmd, int separator, int (*read)(char *, int, char *, int));
+static int read_properties(FILE *pipe, int separator, int (*read)(char *, int, char *, int));
static void set_nonblocking_input(bool loading);
static size_t utf8_length(const char *string, size_t max_width, int *coloffset, int *trimmed);
* [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
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 loading the %s view", view->name),
end_update(view);
const char *cmd_env = getenv("TIG_LS_REMOTE");
const char *cmd = cmd_env && *cmd_env ? cmd_env : TIG_LS_REMOTE;
- return read_properties(cmd, '\t', read_ref);
+ return read_properties(popen(cmd, "r"), '\t', read_ref);
}
static int
-read_config_option(char *name, int namelen, char *value, int valuelen)
+read_repo_config_option(char *name, int namelen, char *value, int valuelen)
{
if (!strcmp(name, "i18n.commitencoding")) {
string_copy(opt_encoding, value);
}
static int
-load_config(void)
+load_repo_config(void)
{
- return read_properties("git repo-config --list", '=',
- read_config_option);
+ return read_properties(popen("git repo-config --list", "r"),
+ "=", read_repo_config_option);
}
static int
-read_properties(const char *cmd, int separator,
+read_properties(FILE *pipe, int separator,
int (*read_property)(char *, int, char *, int))
{
- FILE *pipe = popen(cmd, "r");
char buffer[BUFSIZ];
char *name;
int state = OK;
/* Load the repo config file first so options can be overwritten from
* the command line. */
- if (load_config() == ERR)
+ if (load_repo_config() == ERR)
die("Failed to load repo config.");
if (!parse_options(argc, argv))