diff options
-rw-r--r-- | lib/draw/curses.c | 17 |
1 files changed, 14 insertions, 3 deletions
diff --git a/lib/draw/curses.c b/lib/draw/curses.c index 30bbd8f..cb1d204 100644 --- a/lib/draw/curses.c +++ b/lib/draw/curses.c @@ -17,11 +17,19 @@ static const char *TTY = "/dev/tty"; #endif #if __APPLE__ - const char *DL_PATH = "libncurses.5.dylib"; + const char *DL_PATH[] = { + "libncursesw.5.dylib", + "libncurses.5.dylib", + NULL + }; #elif _WIN32 # error FIXME: Compile with windows... or use relative path? #else - const char *DL_PATH = "libncursesw.so.5"; + const char *DL_PATH[] = { + "libncursesw.so.5", + "libncurses.so.5", + NULL + }; #endif /* ncurses.h likes to define stuff for us. @@ -310,7 +318,10 @@ static void _bmDrawCursesCrashHandler(int sig) int _bmDrawCursesInit(struct _bmRenderApi *api) { memset(&curses, 0, sizeof(curses)); - curses.handle = dlopen(DL_PATH, RTLD_LAZY); + + unsigned int i; + for (i = 0; DL_PATH[i] && !curses.handle; ++i) + curses.handle = dlopen(DL_PATH[i], RTLD_LAZY); if (!curses.handle) return 0; |