is not mere pedantry --- it has been a problem in practice. For instance,
some non-GNU programs define functions named @code{getline} that have
nothing to do with this library's @code{getline}. They would not be
-compilable if all features were enabled indescriminantly.
+compilable if all features were enabled indescriminantly.
This should not be used to verify that a program conforms to a limited
standard. It is insufficent for this purpose, as it will not protect you
from including header files outside the standard, or relying on semantics
-undefined within the standard.
+undefined within the standard.
@comment (none)
@comment POSIX.1
@comment (none)
@comment GNU
+@defvr Macro _ISOC99_SOURCE
+Until the revides @w{ISO C} standard is widely adopted the new features
+are not automatically enabled. The GNU libc nevertheless has a complete
+implementation of the new standard and to enable the new features the
+macro @code{_ISOC99_SOURCE} should be defined.
+@end defvr
+
+@comment (none)
+@comment GNU
@defvr Macro _GNU_SOURCE
-If you define this macro, everything is included: @w{ISO C}, POSIX.1,
-POSIX.2, BSD, SVID, X/Open, LFS, and GNU extensions. In the cases where
-POSIX.1 conflicts with BSD, the POSIX definitions take precedence.
+If you define this macro, everything is included: @w{ISO C89}, @w{ISO
+C99}, POSIX.1, POSIX.2, BSD, SVID, X/Open, LFS, and GNU extensions. In
+the cases where POSIX.1 conflicts with BSD, the POSIX definitions take
+precedence.
If you want to get the full effect of @code{_GNU_SOURCE} but make the
BSD definitions take precedence over the POSIX definitions, use this