On Wed, Mar 12, 2014 at 7:47 PM, Paweł Wawruch <pawlo@xxxxxxx> wrote: > 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 Thanks. Using the vN notation makes these links self-explanatory. > 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."), Some compilers may complain about the trailing comma. Ditto for the ones below. > + },{ > + 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}; See [1] and the messages following it for commentary about this change. > 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); Much simpler than the previous versions (sans [1] commentary) [1]: http://thread.gmane.org/gmane.comp.version-control.git/243914/focus=244043 > } > > /* > -- > 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