+/* #### From reading the Unix 98 specification, it appears that if we
+ want stdio_reader() to be completely correct, we should check for
+ 0 < val < size and if so, check to see if an error has occurred.
+ If an error has occurred, but val is non-zero, we should go ahead
+ and act as if the read was successful, but remember in some fashion
+ or other, that an error has occurred, and report that on the next
+ call to stdio_reader instead of calling fread() again.
+
+ Currently, in such a case, we end up calling fread() twice and we
+ assume that
+
+ 1) this is not harmful, and
+ 2) the error will still be reported on the second read.
+
+ This is probably reasonable, so I don't think we should change this
+ code (it could even be argued that the error might have fixed
+ itself, so we should do the fread() again. */
+
+static ssize_t