Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
* [RFA/mingw32] environment variables are case-insensitive on win32
@ 2012-11-30 13:37 Jerome Guitton
  2012-11-30 13:47 ` Eli Zaretskii
  2012-11-30 14:43 ` Pedro Alves
  0 siblings, 2 replies; 59+ messages in thread
From: Jerome Guitton @ 2012-11-30 13:37 UTC (permalink / raw)
  To: gdb-patches; +Cc: Jerome Guitton

A patch that I sent a few months ago, I think, but never got in:
environment variables are case-insensitive on windows, this patch would
take that into account.

It would have been nice to have a configure test for that, using
setenv/getenv to detect the case insensitivity.  Unfortunately we
don't have setenv on win32. So I ended up using _WIN32 just like we do
to handle the .exe extension. Any other idea?

I could not run the testsuite on Windows though; so I run it on
x86-linux just to make sure that it had no effect on it. Note that the
problem does not reproduce when GDB is run from cygwin, which makes it
even harder to test. So I ended up using AdaCore's internal testsuite
to validate this.

gdb/ChangeLog:

	* environ.c (env_var_name_ncmp): New macro.
	(get_in_environ, set_in_environ, unset_in_environ): Use
	env_var_name_ncmp instead of strncmp.
---
 gdb/environ.c |   13 ++++++++++---
 1 file changed, 10 insertions(+), 3 deletions(-)

diff --git a/gdb/environ.c b/gdb/environ.c
index 33426eb..2201926 100644
--- a/gdb/environ.c
+++ b/gdb/environ.c
@@ -96,6 +96,13 @@ environ_vector (struct gdb_environ *e)
   return e->vector;
 }
 \f
+
+#if defined(_WIN32) && !defined(__CYGWIN__)
+#define env_var_name_ncmp(a, b, length) strncasecmp (a, b, length)
+#else
+#define env_var_name_ncmp(a, b, length) strncmp(a, b, length)
+#endif
+
 /* Return the value in environment E of variable VAR.  */
 
 char *
@@ -106,7 +113,7 @@ get_in_environ (const struct gdb_environ *e, const char *var)
   char *s;
 
   for (; (s = *vector) != NULL; vector++)
-    if (strncmp (s, var, len) == 0 && s[len] == '=')
+    if (env_var_name_ncmp (s, var, len) == 0 && s[len] == '=')
       return &s[len + 1];
 
   return 0;
@@ -123,7 +130,7 @@ set_in_environ (struct gdb_environ *e, const char *var, const char *value)
   char *s;
 
   for (i = 0; (s = vector[i]) != NULL; i++)
-    if (strncmp (s, var, len) == 0 && s[len] == '=')
+    if (env_var_name_ncmp (s, var, len) == 0 && s[len] == '=')
       break;
 
   if (s == 0)
@@ -170,7 +177,7 @@ unset_in_environ (struct gdb_environ *e, char *var)
 
   for (; (s = *vector) != NULL; vector++)
     {
-      if (strncmp (s, var, len) == 0 && s[len] == '=')
+      if (env_var_name_ncmp (s, var, len) == 0 && s[len] == '=')
 	{
 	  xfree (s);
 	  /* Walk through the vector, shuffling args down by one, including
-- 
1.7.10.4


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

end of thread, other threads:[~2012-12-14 10:55 UTC | newest]

Thread overview: 59+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-11-30 13:37 [RFA/mingw32] environment variables are case-insensitive on win32 Jerome Guitton
2012-11-30 13:47 ` Eli Zaretskii
2012-11-30 14:08   ` Jerome Guitton
2012-11-30 15:27     ` Eli Zaretskii
2012-11-30 15:34       ` Jerome Guitton
2012-11-30 16:07         ` Eli Zaretskii
2012-11-30 16:29           ` Jerome Guitton
2012-11-30 18:55             ` Eli Zaretskii
2012-12-07  9:22               ` Jerome Guitton
2012-12-07  9:30                 ` Eli Zaretskii
2012-12-07 10:06                   ` Jerome Guitton
2012-12-07 10:06                 ` Joel Brobecker
2012-12-07 10:11                   ` Jerome Guitton
2012-12-07 10:18                     ` Joel Brobecker
2012-11-30 19:02             ` Pedro Alves
2012-12-03 11:31               ` Jerome Guitton
2012-12-09 23:53                 ` Christopher Faylor
2012-12-10 10:51                   ` Jerome Guitton
2012-12-10 11:01                     ` Corinna Vinschen
2012-12-10 13:50                       ` Joel Brobecker
2012-12-10 15:24                         ` Corinna Vinschen
2012-12-10 15:42                           ` Jerome Guitton
2012-12-10 15:58                             ` Corinna Vinschen
2012-12-10 16:08                               ` Jerome Guitton
2012-12-10 16:09                               ` Eli Zaretskii
2012-12-10 16:17                                 ` Corinna Vinschen
2012-12-10 16:24                                   ` Eli Zaretskii
2012-12-10 16:57                                     ` Corinna Vinschen
2012-12-10 20:11                                       ` Eli Zaretskii
2012-12-11 10:20                                         ` Corinna Vinschen
2012-12-10 16:24                                   ` Jerome Guitton
2012-12-11 14:25                               ` Pedro Alves
2012-12-11 14:41                                 ` Corinna Vinschen
2012-12-11 15:07                                   ` Pedro Alves
2012-12-11 15:21                                     ` Corinna Vinschen
2012-12-11 15:23                                     ` Pierre Muller
2012-12-14 10:55                                       ` Jerome Guitton
2012-12-14 10:35                                 ` Jerome Guitton
2012-12-10 15:35                         ` Jerome Guitton
2012-12-10 16:09                           ` Pierre Muller
2012-12-10 16:18                             ` 'Jerome Guitton'
2012-12-10 16:27                               ` Pierre Muller
2012-12-10 16:54                                 ` Corinna Vinschen
2012-12-10 18:22                                   ` Jerome Guitton
2012-12-10 18:35                                     ` Pierre Muller
2012-12-10 18:36                                       ` 'Jerome Guitton'
2012-12-11  9:50                                         ` 'Jerome Guitton'
2012-12-11 16:27                               ` Christopher Faylor
     [not found]                           ` <002401cdd6f0$c0b317b0$42194710$%muller@ics-cnrs.unistra.fr>
2012-12-10 16:26                             ` Eli Zaretskii
2012-12-10 16:40                               ` Pierre Muller
2012-12-10 16:51                                 ` Jerome Guitton
2012-12-10 17:16                                 ` Jerome Guitton
2012-11-30 14:43 ` Pedro Alves
2012-11-30 15:03   ` Jerome Guitton
2012-11-30 15:38     ` Jerome Guitton
2012-11-30 15:41       ` Pedro Alves
2012-11-30 15:46         ` Tom Tromey
2012-11-30 15:49           ` Pedro Alves
2012-11-30 16:02         ` Jerome Guitton

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox