From 98b3d6839367b24e875701e33b39f29e395684ca Mon Sep 17 00:00:00 2001 From: Enrico Forestieri Date: Mon, 6 Aug 2007 13:52:04 +0000 Subject: [PATCH] Use the internal function of the cygwin dll for syncing the Windows environment. git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/branches/BRANCH_1_5_X@19334 a592a061-630c-0410-9148-cb99ea01b6c8 --- src/support/os_cygwin.cpp | 39 ++++++++------------------------------- 1 file changed, 8 insertions(+), 31 deletions(-) diff --git a/src/support/os_cygwin.cpp b/src/support/os_cygwin.cpp index 5ec1d1e3d2..d8d052fe97 100644 --- a/src/support/os_cygwin.cpp +++ b/src/support/os_cygwin.cpp @@ -145,45 +145,22 @@ string convert_path_list(string const & p, PathStyle const & target) void os::init(int, char *[]) { - // Copy cygwin environment variables to the Windows environment - // if they're not already there. + // Make sure that the TEMP variable is set + // and sync the Windows environment. char **envp = environ; - char curval[2]; string var; - string val; bool temp_seen = false; - while (envp && *envp) { - val = split(*envp++, var, '='); - + while (envp && *envp && !temp_seen) { + split(*envp++, var, '='); if (var == "TEMP") temp_seen = true; + } + if (!temp_seen) + ::setenv("TEMP", "/tmp", true); - if (GetEnvironmentVariable(var.c_str(), curval, 2) == 0 - && GetLastError() == ERROR_ENVVAR_NOT_FOUND) { - /* Convert to Windows style where necessary */ - if (var == "PATH" || var == "LD_LIBRARY_PATH") { - string const winpathlist = - convert_path_list(val, PathStyle(windows)); - if (!winpathlist.empty()) { - SetEnvironmentVariable(var.c_str(), - winpathlist.c_str()); - } - } else if (var == "HOME" || var == "TMPDIR" || - var == "TMP" || var == "TEMP") { - string const winpath = - convert_path(val, PathStyle(windows)); - SetEnvironmentVariable(var.c_str(), winpath.c_str()); - } else { - SetEnvironmentVariable(var.c_str(), val.c_str()); - } - } - } - if (!temp_seen) { - string const winpath = convert_path("/tmp", PathStyle(windows)); - SetEnvironmentVariable("TEMP", winpath.c_str()); - } + cygwin_internal(CW_SYNC_WINENV); }