[PATCH v5] install_branch_config: simplify verbose messages logic

2014-03-12 Thread Paweł Wawruch
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.

2014-03-11 Thread Paweł Wawruch
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

2014-03-11 Thread Paweł Wawruch
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

2014-03-11 Thread Paweł Wawruch
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.

2014-03-06 Thread Paweł Wawruch
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