* win32-nat.c (handle_load_dll): dos_path_to_unix_path renamed to
authorDavid Edelsohn <dje.gcc@gmail.com>
Mon, 15 Jul 1996 23:57:36 +0000 (23:57 +0000)
committerDavid Edelsohn <dje.gcc@gmail.com>
Mon, 15 Jul 1996 23:57:36 +0000 (23:57 +0000)
cygwin32_conv_to_posix_path.
(child_create_inferior): unix_path_to_dos_path renamed to
cygwin32_conv_to_win32_path.  Rewrite code to translate PATH.

gdb/ChangeLog
gdb/win32-nat.c

index fce4a893dcb8d6fbcee7f95e34d39889ffd5baf9..3e59a34686779caade054e3ea9aa632b740769a4 100644 (file)
@@ -1,3 +1,10 @@
+Mon Jul 15 16:55:48 1996  Doug Evans  <dje@canuck.cygnus.com>
+
+       * win32-nat.c (handle_load_dll): dos_path_to_unix_path renamed to
+       cygwin32_conv_to_posix_path.
+       (child_create_inferior): unix_path_to_dos_path renamed to
+       cygwin32_conv_to_win32_path.  Rewrite code to translate PATH.
+
 Mon Jul 15 16:44:05 1996  Stu Grossman  (grossman@critters.cygnus.com)
 
        * defs.h printcmd.c:  Create global disassemble_info structure
index 641f0949f818f0ba321c64e63014981b0d5d6f60..dd11b338490e70469f33040948db1aed47d48e0d 100644 (file)
@@ -327,8 +327,8 @@ handle_load_dll (char *eventp)
                             &done);
        }
 
-
-      dos_path_to_unix_path (dll_name, unix_dll_name);
+      /* FIXME: Can we delete this call?  */
+      cygwin32_conv_to_posix_path (dll_name, unix_dll_name);
 
       /* FIXME!! It would be nice to define one symbol which pointed to the 
          front of the dll if we can't find any symbols. */
@@ -630,7 +630,7 @@ child_create_inferior (exec_file, allargs, env)
   memset (&si, 0, sizeof (si));
   si.cb = sizeof (si);
 
-  unix_path_to_dos_path (exec_file, real_path);
+  cygwin32_conv_to_win32_path (exec_file, real_path);
 
   flags = DEBUG_ONLY_THIS_PROCESS; 
 
@@ -651,24 +651,17 @@ child_create_inferior (exec_file, allargs, env)
   {
     /* This code use to assume all env vars were file names and would
        translate them all to win32 style.  That obviously doesn't work in the
-       general case.  The current rule is that the user either works solely
-       with win32 style path names or with posix style path names and that
-       all env vars are already set up appropriately.  At any rate it is
-       wrong for us to willy-nilly change them.
-
-       However, we need to handle PATH because we're about to call
-       CreateProcess and it uses PATH to find DLL's.  Fortunately PATH
-       has a well-defined value in both posix and win32 environments.
-       cygwin.dll will change it back to posix style if necessary.  If we're
-       working with win32 style path names, we don't need to do anything at
-       all.  */
+       general case.  The current rule is that we only translate PATH.
+       We need to handle PATH because we're about to call CreateProcess and
+       it uses PATH to find DLL's.  Fortunately PATH has a well-defined value
+       in both posix and win32 environments.  cygwin.dll will change it back
+       to posix style if necessary.  */
 
     static const char *conv_path_names[] =
       {
        "PATH=",
        0
       };
-    int posix_rules_p = sysconf (_SC_PATH_RULES) == _PATH_RULES_POSIX;
 
     /* CreateProcess takes the environment list as a null terminated set of
        strings (i.e. two nulls terminate the list).  */
@@ -676,24 +669,22 @@ child_create_inferior (exec_file, allargs, env)
     /* Get total size for env strings.  */
     for (envlen = 0, i = 0; env[i] && *env[i]; i++)
       {
-       if (posix_rules_p)
-         {
-           int j, len;
+       int j, len;
 
-           for (j = 0; conv_path_names[j]; j++)
+       for (j = 0; conv_path_names[j]; j++)
+         {
+           len = strlen (conv_path_names[j]);
+           if (strncmp (conv_path_names[j], env[i], len) == 0)
              {
-               len = strlen (conv_path_names[j]);
-               if (strncmp (conv_path_names[j], env[i], len) == 0)
-                 {
-                   envlen += len
-                     + cygwin32_posix_to_win32_path_list_buf_size (env[i] + len);
-                   break;
-                 }
+               if (cygwin32_posix_path_list_p (env[i] + len))
+                 envlen += len
+                   + cygwin32_posix_to_win32_path_list_buf_size (env[i] + len);
+               else
+                 envlen += strlen (env[i]) + 1;
+               break;
              }
-           if (conv_path_names[j] == NULL)
-             envlen += strlen (env[i]) + 1;
          }
-       else
+       if (conv_path_names[j] == NULL)
          envlen += strlen (env[i]) + 1;
       }
 
@@ -702,25 +693,26 @@ child_create_inferior (exec_file, allargs, env)
     /* Copy env strings into new buffer.  */
     for (temp = winenv, i = 0; env[i] && *env[i]; i++) 
       {
-       if (posix_rules_p)
-         {
-           int j, len;
+       int j, len;
 
-           for (j = 0; conv_path_names[j]; j++)
+       for (j = 0; conv_path_names[j]; j++)
+         {
+           len = strlen (conv_path_names[j]);
+           if (strncmp (conv_path_names[j], env[i], len) == 0)
              {
-               len = strlen (conv_path_names[j]);
-               if (strncmp (conv_path_names[j], env[i], len) == 0)
+               if (cygwin32_posix_path_list_p (env[i] + len))
                  {
                    memcpy (temp, env[i], len);
                    cygwin32_posix_to_win32_path_list (env[i] + len, temp + len);
-                   break;
                  }
+               else
+                 strcpy (temp, env[i]);
+               break;
              }
-           if (conv_path_names[j] == NULL)
-             strcpy (temp, env[i]);
          }
-       else
+       if (conv_path_names[j] == NULL)
          strcpy (temp, env[i]);
+
        temp += strlen (temp) + 1;
       }