Mail Archives: cygwin/2001/07/01/01:21:11
This is much simpler and cleaner than the previous attempt. And it is
the *CORRECT* implementation from UNIX point of view. The existence
of "SHELL" environment variable does not necessarily guaranty that it
is usable for this purpose. This needs to be improved.
-Tak
*** win32-nat.org.c Wed Apr 18 13:27:11 2001
--- win32-nat.c Sat Jun 30 21:59:29 2001
***************
*** 1084,1090 ****
static void
child_create_inferior (char *exec_file, char *allargs, char **env)
{
! char real_path[MAXPATHLEN];
char *winenv;
char *temp;
int envlen;
--- 1084,1090 ----
static void
child_create_inferior (char *exec_file, char *allargs, char **env)
{
! char *shell;
char *winenv;
char *temp;
int envlen;
***************
*** 1101,1108 ****
memset (&si, 0, sizeof (si));
si.cb = sizeof (si);
- cygwin_conv_to_win32_path (exec_file, real_path);
-
flags = DEBUG_ONLY_THIS_PROCESS;
if (new_group)
--- 1101,1106 ----
***************
*** 1111,1122 ****
if (new_console)
flags |= CREATE_NEW_CONSOLE;
! args = alloca (strlen (real_path) + strlen (allargs) + 2);
!
! strcpy (args, real_path);
!
! strcat (args, " ");
! strcat (args, allargs);
/* Prepare the environment vars for CreateProcess. */
{
--- 1109,1132 ----
if (new_console)
flags |= CREATE_NEW_CONSOLE;
! shell = getenv ("SHELL");
! if (shell)
! {
! char *exec_format = "%s -c 'exec %s %s'";
!
! args = alloca (strlen (exec_format) + strlen (shell) + strlen (exec_file) + strlen (allargs));
! sprintf(args, exec_format, shell, exec_file, allargs);
! }
! else
! {
! char real_path[MAXPATHLEN];
!
! cygwin_conv_to_win32_path (exec_file, real_path);
! args = alloca (strlen (real_path) + strlen (allargs) + 2);
! strcpy (args, real_path);
! strcat (args, " ");
! strcat (args, allargs);
! }
/* Prepare the environment vars for CreateProcess. */
{
--
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
Bug reporting: http://cygwin.com/bugs.html
Documentation: http://cygwin.com/docs.html
FAQ: http://cygwin.com/faq/
- Raw text -