summaryrefslogtreecommitdiffstats
path: root/get_path.c
diff options
context:
space:
mode:
Diffstat (limited to 'get_path.c')
-rw-r--r--get_path.c16
1 files changed, 16 insertions, 0 deletions
diff --git a/get_path.c b/get_path.c
index 9d0c1096a3..081a4e735d 100644
--- a/get_path.c
+++ b/get_path.c
@@ -2,11 +2,27 @@
char *get_path(char *filename){
char *homedir;
char *buff;
+#if defined(__MINGW32__)||defined(__CYGWIN__)
+ 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 __stdcall GetModuleFileNameA(void* hModule,char* lpFilename,int nSize);
+ int i,imax=0;
+ char exedir[MAX_PATH];
+ GetModuleFileNameA(NULL, exedir, MAX_PATH);
+ 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)