X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?p=libpicofe.git;a=blobdiff_plain;f=linux%2Fplat.c;h=660a095ae9df3e31098cd5e89a23211a82aa016a;hp=ec381fad01a2352c082c2a755a6cbc137b2402f1;hb=af7e50060fc05a2200ea7221f5658e204270c7aa;hpb=62e581e179cc311c345ae95a351551fca40b0619 diff --git a/linux/plat.c b/linux/plat.c index ec381fa..660a095 100644 --- a/linux/plat.c +++ b/linux/plat.c @@ -78,17 +78,19 @@ int plat_get_skin_dir(char *dst, int len) #endif int plat_get_root_dir(char *dst, int len) { -#if defined(__GP2X__) || defined(PANDORA) - return plat_get_data_dir(dst, len); -#else - char *home = getenv("HOME"); - size_t nb = strlen(home); +#if !defined(__GP2X__) && !defined(PANDORA) + const char *home = getenv("HOME"); + int ret; - memcpy(dst, home, nb); - memcpy(dst + nb, PICO_HOME_DIR, sizeof PICO_HOME_DIR); - mkdir(dst, 0755); - return nb + sizeof(PICO_HOME_DIR) - 1; + if (home != NULL) { + ret = snprintf(dst, len, "%s%s", home, PICO_HOME_DIR); + if (ret >= len) + ret = len - 1; + mkdir(dst, 0755); + return ret; + } #endif + return plat_get_data_dir(dst, len); } #ifdef __GP2X__