Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
From: Jerome Guitton <guitton@adacore.com>
To: gdb-patches@sourceware.org
Cc: Jerome Guitton <guitton@adacore.com>
Subject: [RFA/mingw32] environment variables are case-insensitive on win32
Date: Fri, 30 Nov 2012 13:37:00 -0000	[thread overview]
Message-ID: <1354282597-22691-1-git-send-email-guitton@adacore.com> (raw)

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


             reply	other threads:[~2012-11-30 13:37 UTC|newest]

Thread overview: 59+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-11-30 13:37 Jerome Guitton [this message]
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

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1354282597-22691-1-git-send-email-guitton@adacore.com \
    --to=guitton@adacore.com \
    --cc=gdb-patches@sourceware.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox