/* * Return current user's home directory. Try: * - %HOME% * - %APPDATA% * - %USERPROFILE%\\Application Data * - else EC's dir. * * Not used yet. */ const char *ec_win_get_user_dir (void) { static char path[MAX_PATH] = ""; char *home; if (path[0]) return (path); home = getenv ("HOME"); if (home) strncpy (path, home, sizeof(path)-1); else { home = getenv ("APPDATA"); /* Win-9x/ME */ if (home) strncpy (path, home, sizeof(path)-1); else { home = getenv ("USERPROFILE"); /* Win-2K/XP */ if (home) snprintf (path, sizeof(path)-1, "%s\\Application Data", home); else strncpy (path, ec_win_get_ec_dir(), sizeof(path)-1); } } path [sizeof(path)-1] = '\0'; return slashify (path); }
char * get_local_path(const char *file) { char *filename; #ifdef OS_WINDOWS /* get the path in wich ettercap is running */ char *self_root = ec_win_get_ec_dir(); #else char *self_root = "."; #endif SAFE_CALLOC(filename, strlen(self_root) + strlen("/share/") + strlen(file) + 1, sizeof(char)); snprintf(filename, strlen(self_root)+strlen("/share/") + strlen(file) + 1, "%s/share/%s", self_root, file); DEBUG_MSG("get_local_path -- %s", filename); return filename; }