vlc | branch: master | KO Myung-Hun <[email protected]> | Fri Oct 14 21:22:04 2011 +0900| [9ab620e712c5c4eb61f588ab599cb8a898f69b1c] | committer: Rémi Denis-Courmont
Fix vlc_readdir() for OS/2 Signed-off-by: Rémi Denis-Courmont <[email protected]> > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=9ab620e712c5c4eb61f588ab599cb8a898f69b1c --- src/posix/filesystem.c | 8 ++++++++ 1 files changed, 8 insertions(+), 0 deletions(-) diff --git a/src/posix/filesystem.c b/src/posix/filesystem.c index b33b485..eda796e 100644 --- a/src/posix/filesystem.c +++ b/src/posix/filesystem.c @@ -191,6 +191,7 @@ char *vlc_readdir( DIR *dir ) char *path = NULL; long len = fpathconf (dirfd (dir), _PC_NAME_MAX); +#if !defined(__OS2__) || !defined(__INNOTEK_LIBC__) #ifdef NAME_MAX /* POSIX says there shall we room for NAME_MAX bytes at all times */ if (/*len == -1 ||*/ len < NAME_MAX) @@ -201,6 +202,13 @@ char *vlc_readdir( DIR *dir ) return NULL; #endif len += offsetof (struct dirent, d_name) + 1; +#else /* __OS2__ && __INNOTEK_LIBC__ */ + /* In the implementation of Innotek LIBC, aka kLIBC on OS/2, + * fpathconf (_PC_NAME_MAX) is broken, and d_name is not the last member + * of struct dirent. + * So just allocate as many as the size of struct dirent. */ + len = sizeof (struct dirent); +#endif struct dirent *buf = malloc (len); if (unlikely(buf == NULL)) _______________________________________________ vlc-commits mailing list [email protected] http://mailman.videolan.org/listinfo/vlc-commits
