summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--get_path.c38
-rw-r--r--mencoder.c4
-rw-r--r--mplayer.c30
3 files changed, 43 insertions, 29 deletions
diff --git a/get_path.c b/get_path.c
index bde2b79fc2..7443cd341b 100644
--- a/get_path.c
+++ b/get_path.c
@@ -104,3 +104,41 @@ char *get_path(char *filename){
mp_msg(MSGT_GLOBAL,MSGL_V,"get_path('%s') -> '%s'\n",filename,buff);
return buff;
}
+
+#if defined(WIN32) && defined(USE_WIN32DLL)
+void set_path_env()
+{
+ /*make our codec dirs available for LoadLibraryA()*/
+ char tmppath[MAX_PATH*2 + 1];
+ char win32path[MAX_PATH];
+ char realpath[MAX_PATH];
+#ifdef __CYGWIN__
+ cygwin_conv_to_full_win32_path(WIN32_PATH,win32path);
+ strcpy(tmppath,win32path);
+#ifdef USE_REALCODECS
+ cygwin_conv_to_full_win32_path(REALCODEC_PATH,realpath);
+ sprintf(tmppath,"%s;%s",win32path,realpath);
+#endif /*USE_REALCODECS*/
+#else /*__CYGWIN__*/
+ /* Expand to absolute path unless it's already absolute */
+ if(!strstr(WIN32_PATH,":") && WIN32_PATH[0] != '\\'){
+ GetModuleFileNameA(NULL, win32path, MAX_PATH);
+ strcpy(strrchr(win32path, '\\') + 1, WIN32_PATH);
+ }
+ else strcpy(win32path,WIN32_PATH);
+ strcpy(tmppath,win32path);
+#ifdef USE_REALCODECS
+ /* Expand to absolute path unless it's already absolute */
+ if(!strstr(REALCODEC_PATH,":") && REALCODEC_PATH[0] != '\\'){
+ GetModuleFileNameA(NULL, realpath, MAX_PATH);
+ strcpy(strrchr(realpath, '\\') + 1, REALCODEC_PATH);
+ }
+ else strcpy(realpath,REALCODEC_PATH);
+ sprintf(tmppath,"%s;%s",win32path,realpath);
+#endif /*USE_REALCODECS*/
+#endif /*__CYGWIN__*/
+ mp_msg(MSGT_WIN32, MSGL_V,"Setting PATH to %s\n",tmppath);
+ if (!SetEnvironmentVariableA("PATH", tmppath))
+ mp_msg(MSGT_WIN32, MSGL_WARN, "Cannot set PATH!");
+}
+#endif /*WIN32 && USE_WIN32DLL*/
diff --git a/mencoder.c b/mencoder.c
index cdfa23b7b3..44f5eedcae 100644
--- a/mencoder.c
+++ b/mencoder.c
@@ -437,6 +437,10 @@ audio_encoder_t *aencoder = NULL;
mp_msg(MSGT_CPLAYER,MSGL_INFO,"\n\n");
#endif
#endif
+
+#if defined(WIN32) && defined(USE_WIN32DLL)
+ set_path_env();
+#endif /*WIN32 && USE_WIN32DLL*/
InitTimer();
diff --git a/mplayer.c b/mplayer.c
index 52a9336f2a..6eae412a5a 100644
--- a/mplayer.c
+++ b/mplayer.c
@@ -1119,35 +1119,7 @@ int gui_no_filename=0;
#endif /* defined(ARCH_X86) || defined(ARCH_X86_64) */
#if defined(WIN32) && defined(USE_WIN32DLL)
-{ /*make our codec dirs available for LoadLibraryA()*/
- char tmppath[MAX_PATH*2 + 1];
- char win32path[MAX_PATH];
- char realpath[MAX_PATH];
-#ifdef __CYGWIN__
- cygwin_conv_to_full_win32_path(WIN32_PATH,win32path);
- strcpy(tmppath,win32path);
-#ifdef USE_REALCODECS
- cygwin_conv_to_full_win32_path(REALCODEC_PATH,realpath);
- sprintf(tmppath,"%s;%s",win32path,realpath);
-#endif /*USE_REALCODECS*/
-#else
- if(!strstr(WIN32_PATH,":")){
- GetModuleFileNameA(NULL, win32path, MAX_PATH);
- strcpy(win32path + strlen(win32path) - strlen("mplayer.exe"), WIN32_PATH);
- }
- else strcpy(win32path,WIN32_PATH);
- strcpy(tmppath,win32path);
-#ifdef USE_REALCODECS
- if(!strstr(REALCODEC_PATH,":")){
- GetModuleFileNameA(NULL, realpath, MAX_PATH);
- strcpy(realpath + strlen(realpath) - strlen("mplayer.exe"), REALCODEC_PATH);
- }
- else strcpy(realpath,REALCODEC_PATH);
- sprintf(tmppath,"%s;%s",win32path,realpath);
-#endif /*USE_REALCODECS*/
-#endif /*__CYGWIN__*/
- SetEnvironmentVariableA("PATH", tmppath);
-}
+ set_path_env();
#endif /*WIN32 && USE_WIN32DLL*/
#ifdef USE_TV