getexecpath

Index: server/unicode.c
--- server/unicode.c.orig
+++ server/unicode.c
@@ -281,6 +281,17 @@ static char *get_nls_dir(void)
 
 #if defined(__linux__) || defined(__FreeBSD_kernel__) || defined(__NetBSD__)
     dir = realpath( "/proc/self/exe", NULL );
+#elif defined (__OpenBSD__)
+    size_t dir_size = PATH_MAX;
+    dir = malloc( dir_size );
+    if (dir)
+    {
+        if (getexecpath(dir, dir_size) != 0)
+        {
+            free( dir );
+            dir = NULL;
+        }
+    }
 #elif defined (__FreeBSD__) || defined(__DragonFly__)
     static int pathname[] = { CTL_KERN, KERN_PROC, KERN_PROC_PATHNAME, -1 };
     size_t dir_size = PATH_MAX;
