> | One of the main DragonFly developers provided a patch, see
> | http://leaf.dragonflybsd.org/mailarchive/users/2008-04/msg00044.html

Thanks. Matthew Dillon added the __sreadahead function just a few days
ago. It is equivalent to gnulib's freadahead function, except that freadahead
returns 0 if ((fp->_flags & __SWR) != 0 || fp->_r < 0).

It looks like the DragonFly developers are recognizing the need for more
API on FILE streams. The freadahead function is just one among ca. 10
such functions that gnulib wants to support.

You find in   http://www.haible.de/bruno/gnu/testdir-stdioext.tar.gz
the documentation and implementation for all systems so far (from BSD
systems to QNX), and a test suite. The documentation/specification is
in the .h files.

To port this package:

  - Unpack the package, configure it. Try "make" and fix the problems.
  - Run "make check" to see the test results.
  - The recommended order of porting (from easy to harder) is:
    fbufmode, fseterr, freadable, fwritable, freading, fwriting,
    fpending, fpurge, freadptr, freadseek, freadahead.

If you want to have the complete liberty to shuffle around fields in the
FILE struct, without risking crashes of programs that use gnulib, and you
add such primitive functions to DragonFly, gnulib will use these primitives
(provided they pass the testsuite).

Bruno

Reply via email to