git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] Use setenv(), fix warnings
@ 2006-02-26 15:13 Timo Hirvonen
  2006-02-26 18:06 ` Junio C Hamano
  0 siblings, 1 reply; 5+ messages in thread
From: Timo Hirvonen @ 2006-02-26 15:13 UTC (permalink / raw)
  To: Junio C Hamano; +Cc: git


  - Use setenv() instead of putenv()
  - Fix -Wundef -Wold-style-definition warnings
  - Make pll_free() static

Signed-off-by: Timo Hirvonen <tihirvon@gmail.com>

---

 cache.h          |    2 +-
 exec_cmd.c       |    2 +-
 fetch-pack.c     |    2 +-
 fsck-objects.c   |    4 ++--
 pack-objects.c   |    2 +-
 pack-redundant.c |    4 ++--
 path.c           |    2 +-
 7 files changed, 9 insertions(+), 9 deletions(-)

4001390d41ffd2c816cead47c256e598bedff452
diff --git a/cache.h b/cache.h
index 5020f07..58eec00 100644
--- a/cache.h
+++ b/cache.h
@@ -10,7 +10,7 @@
 #define deflateBound(c,s)  ((s) + (((s) + 7) >> 3) + (((s) + 63) >> 6) + 11)
 #endif
 
-#if defined(DT_UNKNOWN) && !NO_D_TYPE_IN_DIRENT
+#if defined(DT_UNKNOWN) && !defined(NO_D_TYPE_IN_DIRENT)
 #define DTYPE(de)	((de)->d_type)
 #else
 #undef DT_UNKNOWN
diff --git a/exec_cmd.c b/exec_cmd.c
index 55af33b..b5e59a9 100644
--- a/exec_cmd.c
+++ b/exec_cmd.c
@@ -13,7 +13,7 @@ void git_set_exec_path(const char *exec_
 
 
 /* Returns the highest-priority, location to look for git programs. */
-const char *git_exec_path()
+const char *git_exec_path(void)
 {
 	const char *env;
 
diff --git a/fetch-pack.c b/fetch-pack.c
index 09738fe..535de10 100644
--- a/fetch-pack.c
+++ b/fetch-pack.c
@@ -82,7 +82,7 @@ static void mark_common(struct commit *c
   Get the next rev to send, ignoring the common.
 */
 
-static const unsigned char* get_rev()
+static const unsigned char* get_rev(void)
 {
 	struct commit *commit = NULL;
 
diff --git a/fsck-objects.c b/fsck-objects.c
index 6439d55..f9c69f5 100644
--- a/fsck-objects.c
+++ b/fsck-objects.c
@@ -20,7 +20,7 @@ static int check_strict = 0;
 static int keep_cache_objects = 0; 
 static unsigned char head_sha1[20];
 
-#if NO_D_INO_IN_DIRENT
+#ifdef NO_D_INO_IN_DIRENT
 #define SORT_DIRENT 0
 #define DIRENT_SORT_HINT(de) 0
 #else
@@ -483,7 +483,7 @@ int main(int argc, char **argv)
 	if (standalone && check_full)
 		die("Only one of --standalone or --full can be used.");
 	if (standalone)
-		putenv("GIT_ALTERNATE_OBJECT_DIRECTORIES=");
+		setenv("GIT_ALTERNATE_OBJECT_DIRECTORIES", "", 1);
 
 	fsck_head_link();
 	fsck_object_dir(get_object_directory());
diff --git a/pack-objects.c b/pack-objects.c
index 0287449..21ee572 100644
--- a/pack-objects.c
+++ b/pack-objects.c
@@ -768,7 +768,7 @@ static int sha1_sort(const struct object
 	return memcmp(a->sha1, b->sha1, 20);
 }
 
-static struct object_entry **create_final_object_list()
+static struct object_entry **create_final_object_list(void)
 {
 	struct object_entry **list;
 	int i, j;
diff --git a/pack-redundant.c b/pack-redundant.c
index 1869b38..cd81f5a 100644
--- a/pack-redundant.c
+++ b/pack-redundant.c
@@ -45,7 +45,7 @@ static inline void llist_item_put(struct
 	free_nodes = item;
 }
 
-static inline struct llist_item *llist_item_get()
+static inline struct llist_item *llist_item_get(void)
 {
 	struct llist_item *new;
 	if ( free_nodes ) {
@@ -275,7 +275,7 @@ static void cmp_two_packs(struct pack_li
 	}
 }
 
-void pll_free(struct pll *l)
+static void pll_free(struct pll *l)
 {
 	struct pll *old;
 	struct pack_list *opl;
diff --git a/path.c b/path.c
index 334b2bd..6500a40 100644
--- a/path.c
+++ b/path.c
@@ -243,7 +243,7 @@ char *enter_repo(char *path, int strict)
 
 	if (access("objects", X_OK) == 0 && access("refs", X_OK) == 0 &&
 	    validate_symref("HEAD") == 0) {
-		putenv("GIT_DIR=.");
+		setenv("GIT_DIR", ".", 1);
 		check_repository_format();
 		return path;
 	}
-- 
1.2.1

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

* Re: [PATCH] Use setenv(), fix warnings
  2006-02-26 15:13 [PATCH] Use setenv(), fix warnings Timo Hirvonen
@ 2006-02-26 18:06 ` Junio C Hamano
  2006-02-26 18:37   ` Timo Hirvonen
  0 siblings, 1 reply; 5+ messages in thread
From: Junio C Hamano @ 2006-02-26 18:06 UTC (permalink / raw)
  To: Timo Hirvonen; +Cc: git

Timo Hirvonen <tihirvon@gmail.com> writes:

>   - Use setenv() instead of putenv()
>   - Fix -Wundef -Wold-style-definition warnings
>   - Make pll_free() static

I think the last one makes sense, and I can see why some people
may prefer -Wundef but I am not sure about the first one.  Care
to defend why we should prefer setenv()?  IIRC, initially we did
not use setenv() anywhere because certain platforms only had
putenv().

> diff --git a/fsck-objects.c b/fsck-objects.c
> @@ -483,7 +483,7 @@ int main(int argc, char **argv)
>  	if (standalone && check_full)
>  		die("Only one of --standalone or --full can be used.");
>  	if (standalone)
> -		putenv("GIT_ALTERNATE_OBJECT_DIRECTORIES=");
> +		setenv("GIT_ALTERNATE_OBJECT_DIRECTORIES", "", 1);

For platforms with only putenv we did this; here, what we really
wanted to do was unsetenv.

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

* Re: [PATCH] Use setenv(), fix warnings
  2006-02-26 18:06 ` Junio C Hamano
