diff get_path.c @ 26056:5ce6348b1a6e

On OS/2, fall back on the directory where MPlayer is installed if both MPLAYER_HOME and HOME are not set. patch by KO Myung-Hun, komh chollian net
author diego
date Sun, 24 Feb 2008 12:41:51 +0000
parents 70437b99ccee
children 3a1a148a9633
line wrap: on
line diff
--- a/get_path.c	Sun Feb 24 12:40:30 2008 +0000
+++ b/get_path.c	Sun Feb 24 12:41:51 2008 +0000
@@ -23,6 +23,11 @@
 #include <windows.h>
 #endif
 
+#ifdef __OS2__
+#define INCL_DOS
+#include <os2.h>
+#endif
+
 char *get_path(const char *filename){
 	char *homedir;
 	char *buff;
@@ -56,6 +61,25 @@
 		exedir[imax]='\0';
 		homedir = exedir;
 	}
+#elif defined(__OS2__)
+    {
+        PPIB ppib;
+        char path[260];
+
+        // Get process info blocks
+        DosGetInfoBlocks(NULL, &ppib);
+
+        // Get full path of the executable
+        DosQueryModuleName(ppib->pib_hmte, sizeof( path ), path);
+
+        // Truncate name part including last backslash
+        *strrchr(path, '\\') = 0;
+
+        // Convert backslash to slash
+        _fnslashify(path);
+
+        homedir = path;
+    }
 #else
 	return NULL;
 #endif