Build library as a shared library using libtool. This will allow developers using the library to just link to the AFF. Without it, developers must link to the static library and the individual libraries necessary on that machine. There is no good way to determine those extra libraries.

Document that af_write may not be called without first setting the image_pagesize value inside of the AFFILE structure. Not doing so causes a divide by zero error. Perhaps we should 1. Check that image_pagesize is not zero and 2. Set image_pagesize to a known good default value when opening a new AFF file for writing.

Check aimage ability to write a file of 1,073,741,825 bytes ((2**30)+1). Correctly reported reading/writing a file that was a 1,073,741,824 random byte stream, but did not pick up the extra byte when it was added to the file. ls -la correctly shows the size with the extra byte. Also, added 42 additional bytes which were not apparently read or written. UPDATE - With 511 bytes added, still didn't read/write full file, however, adding 512 bytes did cause the whole file (1,073,742,336 bytes) to be read/written.

Medium Priority

How about renaming the library to libaff? That would allow developers to link with -laff instead of -lafflib. To my knowledge, there is no existing library named AFF already.

Response: The problem with doing this is that we have AFFLIB.ORG; AFF.ORG is the Arab Film Festival.

Is there a set of segment names that must be defined to have a valid AFF file?

Document that af_open (when writing a file) does more than a standard fopen command. The command writes an AFF stub of some kind to the output file. Users should be cautioned not to use this function as a test, lest they overwrite data.

Does af_open refuse to open a file for writing if it already exists? If so, what kind of error does it return?

Document how to programmatically enumerate all segments and values in a file. That is, explain how to get the output of $ afinfo -a.