Hi Joel,

completely forgot to reiterate this (my reply to Christian was probably
buried in the thread):

On Wed, 4 Apr 2018, Joel Teichroeb wrote:

> +int cmd_stash__helper(int argc, const char **argv, const char *prefix)
> +{
> +     int result = 0;
> +     pid_t pid = getpid();
> +     const char *index_file;
> +
> +     struct option options[] = {
> +             OPT_END()
> +     };
> +
> +     git_config(git_default_config, NULL);
> +
> +     argc = parse_options(argc, argv, prefix, options, 
> git_stash_helper_usage,
> +             PARSE_OPT_KEEP_UNKNOWN|PARSE_OPT_KEEP_DASHDASH);
> +
> +     index_file = get_index_file();
> +     strbuf_addf(&stash_index_path, "%s.stash.%" PRIuMAX, index_file, 
> (uintmax_t)pid);
> +
> +     if (argc < 1)
> +             usage_with_options(git_stash_helper_usage, options);
> +     else if (!strcmp(argv[0], "apply"))
> +             result = apply_stash(argc, argv, prefix);
> +     else {
> +             error(_("unknown subcommand: %s"), argv[0]);
> +             usage_with_options(git_stash_helper_usage, options);
> +             result = 1;
> +     }
> +
> +     return result;
> +}

The `result` variable can contain negative values, while the exit status
really should be either 0 or 1 (and the return value of
`cmd_stash__helper()` is what `run_builtin()` hands to `exit()` as exit
status). So please use

        return !!result;

here (which returns 0 if result is 0, and 1 otherwise).

Ciao,
Dscho

Reply via email to