In libcpp/files.c the value of S_ISREG() is assigned to a bool variable. AFAIK a non-zero value of S_ISREG does not necessary fit into a bool (unsigned char) so on some systems the file reading is a bit less efficient wrt its buffer size determination.
Please commit after positive review (I don't have commit write rights). John. 2011-05-29 John Tytgat <john.tyt...@aaug.net> * files.c (read_file_guts): Add test on non-zero value of S_ISREG. -- John Tytgat, in his comfy chair at home john.tyt...@aaug.net
Index: libcpp/files.c =================================================================== --- libcpp/files.c (revision 174393) +++ libcpp/files.c (working copy) @@ -595,7 +595,7 @@ return false; } - regular = S_ISREG (file->st.st_mode); + regular = S_ISREG (file->st.st_mode) != 0; if (regular) { /* off_t might have a wider range than ssize_t - in other words,