ecere: Fixed Linux warnings; Fixed DualPipe with environment
authorJerome St-Louis <jerome@ecere.com>
Sun, 10 Mar 2013 04:35:51 +0000 (23:35 -0500)
committerJerome St-Louis <jerome@ecere.com>
Sun, 10 Mar 2013 04:35:51 +0000 (23:35 -0500)
ecere/src/com/instance.c
ecere/src/sys/DualPipe.c
ide/locale/ide.pot

index c3f10e2..f982fd9 100644 (file)
@@ -103,7 +103,7 @@ Platform runtimePlatform = unknown;    // 'linux' is used as a catch all UNIX pl
 */
 #endif
 
-#if !defined(ECERE_NOFILE) && defined(__unix__)
+#if !defined(ECERE_NOFILE) && defined(__unix__) && !defined(__linux__)
 
 typedef struct _DualPipe _DualPipe;
 
@@ -325,7 +325,6 @@ bool Instance_LocateModule(char * name, char * fileName)
 #endif
    if(!name || !name[0])
    {
-      char * env;
 #if defined(__FreeBSD__)
       {
          int mib[4] = { CTL_KERN, KERN_PROC, KERN_PROC_PATHNAME, -1 };
@@ -337,15 +336,18 @@ bool Instance_LocateModule(char * name, char * fileName)
       }  
 #endif
 #if !defined(__linux__)
-      if(!access("/proc/curproc/file", F_OK))
       {
-         strcpy(fileName, "/proc/curproc/file");
-         return true;
-      }
-      if((env = getenv("_")))
-      {
-         strcpy(fileName, env);
-         return true;
+         char * env;
+         if(!access("/proc/curproc/file", F_OK))
+         {
+            strcpy(fileName, "/proc/curproc/file");
+            return true;
+         }
+         if((env = getenv("_")))
+         {
+            strcpy(fileName, env);
+            return true;
+         }
       }
 #endif
       strcpy(fileName, exeLocation);
index 0fb60d5..0c7469c 100644 (file)
@@ -331,17 +331,23 @@ _DualPipe * _DualPipeOpen(PipeOpenMode mode, char * commandLine, char * env, voi
             close(hInput[PIPE_READ]);
          }
          
-         numTokens = __ecereNameSpace__ecere__sys__Tokenize(commandLineCopy, 128, tokens, false);
+         numTokens = __ecereNameSpace__ecere__sys__Tokenize(commandLineCopy, sizeof(tokens) / sizeof(tokens[0]) - 1, tokens, false);
          tokens[numTokens] = null;
          if(env)
          {
-            // TOFIX: env must be split into separate strings!!
-            if(execve(tokens[0], (char **)tokens, env) < 0)
+            char * envTokens[129];
+            char * envCopy = __ecereNameSpace__ecere__sys__CopyString(env);
+            int numEnvTokens = __ecereNameSpace__ecere__sys__Tokenize(envCopy, sizeof(envTokens) / sizeof(envTokens[0]) - 1, envTokens, false);
+            envTokens[numEnvTokens] = null;
+
+            if(execve(tokens[0], tokens, envTokens) < 0)
             {
                __ecereNameSpace__ecere__com__eSystem_Delete(commandLineCopy);
+               __ecereNameSpace__ecere__com__eSystem_Delete(envCopy);
                exit(1);
             }
             __ecereNameSpace__ecere__com__eSystem_Delete(commandLineCopy);
+            __ecereNameSpace__ecere__com__eSystem_Delete(envCopy);
             exit(0);
          }
          else
index bf49d91..23765ec 100644 (file)
@@ -514,11 +514,6 @@ msgstr "Condition"
 msgid "Configurations: "
 msgstr "Configurations: "
 
-#: ./src/designer/CodeEditor.ec:38
-#: ./src/designer/CodeEditor.ec:39
-msgid "Consolas"
-msgstr "Consolas"
-
 #: ./src/ProjectSettings.ec:2117
 msgid "Console Application"
 msgstr "Console Application"
@@ -537,6 +532,11 @@ msgstr "Couldn't create file."
 msgid "Couldn't read memory"
 msgstr "Couldn't read memory"
 
+#: ./src/designer/CodeEditor.ec:35
+#: ./src/designer/CodeEditor.ec:36
+msgid "Courier New"
+msgstr "Courier New"
+
 #: ./src/dialogs/NewProjectDialog.ec:219
 msgid "Create Form"
 msgstr "Create Form"