#include "builtin.h"
-#include "exec_cmd.h"
#include "cache.h"
+#include "exec_cmd.h"
+#include "help.h"
#include "quote.h"
#include "run-command.h"
const char git_usage_string[] =
- "git [--version] [--exec-path[=GIT_EXEC_PATH]] [--html-path]\n"
+ "git [--version] [--exec-path[=<path>]] [--html-path]\n"
" [-p|--paginate|--no-pager] [--no-replace-objects]\n"
- " [--bare] [--git-dir=GIT_DIR] [--work-tree=GIT_WORK_TREE]\n"
+ " [--bare] [--git-dir=<path>] [--work-tree=<path>]\n"
" [-c name=value] [--help]\n"
- " COMMAND [ARGS]";
+ " <command> [<args>]";
const char git_more_info_string[] =
- "See 'git help COMMAND' for more information on a specific command.";
+ "See 'git help <command>' for more information on a specific command.";
static struct startup_info git_startup_info;
static int use_pager = -1;
struct pager_config {
const char *cmd;
- int val;
+ int want;
+ char *value;
};
static int pager_command_config(const char *var, const char *value, void *data)
{
struct pager_config *c = data;
- if (!prefixcmp(var, "pager.") && !strcmp(var + 6, c->cmd))
- c->val = git_config_bool(var, value);
+ if (!prefixcmp(var, "pager.") && !strcmp(var + 6, c->cmd)) {
+ int b = git_config_maybe_bool(var, value);
+ if (b >= 0)
+ c->want = b;
+ else {
+ c->want = 1;
+ c->value = xstrdup(value);
+ }
+ }
return 0;
}
{
struct pager_config c;
c.cmd = cmd;
- c.val = -1;
+ c.want = -1;
+ c.value = NULL;
git_config(pager_command_config, &c);
- return c.val;
+ if (c.value)
+ pager_program = c.value;
+ return c.want;
}
static void commit_pager_choice(void) {
{
int handled = 0;
- if (!getenv("GIT_ASKPASS") && getenv("SSH_ASKPASS"))
- setenv("GIT_ASKPASS", getenv("SSH_ASKPASS"), 1);
-
while (*argc > 0) {
const char *cmd = (*argv)[0];
if (cmd[0] != '-')
fprintf(stderr, "-c expects a configuration string\n" );
usage(git_usage_string);
}
- git_config_parse_parameter((*argv)[1]);
+ git_config_push_parameter((*argv)[1]);
(*argv)++;
(*argc)--;
} else {