Show quoted text> SmbClient.xs:191:60: macro "readdir" passed 2 arguments, but takes just 1
Quick fix is to insert #undef readdir just above line 191 like this:
--- SmbClient.xs.orig 2005-04-29 13:52:37.000000000 +0200
+++ SmbClient.xs 2005-04-29 14:58:52.000000000 +0200
@@ -188,6 +188,7 @@
#ifdef VERBOSE
fprintf(stderr, "! Filesys::SmbClient : _readdir: %d\n", fd);
#endif
+#undef readdir
dirp = (struct smbc_dirent *)context->readdir(context, fd);
if (dirp) {
XPUSHs(sv_2mortal(newSVnv(dirp->smbc_type)));
This particular readdir macro comes from one of following places:
/usr/include/dirent.h:160:# define readdir readdir64
/usr/include/dirent.h:186:# define readdir_r readdir64_r
/usr/lib/perl/5.8/CORE/config.h:3969:#define READDIR64_R_PROTO
REENTRANT_PROTO_I_TSR /**/
/usr/lib/perl/5.8/CORE/config.h:3982:#define READDIR_R_PROTO
REENTRANT_PROTO_I_TSR /**/
/usr/lib/perl/5.8/CORE/reentr.inc:1322:# define readdir(a)
(readdir_r(a, PL_reentrant_buffer->_readdir_struct,
&PL_reentrant_buffer->_readdir_ptr) == 0 ?
PL_reentrant_buffer->_readdir_ptr : 0)
/usr/lib/perl/5.8/CORE/reentr.inc:1325:# define readdir(a)
(readdir_r(a, PL_reentrant_buffer->_readdir_struct) == 0 ?
PL_reentrant_buffer->_readdir_struct : 0)
/usr/lib/perl/5.8/CORE/reentr.inc:1332:# define readdir64(a)
(readdir64_r(a, PL_reentrant_buffer->_readdir64_struct,
&PL_reentrant_buffer->_readdir64_ptr) == 0 ?
PL_reentrant_buffer->_readdir64_ptr : 0)
/usr/lib/perl/5.8/CORE/reentr.inc:1335:# define readdir64(a)
(readdir64_r(a, PL_reentrant_buffer->_readdir64_struct) == 0 ?
PL_reentrant_buffer->_readdir64_struct : 0)
/usr/lib/perl/5.8/CORE/XSUB.h:391:# define readdir PerlDir_read