delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2005/05/12/14:23:49

Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm
List-Subscribe: <mailto:cygwin-subscribe AT cygwin DOT com>
List-Archive: <http://sourceware.org/ml/cygwin/>
List-Post: <mailto:cygwin AT cygwin DOT com>
List-Help: <mailto:cygwin-help AT cygwin DOT com>, <http://sourceware.org/ml/#faqs>
Sender: cygwin-owner AT cygwin DOT com
Mail-Followup-To: cygwin AT cygwin DOT com
Delivered-To: mailing list cygwin AT cygwin DOT com
Message-ID: <42839F26.809@mscha.org>
Date: Thu, 12 May 2005 20:23:34 +0200
From: Michael Schaap <cygwin AT mscha DOT org>
Reply-To: cygwin AT cygwin DOT com
User-Agent: Mozilla Thunderbird 1.0.2 (Windows/20050317)
MIME-Version: 1.0
To: cygwin AT cygwin DOT com
Subject: Patch for cygutils: make cygstart behave better under mount -X
X-IsSubscribed: yes

--------------080504080806000903040901
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 7bit

Hi,

Attached is a patch to fix cygstart behaviour when running under "mount
-X".  Cygstart now ensures that the Windows environment is synchronized
with the Cygwin one.
(For more details, see the recent thread: "Fixing strace and cygcheck so
that they work with mount -X")

Chuck, can you, at your convenience, apply this patch and release a new
version of cygutils?

Thanks in advance,

 - Michael


--------------080504080806000903040901
Content-Type: text/plain;
 name="cygstart_winenv.patch"
Content-Transfer-Encoding: 7bit
Content-Disposition: inline;
 filename="cygstart_winenv.patch"

--- ORIG/cygstart.c	2005-03-08 06:22:51.000000000 +0100
+++ cygstart.c	2005-05-12 00:37:06.047250000 +0200
@@ -40,7 +40,7 @@
 #define MSDN_URL "http://msdn.microsoft.com/library/en-us/shellcc/platform/" \
                  "Shell/reference/functions/shellexecute.asp"
 
-static const char versionID[] = "1.0";
+static const char versionID[] = "1.2";
 /* for future CVS */
 static const char revID[] =
 	"$Id: cygstart.c,v 1.3 2005/03/08 05:22:51 cwilson Exp $";
@@ -64,6 +64,7 @@
 static void help(poptContext optCon, FILE *f, char *name);
 static void version(poptContext optCon, FILE *f, char *name);
 static void license(poptContext optCon, FILE *f, char *name);
+static void setup_win_environ(void);
 
 int main(int argc, const char **argv)
 {
@@ -404,6 +405,9 @@
 {
     int ret;
 
+    /* Need to sync the Windows environment when running under "mount -X" */
+    setup_win_environ();
+
     ret = (int) ShellExecute(NULL, action, aPath, args, workDir, show);
     if (ret >= 32) {
         return TRUE;
@@ -511,3 +515,25 @@
   printTopDescription(f, name);
   printLicense(f, name);
 }  
+
+/* Copy cygwin environment variables to the Windows environment if they're not
+ * already there. */
+static void setup_win_environ(void)
+{
+    char **envp = environ;
+    char *var, *val;
+    char curval[2];
+
+    while (envp && *envp) {
+        var = strdup(*envp++);
+        val = strchr(var, '=');
+        *val++ = '\0';
+        
+        if (GetEnvironmentVariable(var, curval, 2) == 0
+                    && GetLastError() == ERROR_ENVVAR_NOT_FOUND) {
+            SetEnvironmentVariable(var, val);
+        }
+
+        free(var);
+    }
+}



--------------080504080806000903040901
Content-Type: text/plain; charset=us-ascii

--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Problem reports:       http://cygwin.com/problems.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/
--------------080504080806000903040901--

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019