Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
David Carlier implemented SDL_GetBasePath() for OpenBSD
  • Loading branch information
slouken committed Feb 1, 2016
1 parent 1fb30db commit 4249f46
Showing 1 changed file with 21 additions and 2 deletions.
23 changes: 21 additions & 2 deletions src/filesystem/unix/SDL_sysfilesystem.c
Expand Up @@ -33,7 +33,7 @@
#include <sys/types.h>
#include <limits.h>

#ifdef __FREEBSD__
#if defined(__FREEBSD__) || defined(__OPENBSD__)
#include <sys/sysctl.h>
#endif

Expand Down Expand Up @@ -90,7 +90,26 @@ SDL_GetBasePath(void)
return NULL;
}
}
#elif defined(__SOLARIS__)
#endif
#if defined(__OPENBSD__)
char **retvalargs;
size_t len;
const int mib[] = { CTL_KERN, KERN_PROC_ARGS, getpid(), KERN_PROC_ARGV };
if (sysctl(mib, 4, NULL, &len, NULL, 0) != -1) {
retvalargs = SDL_malloc(len);
if (!retvalargs) {
SDL_OutOfMemory();
return NULL;
}
sysctl(mib, 4, retvalargs, &len, NULL, 0);
retval = SDL_malloc(PATH_MAX + 1);
if (retval)
realpath(retvalargs[0], retval);

SDL_free(retvalargs);
}
#endif
#if defined(__SOLARIS__)
const char *path = getexecname();
if ((path != NULL) && (path[0] == '/')) { /* must be absolute path... */
retval = SDL_strdup(path);
Expand Down

0 comments on commit 4249f46

Please sign in to comment.