The attached patch fixes DragonFly BSD support in gnulib. The patch is written by Matthew Dillon and is tested by many users as part of GNU m4 pkgsrc package.
regards, -- Hasso Tepper
diff --git a/lib/freadahead.c b/lib/freadahead.c index 610de87..5914326 100644 --- a/lib/freadahead.c +++ b/lib/freadahead.c @@ -65,6 +65,8 @@ freadahead (FILE *fp) + (fp->_Mode & 0x4000 /* _MBYTE */ ? (fp->_Back + sizeof (fp->_Back)) - fp->_Rback : 0); +#elif defined __DragonFly__ /* DragonFly BSD */ + return __sreadahead(fp); #else #error "Please port gnulib freadahead.c to your platform! Look at the definition of fflush, fread, ungetc on your system, then report this to bug-gnulib." #endif diff --git a/lib/freading.c b/lib/freading.c index e201b89..8abf478 100644 --- a/lib/freading.c +++ b/lib/freading.c @@ -46,6 +46,8 @@ freading (FILE *fp) #elif defined __QNX__ /* QNX */ return ((fp->_Mode & 0x2 /* _MOPENW */) == 0 || (fp->_Mode & 0x1000 /* _MREAD */) != 0); +#elif defined __DragonFly__ /* DragonFly BSD */ + return ((((struct __FILE_public *)fp)->_flags & __SRD) != 0); #else #error "Please port gnulib freading.c to your platform!" #endif diff --git a/lib/fseeko.c b/lib/fseeko.c index 536dfaf..12a2a6c 100644 --- a/lib/fseeko.c +++ b/lib/fseeko.c @@ -25,6 +25,17 @@ #include "stdio-impl.h" +#ifdef __DragonFly__ +#undef fseeko + +int +rpl_fseeko (FILE *fp, off_t offset, int whence) +{ + return(fseeko(fp, offset, whence)); +} + +#else /* !__DragonFly__ */ + #undef fseeko #if !HAVE_FSEEKO # undef fseek @@ -111,3 +122,4 @@ rpl_fseeko (FILE *fp, off_t offset, int whence) else return fseeko (fp, offset, whence); } +#endif /* !__DragonFly__ */