$OpenBSD: patch-dvdread_dvd_input_c,v 1.2 2003/02/24 22:54:03 espie Exp $ --- dvdread/dvd_input.c.orig Thu Feb 13 22:48:24 2003 +++ dvdread/dvd_input.c Mon Feb 24 23:37:30 2003 @@ -257,6 +257,32 @@ static int file_close(dvd_input_t dev) return 0; } +#ifdef __OpenBSD__ +#include +#include +static void *findlibrary(char *base) +{ + DIR *d; + struct dirent *de; + size_t len; + void *lib = NULL; + + len = strlen(base); + + d = opendir("."); + if (!d) + return lib; + while ((de = readdir(d)) != NULL) { + if (strncmp(de->d_name, base, len) != 0) + continue; + lib = dlopen(de->d_name, RTLD_LAZY); + if (lib) + break; + } + closedir(d); + return lib; +} +#endif /** * Setup read functions with either libdvdcss or minimal DVD access. @@ -275,6 +301,10 @@ int dvdinput_setup(void) #else /* dlopening libdvdcss */ dvdcss_library = dlopen("libdvdcss.so.2", RTLD_LAZY); +#if defined(__OpenBSD__) + if (!dvdcss_library) + dvdcss_library = findlibrary("libdvdcss.so.2."); +#endif if(dvdcss_library != NULL) { #if defined(__OpenBSD__) && !defined(__ELF__)