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,

Reply via email to