[PATHv2] branch.c:install_branch_config():Simplify code generating verbose message.
From: Paweł Wawruch <hidden>
Date: 2016-06-15 23:00:16
Simplify the long if chain in install_branch_config(). There is a long chain of if statements. The code can be more clear. Replace the chain with table of strings. New approach is more compact. Signed-off-by: Paweł Wawruch <redacted> --- branch.c | 40 ++++++++++++++++++---------------------- 1 file changed, 18 insertions(+), 22 deletions(-)
diff --git a/branch.c b/branch.c
index 723a36b..8d3b219 100644
--- a/branch.c
+++ b/branch.c@@ -53,6 +53,18 @@ 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 *messages[] = { + 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_is_branch ? remote : shortname; + int message_number; if (remote_is_branch && !strcmp(local, shortname)
@@ -77,29 +89,13 @@ 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); + message_number = (!!rebasing) + 2 * (!!origin) + 4 * (!!remote_is_branch); + assert(message_number < ARRAY_SIZE(messages)); + + if (message_number < 2) + printf_ln(messages[message_number], local, name, origin); else - die("BUG: impossible combination of %d and %p", - remote_is_branch, origin); + printf_ln(messages[message_number], local, name); } }
--
1.8.3.2