Fixed OS/2 restriction for dlopening DLLs on OS/2, as

it only works for 7.3 filenames for some reason
(patches by Franz Bakan <fbakan@gmx.net>.
merge-requests/1/head
Gerhard Jaeger 2005-06-30 08:18:29 +00:00
rodzic bce76371c4
commit b0dd4470cc
2 zmienionych plików z 6 dodań i 6 usunięć

Wyświetl plik

@ -378,9 +378,9 @@ load (struct backend *be)
while (dir)
{
#ifdef HAVE_OS2_H /* only max 8.3 names possible for dlls on OS/2 */
snprintf (libname, sizeof (libname), "%s/" PREFIX "%.2s%.6s" POSTFIX,
dir, be->name, strlen(be->name)>8 ? (be->name)+strlen(be->name)-6 :
#ifdef HAVE_OS2_H /* only max 7.3 names work with dlopen() for DLLs on OS/2 */
snprintf (libname, sizeof (libname), "%s/" PREFIX "%.2s%.5s" POSTFIX,
dir, be->name, strlen(be->name)>7 ? (be->name)+strlen(be->name)-5 :
(be->name)+2, V_MAJOR);
#else
snprintf (libname, sizeof (libname), "%s/" PREFIX "%s" POSTFIX,

Wyświetl plik

@ -1,6 +1,6 @@
/* REXX */
/* Convert backend-DLL-filenames according to 8.3 naming convention */
/* necessary for DLLs on OS/2 (C) Franz Bakan 2004 */
/* necessary for DLLs on OS/2 (C) Franz Bakan 2004,2005 */
/* */
/* This file is part of the SANE package. */
/* */
@ -25,8 +25,8 @@ CALL SysLoadFuncs
rc = SysFileTree('\usr\lib\sane\libsane-*.dll',dlls,O)
DO i=1 TO dlls.0
PARSE VALUE dlls.i WITH front 'libsane-' backend '.dll'
IF length(backend) > 8 THEN
COPY dlls.i front||LEFT(backend,2)||RIGHT(backend,6,' ')||'.dll'
IF length(backend) > 7 THEN
COPY dlls.i front||LEFT(backend,2)||RIGHT(backend,5,' ')||'.dll'
ELSE
IF length(backend) > 0 THEN COPY dlls.i front||backend||'.dll'
DEL dlls.i