[PATCH v5] install_branch_config: simplify verbose messages logic
Replace the chain of if statements with table of strings. Signed-off-by: Paweł Wawruch pa...@aleg.pl --- 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 majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATHv2] branch.c:install_branch_config():Simplify code generating verbose message.
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 pa...@aleg.pl --- 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 -- To unsubscribe from this list: send the line unsubscribe git in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH v3] install_branch_config: simplify verbose diagnostic logic
Replace the chain of if statements with table of strings. Signed-off-by: Paweł Wawruch pa...@aleg.pl --- I changed the commit message. Logic of table has changed. To make it more clear I added three dimensions of the table. [1]: http://thread.gmane.org/gmane.comp.version-control.git/243502 [2]: http://thread.gmane.org/gmane.comp.version-control.git/243849 branch.c | 42 -- 1 file changed, 20 insertions(+), 22 deletions(-) diff --git a/branch.c b/branch.c index 723a36b..741551a 100644 --- a/branch.c +++ b/branch.c @@ -53,6 +53,21 @@ 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_is_branch ? remote : shortname; + int message_number; if (remote_is_branch !strcmp(local, shortname) @@ -77,29 +92,12 @@ 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); + if (origin remote_is_branch) + printf_ln(_(messages[!remote_is_branch][!origin][!rebasing]), + local, name, origin); else - die(BUG: impossible combination of %d and %p, - remote_is_branch, origin); + printf_ln(_(messages[!remote_is_branch][!origin][!rebasing]), + local, name); } } -- 1.8.3.2 -- To unsubscribe from this list: send the line unsubscribe git in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH v4] install_branch_config: simplify verbose messages logic
Replace the chain of if statements with table of strings. Signed-off-by: Paweł Wawruch pa...@aleg.pl --- The changes proposed by Junio C Hamano: Improvement of indentations. Removed an unused variable. [1]: http://thread.gmane.org/gmane.comp.version-control.git/243502 [2]: http://thread.gmane.org/gmane.comp.version-control.git/243849 [3]: http://thread.gmane.org/gmane.comp.version-control.git/243865 branch.c | 41 +++-- 1 file changed, 19 insertions(+), 22 deletions(-) diff --git a/branch.c b/branch.c index 723a36b..2a4b911 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_is_branch ? remote : shortname; if (remote_is_branch !strcmp(local, shortname) @@ -77,29 +91,12 @@ 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); + if (origin remote_is_branch) + printf_ln(_(message[!remote_is_branch][!origin][!rebasing]), + local, name, origin); else - die(BUG: impossible combination of %d and %p, - remote_is_branch, origin); + printf_ln(_(message[!remote_is_branch][!origin][!rebasing]), + local, name); } } -- 1.8.3.2 -- To unsubscribe from this list: send the line unsubscribe git in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATH] branch.c:install_branch_config():Simplify code generating verbose message.
From adfcfa0a334378a6242347efc0d614fa193610db Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pawe=C5=82=20Wawruch?= pa...@aleg.pl Date: Thu, 6 Mar 2014 00:05:00 +0100 Subject: [PATCH] branch.c:install_branch_config(): Simplify the long chain of if statements. Threre was a long chain of if statements. The code can be more clear. The chain is replaced with table of strings. New approach is more compact. --- branch.c | 38 -- 1 file changed, 16 insertions(+), 22 deletions(-) diff --git a/branch.c b/branch.c index 723a36b..ebc2172 100644 --- a/branch.c +++ b/branch.c @@ -77,29 +77,23 @@ 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); + const char *messages[8] ; + messages[0] = _(Branch %s set up to track remote branch %s from %s by rebasing.); + messages[1] = _(Branch %s set up to track remote branch %s from %s.); + messages[2] = _(Branch %s set up to track local branch %s by rebasing.); + messages[3] = _(Branch %s set up to track local branch %s.); + messages[4] = _(Branch %s set up to track remote ref %s by rebasing.); + messages[5] = _(Branch %s set up to track remote ref %s.); + messages[6] = _(Branch %s set up to track local ref %s by rebasing.); + messages[7] = _(Branch %s set up to track local ref %s.); + + const char *name = remote_is_branch ? remote : shortname; + int message_number = rebasing + 2 * (origin != NULL) + 4 * remote_is_branch; + + 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 -- To unsubscribe from this list: send the line unsubscribe git in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html