# HG changeset patch # User wenzelm # Date 1412855787 -7200 # Node ID 37f852399a323b9af172b32b2188f14e4a2f0a50 # Parent 1df53737c59b96614451e26b17350ea038a96ec7 prefer original TEMP from Windows, e.g. relevant for Isabelle distribution within read-only directory (due to its bundled Cygwin and /tmp inside of it); diff -r 1df53737c59b -r 37f852399a32 Admin/Windows/Cygwin/Cygwin-Terminal.bat --- a/Admin/Windows/Cygwin/Cygwin-Terminal.bat Thu Oct 09 11:15:03 2014 +0200 +++ b/Admin/Windows/Cygwin/Cygwin-Terminal.bat Thu Oct 09 13:56:27 2014 +0200 @@ -1,5 +1,6 @@ @echo off +set TEMP_WINDOWS=%TEMP% set HOME=%HOMEDRIVE%%HOMEPATH% set PATH=%CD%\bin;%PATH% set CHERE_INVOKING=true diff -r 1df53737c59b -r 37f852399a32 lib/scripts/getsettings --- a/lib/scripts/getsettings Thu Oct 09 11:15:03 2014 +0200 +++ b/lib/scripts/getsettings Thu Oct 09 13:56:27 2014 +0200 @@ -26,6 +26,12 @@ then unset INI_DIR + if [ -n "$TEMP_WINDOWS" ]; then + TMPDIR="$(cygpath -u "$TEMP_WINDOWS")" + TMP="$TMPDIR" + TEMP="$TMPDIR" + fi + if [ -z "$USER_HOME" ]; then USER_HOME="$(cygpath -u "$HOMEDRIVE\\$HOMEPATH")" fi diff -r 1df53737c59b -r 37f852399a32 src/Pure/System/isabelle_system.scala --- a/src/Pure/System/isabelle_system.scala Thu Oct 09 11:15:03 2014 +0200 +++ b/src/Pure/System/isabelle_system.scala Thu Oct 09 13:56:27 2014 +0200 @@ -76,20 +76,26 @@ set_cygwin_root() + def default(env: Map[String, String], entry: (String, String)): Map[String, String] = + if (env.isDefinedAt(entry._1) || entry._2 == "") env + else env + entry + val env = { + val temp_windows = + { + val temp = System.getenv("TEMP") + if (temp != null && temp.contains('\\')) temp else "" + } val user_home = System.getProperty("user.home", "") val isabelle_app = System.getProperty("isabelle.app", "") - val env0 = sys.env + ("ISABELLE_JDK_HOME" -> posix_path(jdk_home())) - val env1 = - if (user_home == "" || env0.isDefinedAt("HOME")) env0 - else env0 + ("HOME" -> user_home) - val env2 = - if (isabelle_app == "") env1 - else env1 + ("ISABELLE_APP" -> "true") - - env2 + default( + default( + default(sys.env + ("ISABELLE_JDK_HOME" -> posix_path(jdk_home())), + ("TEMP_WINDOWS" -> temp_windows)), + ("HOME" -> user_home)), + ("ISABELLE_APP" -> "true")) } val system_home =