@ 2006-02-26 18:37   ` Timo Hirvonen
  2006-02-26 19:38     ` Jason Riedy
  2006-02-26 20:29     ` Junio C Hamano
  0 siblings, 2 replies; 5+ messages in thread
From: Timo Hirvonen @ 2006-02-26 18:37 UTC (permalink / raw)
  To: Junio C Hamano; +Cc: git

On Sun, 26 Feb 2006 10:06:41 -0800
Junio C Hamano <junkio@cox.net> wrote:

> Timo Hirvonen <tihirvon@gmail.com> writes:
> 
> >   - Use setenv() instead of putenv()
> >   - Fix -Wundef -Wold-style-definition warnings
> >   - Make pll_free() static
> 
> I think the last one makes sense, and I can see why some people
> may prefer -Wundef but I am not sure about the first one.  Care
> to defend why we should prefer setenv()?  IIRC, initially we did
> not use setenv() anywhere because certain platforms only had
> putenv().

I was confused by putenv(3) man page.  I thought it wanted malloc'ed
strings (no 'const' in the parameter -> warning).  It appears that
statically allocated strings are accepted but _automatic_ variables
aren't.  I noticed setenv is now in compat/ so I though it was good idea
to use it.

Sorry for the noise.

> > diff --git a/fsck-objects.c b/fsck-objects.c
> > @@ -483,7 +483,7 @@ int main(int argc, char **argv)
> >  	if (standalone && check_full)
> >  		die("Only one of --standalone or --full can be used.");
> >  	if (standalone)
> > -		putenv("GIT_ALTERNATE_OBJECT_DIRECTORIES=");
> > +		setenv("GIT_ALTERNATE_OBJECT_DIRECTORIES", "", 1);
> 
> For platforms with only putenv we did this; here, what we really
> wanted to do was unsetenv.

putenv(3):
    "If the argument `string` is of the form `name`, and does not
    contain an `=' character, then the variable `name` is removed from
    the environment."

So the variable is emptied, not removed.  But usually empty environment
variables are treated as if they didn't exist...

-- 
http://onion.dynserv.net/~timo/

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

* Re: [PATCH] Use setenv(), fix warnings
  2006-02-26 18:37   ` Timo Hirvonen
@ 2006-02-26 19:38     ` Jason Riedy
  2006-02-26 20:29     ` Junio C Hamano
  1 sibling, 0 replies; 5+ messages in thread
From: Jason Riedy @ 2006-02-26 19:38 UTC (permalink / raw)
  To: Timo Hirvonen; +Cc: git

And Timo Hirvonen writes:
 - It appears that statically allocated strings are accepted but 
 - _automatic_ variables aren't.

The putenv()-ed string has to exist as long as the environment
does.  You can twiddle the environment just by twiddling the
string you registered.  What fun!

 - I noticed setenv is now in compat/ so I though it was good idea
 - to use it.

All uses of putenv() originally were setenv().  I finally realized
a compat/setenv.c was better than playing whack-a-setenv on every
release...  (Ah, hindsight.)

Note that the current compat/setenv.c _LEAKS MEMORY_ on purpose.  
Because putenv() requires the string to stay around, we can't
ever free it.  I hope any library implementing bits of git
(libgitbit?) avoids setting environment variables.

 - So the variable is emptied, not removed.  But usually empty environment
 - variables are treated as if they didn't exist...

More specifically, git treats both "" and NULL as empty, or at 
least it did last time I checked.

Jason

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

* Re: [PATCH] Use setenv(), fix warnings
  2006-02-26 18:37   ` Timo Hirvonen
  2006-02-26 19:38     ` Jason Riedy
@ 2006-02-26 20:29     ` Junio C Hamano
  1 sibling, 0 replies; 5+ messages in thread
From: Junio C Hamano @ 2006-02-26 20:29 UTC (permalink / raw)
  To: Timo Hirvonen; +Cc: git

Timo Hirvonen <tihirvon@gmail.com> writes:

> putenv(3):
>     "If the argument `string` is of the form `name`, and does not
>     contain an `=' character, then the variable `name` is removed from
>     the environment."
>
> So the variable is emptied, not removed.  But usually empty environment
> variables are treated as if they didn't exist...

Yes we were aware of that when we did it.

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

end of thread, other threads:[~2006-02-26 20:30 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2006-02-26 15:13 [PATCH] Use setenv(), fix warnings Timo Hirvonen
2006-02-26 18:06 ` Junio C Hamano
2006-02-26 18:37   ` Timo Hirvonen
2006-02-26 19:38     ` Jason Riedy
2006-02-26 20:29     ` 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).