Another goal of Gnulib is to provide application code that can be shared
between several applications. Some people wonder: "What? glibc doesn't
have a function to copy a file?" Indeed, the scope of a system's libc is
Another goal of Gnulib is to provide application code that can be shared
between several applications. Some people wonder: "What? glibc doesn't
have a function to copy a file?" Indeed, the scope of a system's libc is
access functions to the kernel's system calls, and little more.
There is no clear borderline between both areas.
For example, Gnulib has a facility for generating the name of backup
access functions to the kernel's system calls, and little more.
There is no clear borderline between both areas.
For example, Gnulib has a facility for generating the name of backup
-files. While this task is entirely at the application level --- no
-standard specifies an API for it --- the na@"{@dotless{i}}ve code has
+files. While this task is entirely at the application level---no
+standard specifies an API for it---the na@"{@dotless{i}}ve code has
some portability problems because on some platforms the length of file
name components is limited to 30 characters or so. Gnulib handles
that.
some portability problems because on some platforms the length of file
name components is limited to 30 characters or so. Gnulib handles
that.
Gnulib supports a number of platforms that we call the ``reasonable
portability targets''. This class consists of widespread operating systems,
Gnulib supports a number of platforms that we call the ``reasonable
portability targets''. This class consists of widespread operating systems,
-for three years after their last availability, or --- for proprietary
-operating systems --- as long as the vendor provides commercial support for
+for three years after their last availability, or---for proprietary
+operating systems---as long as the vendor provides commercial support for
it. Already existing Gnulib code for older operating systems is usually
left in place for longer than these three years. So it comes that programs
that use Gnulib run pretty well also on these older operating systems.
it. Already existing Gnulib code for older operating systems is usually
left in place for longer than these three years. So it comes that programs
that use Gnulib run pretty well also on these older operating systems.
glibc systems. With glibc 2.8 or newer, they are frequently tested. With
glibc 2.3 or newer, they are occasionally tested.
@item
glibc systems. With glibc 2.8 or newer, they are frequently tested. With
glibc 2.3 or newer, they are occasionally tested.
@item
10.4, it's rarely tested.
@item
FreeBSD 6.0 or newer is occasionally tested. FreeBSD 5.x is rarely tested.
10.4, it's rarely tested.
@item
FreeBSD 6.0 or newer is occasionally tested. FreeBSD 5.x is rarely tested.
@code{mkancesdirs}, @code{mkdir-p}, @code{euidaccess}, @code{faccessat}.
The versions of Windows that are supported are Windows XP and newer.
@item
@code{mkancesdirs}, @code{mkdir-p}, @code{euidaccess}, @code{faccessat}.
The versions of Windows that are supported are Windows XP and newer.
@item
for the tailored Gnulib part. The module description and include file
specification are for documentation purposes; they are combined into
@file{MODULES.html}.
for the tailored Gnulib part. The module description and include file
specification are for documentation purposes; they are combined into
@file{MODULES.html}.
@item
It ensures consistency of the used autoconf macros and @file{Makefile.am}
rules with the source code. For example, source code which uses the
@item
It ensures consistency of the used autoconf macros and @file{Makefile.am}
rules with the source code. For example, source code which uses the
-@code{getopt_long} function --- this is a common way to implement parsing
-of command line options in a way that complies with the GNU standards ---
-needs the source code (@file{lib/getopt.c} and others), the autoconf macro
+@code{getopt_long} function---this is a common way to implement parsing
+of command line options in a way that complies with the GNU standards---needs
+the source code (@file{lib/getopt.c} and others), the autoconf macro
which detects whether the system's libc already has this function (in
@file{m4/getopt.m4}), and a few @file{Makefile.am} lines that create the
substitute @file{getopt.h} if not. These three pieces belong together.
which detects whether the system's libc already has this function (in
@file{m4/getopt.m4}), and a few @file{Makefile.am} lines that create the
substitute @file{getopt.h} if not. These three pieces belong together.
@subsection Enhancements of ISO C or POSIX functions
These are sometimes POSIX functions with GNU extensions also found in
@subsection Enhancements of ISO C or POSIX functions
These are sometimes POSIX functions with GNU extensions also found in
-glibc --- examples: @samp{getopt}, @samp{fnmatch} --- and often new
-APIs --- for example, for all functions that allocate memory in one way
+glibc---examples: @samp{getopt}, @samp{fnmatch}---and often new
+APIs---for example, for all functions that allocate memory in one way
or the other, we have variants which also include the error checking
against the out-of-memory condition.
@subsection Portable general use facilities
or the other, we have variants which also include the error checking
against the out-of-memory condition.
@subsection Portable general use facilities
-and extended attributes --- or a module for extracting the tail
-component of a file name --- here the portability to Woe32 requires a
-different API than the classical POSIX @code{basename} function.
+and extended attributes---or a module for extracting the tail
+component of a file name---here the portability to native Windows
+requires a different API than the classical POSIX @code{basename} function.
Copying and distribution of this file, with or without modification,
in any medium, are permitted without royalty provided the copyright
notice and this notice are preserved.
Copying and distribution of this file, with or without modification,
in any medium, are permitted without royalty provided the copyright
notice and this notice are preserved.
This file is free software; the Free Software Foundation
gives unlimited permission to copy and/or distribute it,
with or without modifications, as long as this notice is preserved.
This file is free software; the Free Software Foundation
gives unlimited permission to copy and/or distribute it,
with or without modifications, as long as this notice is preserved.
Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.3 or
any later version published by the Free Software Foundation; with no
Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.3 or
any later version published by the Free Software Foundation; with no