Changeset 437


Ignore:
Timestamp:
Oct 15, 2014, 7:25:59 PM (11 years ago)
Author:
dmik
Message:

icedtea-web: Override getpwuid on OS/2.

This is because kLIBC doesn't provide a working version (yet). This override fixes detection of the user home directory.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/icedtea-web/plugin/icedteanp/IcedTeaParseProperties.cc

    r429 r437  
    5858 tested.
    5959*/
     60
     61#ifdef __EMX__
     62// getpwuid isn't fully implemented yet, let the env vars override it
     63struct passwd *my_getpwuid(uid_t uid)
     64{
     65    static struct passwd pw_buf;
     66
     67    struct passwd *pw = getpwuid(uid);
     68    if (pw)
     69        memcpy(&pw_buf, pw, sizeof(struct passwd));
     70    else
     71        return 0;
     72
     73    char *env_var;
     74    env_var = getenv("HOME");
     75    if (env_var && env_var[0]) {
     76        pw_buf.pw_dir = env_var;
     77        while (*env_var) {
     78            if (*env_var == '\\')
     79                *env_var = '/';
     80            ++env_var;
     81        }
     82    }
     83
     84    return &pw_buf;
     85}
     86#undef getpwuid
     87#define getpwuid my_getpwuid
     88#endif
    6089
    6190using namespace std;
Note: See TracChangeset for help on using the changeset viewer.