Mercurial > mplayer.hg
view get_path.c @ 12610:7992cd49a698
calling bind with multicast addresses doesn't work on windows, patch by Martin Decky <deckm1am at ss1000.ms.mff.cuni.cz>
author | faust3 |
---|---|
date | Fri, 18 Jun 2004 14:31:10 +0000 |
parents | 133e0ebde74d |
children | 54ea3d6e657c |
line wrap: on
line source
char *get_path(char *filename){ char *homedir; char *buff; #if defined(__MINGW32__) static char *config_dir = "/mplayer"; #else static char *config_dir = "/.mplayer"; #endif int len; if ((homedir = getenv("HOME")) == NULL) #if defined(__MINGW32__)||defined(__CYGWIN__) /*hack to get fonts etc. loaded outside of cygwin environment*/ { int i,imax=0; char exedir[260]; GetModuleFileNameA(NULL, exedir, 260); for(i=0; i< strlen(exedir);i++)if(exedir[i] =='\\'){exedir[i]='/';imax=i;} exedir[imax]='\0'; homedir = exedir; } #else return NULL; #endif len = strlen(homedir) + strlen(config_dir) + 1; if (filename == NULL) { if ((buff = (char *) malloc(len)) == NULL) return NULL; sprintf(buff, "%s%s", homedir, config_dir); } else { len += strlen(filename) + 1; if ((buff = (char *) malloc(len)) == NULL) return NULL; sprintf(buff, "%s%s/%s", homedir, config_dir, filename); } mp_msg(MSGT_GLOBAL,MSGL_V,"get_path('%s') -> '%s'\n",filename,buff); return buff; }