Changeset 22002 for trunk/src


Ignore:
Timestamp:
May 25, 2012, 1:33:19 PM (13 years ago)
Author:
dmik
Message:

kernel32: Derive HOMEDRIVE/HOMEPATH environment vars from HOME.

Previously it was set to the root of the drive containing KERNEL32.DLL
which led to polluting it with temporary files in some cases.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/kernel32/initsystem.cpp

    r21537 r22002  
    8686    buffer[2] = 0;
    8787    SetEnvironmentVariableA("SystemDrive", buffer);
    88     SetEnvironmentVariableA("HOMEDRIVE", buffer);
    89     SetEnvironmentVariableA("HOMEPATH", "\\");
     88
     89    // try to derive HOMEDRIVE/HOMEPATH from HOME
     90    const char *home = getenv("HOME");
     91    if (home && home[0] && home[1] == ':')
     92    {
     93        buffer[0] = home[0];
     94        buffer[1] = home[1];
     95        buffer[2] = 0;
     96        SetEnvironmentVariableA("HOMEDRIVE", buffer);
     97        if (home[2])
     98            SetEnvironmentVariableA("HOMEPATH", &home[2]);
     99        else
     100            SetEnvironmentVariableA("HOMEPATH", "\\");
     101    }
     102    else
     103    {
     104        SetEnvironmentVariableA("HOMEDRIVE", buffer);
     105        SetEnvironmentVariableA("HOMEPATH", "\\");
     106    }
    90107
    91108    //TODO:
Note: See TracChangeset for help on using the changeset viewer.