On Sun, Feb 15, 2009 at 02:39:47PM +0200, Felipe Contreras wrote: > On Sun, Feb 15, 2009 at 2:22 PM, Johannes Schindelin > <Johannes.Schindelin@xxxxxx> 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. I'm inlining the patch as Johannes requested: --- 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 -- Felipe Contreras -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html