summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/draw/curses.c17
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;