Replace the chain of if statements with table of strings. Signed-off-by: Paweł Wawruch <pawlo@xxxxxxx> --- Thanks to Eric Sunshine and Junio C Hamano. Simplified printing logic. The name moved to a table. v4: http://thread.gmane.org/gmane.comp.version-control.git/243914 v3: http://thread.gmane.org/gmane.comp.version-control.git/243865 v2: http://thread.gmane.org/gmane.comp.version-control.git/243849 v1: http://thread.gmane.org/gmane.comp.version-control.git/243502 branch.c | 42 +++++++++++++++++------------------------- 1 file changed, 17 insertions(+), 25 deletions(-) diff --git a/branch.c b/branch.c index 723a36b..c17817c 100644 --- a/branch.c +++ b/branch.c @@ -53,6 +53,20 @@ void install_branch_config(int flag, const char *local, const char *origin, cons int remote_is_branch = starts_with(remote, "refs/heads/"); struct strbuf key = STRBUF_INIT; int rebasing = should_setup_rebase(origin); + const char *message[][2][2] = {{{ + N_("Branch %s set up to track remote branch %s from %s by rebasing."), + N_("Branch %s set up to track remote branch %s from %s."), + },{ + N_("Branch %s set up to track local branch %s by rebasing."), + N_("Branch %s set up to track local branch %s."), + }},{{ + N_("Branch %s set up to track remote ref %s by rebasing."), + N_("Branch %s set up to track remote ref %s."), + },{ + N_("Branch %s set up to track local ref %s by rebasing."), + N_("Branch %s set up to track local ref %s.") + }}}; + const char *name[] = {remote, shortname}; if (remote_is_branch && !strcmp(local, shortname) @@ -76,31 +90,9 @@ void install_branch_config(int flag, const char *local, const char *origin, cons } strbuf_release(&key); - if (flag & BRANCH_CONFIG_VERBOSE) { - if (remote_is_branch && origin) - printf_ln(rebasing ? - _("Branch %s set up to track remote branch %s from %s by rebasing.") : - _("Branch %s set up to track remote branch %s from %s."), - local, shortname, origin); - else if (remote_is_branch && !origin) - printf_ln(rebasing ? - _("Branch %s set up to track local branch %s by rebasing.") : - _("Branch %s set up to track local branch %s."), - local, shortname); - else if (!remote_is_branch && origin) - printf_ln(rebasing ? - _("Branch %s set up to track remote ref %s by rebasing.") : - _("Branch %s set up to track remote ref %s."), - local, remote); - else if (!remote_is_branch && !origin) - printf_ln(rebasing ? - _("Branch %s set up to track local ref %s by rebasing.") : - _("Branch %s set up to track local ref %s."), - local, remote); - else - die("BUG: impossible combination of %d and %p", - remote_is_branch, origin); - } + if (flag & BRANCH_CONFIG_VERBOSE) + printf_ln(_(message[!remote_is_branch][!origin][!rebasing]), + local, name[!remote_is_branch], origin); } /* -- 1.8.3.2 -- 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