From: Felipe Contreras Date: Sun, 15 Feb 2009 12:39:47 GMT Subject: Re: [PATCH 7/8] config: Don't return negative exit codes. Message-ID: <94a0d4530902150439peac228ckec79f8c692b84e4e@mail.gmail.com> In-Reply-To: On Sun, Feb 15, 2009 at 2:22 PM, Johannes Schindelin wrote: > Hi, > > On Sun, 15 Feb 2009, Felipe Contreras wrote: > > >> else if (actions & ACTION_RENAME_SECTION) { >> - int ret; >> check_argc(argc, 2, 2); >> ret = git_config_rename_section(argv[0], argv[1]); >> - if (ret < 0) >> - return ret; >> if (ret == 0) >> die("No such section!"); >> } > > You need an "if (ret > 0) ret = 0;" to avoid regressions. > >> else if (actions & ACTION_REMOVE_SECTION) { >> - int ret; >> check_argc(argc, 1, 1); >> ret = git_config_rename_section(argv[0], NULL); >> - if (ret < 0) >> - return ret; >> if (ret == 0) >> die("No such section!"); >> } > > Likewise. True. Fixed in the attached patch. -- Felipe Contreras From b682131b61d01cac2946e7c7ab6666fef86441a4 Mon Sep 17 00:00:00 2001 From: Felipe Contreras Date: Sun, 15 Feb 2009 10:54:53 +0200 Subject: [PATCH 7/8] config: Don't return negative exit codes. As suggested by Johannes Schindelin. Signed-off-by: Felipe Contreras --- builtin-config.c | 31 +++++++++++++++---------------- 1 files changed, 15 insertions(+), 16 deletions(-) diff --git a/builtin-config.c b/builtin-config.c index 5891a4e..0606ada 100644 --- a/builtin-config.c +++ b/builtin-config.c @@ -307,6 +307,7 @@ int cmd_config(int argc, const char **argv, const char *unused_prefix) { int nongit; char* value; + int ret = 0; const char *prefix = setup_git_directory_gently(&nongit); config_exclusive_filename = getenv(CONFIG_ENVIRONMENT); @@ -380,57 +381,55 @@ int cmd_config(int argc, const char **argv, const char *unused_prefix) else if (actions & ACTION_ADD) { check_argc(argc, 2, 2); value = normalize_value(argv[0], argv[1]); - return git_config_set_multivar(argv[0], value, "^$", 0); + ret = git_config_set_multivar(argv[0], value, "^$", 0); } else if (actions & ACTION_REPLACE_ALL) { check_argc(argc, 2, 3); value = normalize_value(argv[0], argv[1]); - return git_config_set_multivar(argv[0], value, argv[2], 1); + ret = git_config_set_multivar(argv[0], value, argv[2], 1); } else if (actions & ACTION_GET) { check_argc(argc, 1, 2); - return get_value(argv[0], argv[1]); + ret = get_value(argv[0], argv[1]); } else if (actions & ACTION_GET_ALL) { do_all = 1; check_argc(argc, 1, 2); - return get_value(argv[0], argv[1]); + ret = get_value(argv[0], argv[1]); } else if (actions & ACTION_GET_REGEXP) { show_keys = 1; use_key_regexp = 1; do_all = 1; check_argc(argc, 1, 2); - return get_value(argv[0], argv[1]); + ret = get_value(argv[0], argv[1]); } else if (actions & ACTION_UNSET) { check_argc(argc, 1, 2); if (argc == 2) - return git_config_set_multivar(argv[0], NULL, argv[1], 0); + ret = git_config_set_multivar(argv[0], NULL, argv[1], 0); else - return git_config_set(argv[0], NULL); + ret = git_config_set(argv[0], NULL); } else if (actions & ACTION_UNSET_ALL) { check_argc(argc, 1, 2); - return git_config_set_multivar(argv[0], NULL, argv[1], 1); + ret = git_config_set_multivar(argv[0], NULL, argv[1], 1); } else if (actions & ACTION_RENAME_SECTION) { - int ret; check_argc(argc, 2, 2); ret = git_config_rename_section(argv[0], argv[1]); - if (ret < 0) - return ret; if (ret == 0) die("No such section!"); + if (ret > 0) + ret = 0; } else if (actions & ACTION_REMOVE_SECTION) { - int ret; check_argc(argc, 1, 1); ret = git_config_rename_section(argv[0], NULL); - if (ret < 0) - return ret; if (ret == 0) die("No such section!"); + if (ret > 0) + ret = 0; } else if (get_color_slot) { get_color(argv[0]); @@ -440,8 +439,8 @@ int cmd_config(int argc, const char **argv, const char *unused_prefix) stdout_is_tty = git_config_bool("command line", argv[0]); else if (argc == 0) stdout_is_tty = isatty(1); - return get_colorbool(argc != 1); + ret = get_colorbool(argc != 1); } - return 0; + return !!ret; } -- 1.6.1.3