* bug 7374 fixed - If Scilab is launched via another Scilab, TMPDIR is badly 92/1292/1
Sylvestre Ledru [Fri, 9 Jul 2010 14:55:48 +0000 (16:55 +0200)]
built.

Change-Id: I07b278c6ae4a09df9754e913c9940fde3b5ed66f

scilab/CHANGES_5.3.X
scilab/modules/core/src/c/tmpdir.c

index e3abff2..98dea2b 100644 (file)
@@ -43,6 +43,9 @@ Bug Fixes:
 * bug 7372 fixed - No message was displayed in the Xcos info bar during the
                    first drag and drop of a block (may take some times).
 
+* bug 7374 fixed - If Scilab is launched via another Scilab, TMPDIR is badly
+                   built.
+
 * bug 7391 fixed - add links between help files about evstr, eval, execstr.
 
 * bug 7437 fixed - If history file was invalid, history browser crashed.
index e1fc6e5..6c3aa24 100644 (file)
@@ -114,12 +114,18 @@ void createScilabTMPDIR(void)
         static char bufenv[PATH_MAX + 16];
         alreadyCreated++;
         /* If the env variable TMPDIR is set, honor this preference */
-        if((tmpdir = getenv("TMPDIR")) != NULL && strlen(tmpdir) < (PATH_MAX))
+        if ((tmpdir = getenv("TMPDIR")) != NULL &&
+            strlen(tmpdir) < (PATH_MAX) && strstr(tmpdir, "SCI_TMP_") == NULL)
         {
+            /* TMPDIR does not contains SCI_TMP. Using TMPDIR */
             strcpy(tmp_dir, tmpdir);
         }
         else
         {
+            /* Two cases where we can be here:
+             *  - When TMPDIR is not set (all cases)
+             *  - If SCI_TMP_* is in the TMPDIR variable, switch to the default
+            */
             strcpy(tmp_dir, "/tmp");
         }