summaryrefslogtreecommitdiffstats
path: root/get_path.c
diff options
context:
space:
mode:
Diffstat (limited to 'get_path.c')
-rw-r--r--get_path.c38
1 files changed, 38 insertions, 0 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*/