git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] Removed unnecessary use of global variables.
@ 2009-03-11  1:05 Erik Faye-Lund
  2009-03-11  1:52 ` Junio C Hamano
  0 siblings, 1 reply; 6+ messages in thread
From: Erik Faye-Lund @ 2009-03-11  1:05 UTC (permalink / raw)
  To: git; +Cc: Johannes.Schindelin, Erik Faye-Lund

git_config() now takes a third data-parameter that is passed back
to the callback-function. At the time this code was written, that
parameter did not exist, so a somewhat nasty (but by all means
correct) use of global variables was introduced. In commit
ef90d6d4208a5130185b04f06e5f90a5f9959fe3 Johannes Schindelin
<Johannes.Schindelin@gmx.de> introduced a parameter for similar
purposes.

I've changed the code to utilize this parameter to pass the
string. In addition, I've made the function calculate the string
length on usage instead, to reduce the parameters needed to what
the callback-interface supplies.

Signed-off-by: Erik Faye-Lund <kusmabite@gmail.com>
---
 connect.c |   16 ++++++----------
 1 files changed, 6 insertions(+), 10 deletions(-)

diff --git a/connect.c b/connect.c
index 2f23ab3..98fbaea 100644
--- a/connect.c
+++ b/connect.c
@@ -371,14 +371,13 @@ static void git_tcp_connect(int fd[2], char *host, int flags)
 	fd[1] = dup(sockfd);
 }
 
-
 static char *git_proxy_command;
-static const char *rhost_name;
-static int rhost_len;
-
 static int git_proxy_command_options(const char *var, const char *value,
-		void *cb)
+		void *data)
 {
+	const char *rhost_name = data;
+	const size_t rhost_len = strlen(rhost_name);
+
 	if (!strcmp(var, "core.gitproxy")) {
 		const char *for_pos;
 		int matchlen = -1;
@@ -421,16 +420,13 @@ static int git_proxy_command_options(const char *var, const char *value,
 		return 0;
 	}
 
-	return git_default_config(var, value, cb);
+	return git_default_config(var, value, data);
 }
 
 static int git_use_proxy(const char *host)
 {
-	rhost_name = host;
-	rhost_len = strlen(host);
 	git_proxy_command = getenv("GIT_PROXY_COMMAND");
-	git_config(git_proxy_command_options, NULL);
-	rhost_name = NULL;
+	git_config(git_proxy_command_options, (void*)host);
 	return (git_proxy_command && *git_proxy_command);
 }
 
-- 
1.6.2.GIT

^ permalink raw reply related	[flat|nested] 6+ messages in thread
* [PATCH] Removed unnecessary use of global variables.
@ 2009-03-11  0:09 Erik Faye-Lund
  2009-03-11 10:30 ` Johannes Schindelin
  0 siblings, 1 reply; 6+ messages in thread
From: Erik Faye-Lund @ 2009-03-11  0:09 UTC (permalink / raw)
  To: git; +Cc: Johannes.Schindelin, Erik Faye-Lund

git_config() now takes a third data-parameter that is passed back
to the callback-function. At the time this code was written, that
parameter did not exist, so a somewhat nasty (but by all means
correct) use of global variables was introduced. In commit
ef90d6d4208a5130185b04f06e5f90a5f9959fe3 Johannes Schindelin
<Johannes.Schindelin@gmx.de> introduced a parameter for similar
purposes.

I've changed the code to utilize this parameter to pass the
string. In addition, I've made the function calculate the string
length on usage instead, to reduce the parameters needed to what
the callback-interface supplies.

Signed-off-by: Erik Faye-Lund <kusmabite@gmail.com>
---
 connect.c |   16 ++++++----------
 1 files changed, 6 insertions(+), 10 deletions(-)

diff --git a/connect.c b/connect.c
index 2f23ab3..98fbaea 100644
--- a/connect.c
+++ b/connect.c
@@ -371,14 +371,13 @@ static void git_tcp_connect(int fd[2], char *host, int flags)
 	fd[1] = dup(sockfd);
 }
 
-
 static char *git_proxy_command;
-static const char *rhost_name;
-static int rhost_len;
-
 static int git_proxy_command_options(const char *var, const char *value,
-		void *cb)
+		void *data)
 {
+	const char *rhost_name = data;
+	const size_t rhost_len = strlen(rhost_name);
+
 	if (!strcmp(var, "core.gitproxy")) {
 		const char *for_pos;
 		int matchlen = -1;
@@ -421,16 +420,13 @@ static int git_proxy_command_options(const char *var, const char *value,
 		return 0;
 	}
 
-	return git_default_config(var, value, cb);
+	return git_default_config(var, value, data);
 }
 
 static int git_use_proxy(const char *host)
 {
-	rhost_name = host;
-	rhost_len = strlen(host);
 	git_proxy_command = getenv("GIT_PROXY_COMMAND");
-	git_config(git_proxy_command_options, NULL);
-	rhost_name = NULL;
+	git_config(git_proxy_command_options, (void*)host);
 	return (git_proxy_command && *git_proxy_command);
 }
 
-- 
1.6.2.GIT

^ permalink raw reply related	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2009-03-11 22:03 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-03-11  1:05 [PATCH] Removed unnecessary use of global variables Erik Faye-Lund
2009-03-11  1:52 ` Junio C Hamano
  -- strict thread matches above, loose matches on Subject: below --
2009-03-11  0:09 Erik Faye-Lund
2009-03-11 10:30 ` Johannes Schindelin
2009-03-11 21:42   ` Nanako Shiraishi
2009-03-11 22:00     ` Junio C Hamano

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).