X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;ds=sidebyside;f=lib%2Ffreading.c;h=dcdc3d24c8f19ba296fbaffd7bbc4cba5108a525;hb=6cad9c91215eac0f90bbb1f9473ea0f5fce3b085;hp=c5bdd6eee7393a1399cabba6bba14d09af013255;hpb=555c3d668283df0cb7d4d29463db275cff9acecd;p=gnulib.git
diff --git a/lib/freading.c b/lib/freading.c
index c5bdd6eee..dcdc3d24c 100644
--- a/lib/freading.c
+++ b/lib/freading.c
@@ -1,28 +1,27 @@
/* Retrieve information about a FILE stream.
Copyright (C) 2007 Free Software Foundation, Inc.
- This program is free software; you can redistribute it and/or modify
+ This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2, or (at your option)
- any later version.
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
- You should have received a copy of the GNU General Public License along
- with this program; if not, write to the Free Software Foundation,
- Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see . */
#include
/* Specification. */
#include "freading.h"
-/* Don't use glibc's __freading function, see
+/* Don't use glibc's __freading function in glibc < 2.7, see
*/
-#if !(HAVE___FREADING && !defined __GLIBC__)
+#if !(HAVE___FREADING && (!defined __GLIBC__ || __GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 7)))
bool
freading (FILE *fp)
@@ -40,6 +39,9 @@ freading (FILE *fp)
return (fp->_flag & _IOREAD) != 0;
#elif defined __UCLIBC__ /* uClibc */
return (fp->__modeflags & (__FLAG_READONLY | __FLAG_READING)) != 0;
+#elif defined __QNX__ /* QNX */
+ return ((fp->_Mode & 0x2 /* _MOPENW */) == 0
+ || (fp->_Mode & 0x1000 /* _MREAD */) != 0);
#else
#error "Please port gnulib freading.c to your platform!"
#endif