Changed all @example to @smallexample; misc changes for formatting.
authorroland <roland>
Mon, 21 Jun 1993 02:07:46 +0000 (02:07 +0000)
committerroland <roland>
Mon, 21 Jun 1993 02:07:46 +0000 (02:07 +0000)
12 files changed:
manual/conf.texi
manual/ctype.texi
manual/errno.texi
manual/filesys.texi
manual/intro.texi
manual/io.texi
manual/job.texi
manual/lang.texi
manual/libc.texinfo
manual/llio.texi
manual/locale.texi
manual/maint.texi

index 997a7e2..d38792d 100644 (file)
@@ -465,7 +465,7 @@ parameter you are interested in, and call @code{sysconf} only if the
 macro is not defined.  For example, here is how to test whether job
 control is supported:
 
-@example
+@smallexample
 @group
 int
 have_job_control (void)
@@ -482,11 +482,11 @@ have_job_control (void)
 #endif
 @}
 @end group
-@end example
+@end smallexample
 
 Here is how to get the value of a numeric limit:
 
-@example
+@smallexample
 int
 get_child_max ()
 @{
@@ -499,7 +499,7 @@ get_child_max ()
   return value;
 #endif
 @}
-@end example
+@end smallexample
 
 @node Minimums
 @section Minimum Values for General Capacity Limits
@@ -832,47 +832,47 @@ integer constants.
 @comment unistd.h
 @comment POSIX.1
 @item _PC_LINK_MAX
-Inquire about the parameter corresponding to @code{LINK_MAX}.
+Inquire about the value of @code{LINK_MAX}.
 
 @comment unistd.h
 @comment POSIX.1
 @item _PC_MAX_CANON
-Inquire about the parameter corresponding to @code{MAX_CANON}.
+Inquire about the value of @code{MAX_CANON}.
 
 @comment unistd.h
 @comment POSIX.1
 @item _PC_MAX_INPUT
-Inquire about the parameter corresponding to @code{MAX_INPUT}.
+Inquire about the value of @code{MAX_INPUT}.
 
 @comment unistd.h
 @comment POSIX.1
 @item _PC_NAME_MAX
-Inquire about the parameter corresponding to @code{NAME_MAX}.
+Inquire about the value of @code{NAME_MAX}.
 
 @comment unistd.h
 @comment POSIX.1
 @item _PC_PATH_MAX
-Inquire about the parameter corresponding to @code{PATH_MAX}.
+Inquire about the value of @code{PATH_MAX}.
 
 @comment unistd.h
 @comment POSIX.1
 @item _PC_PIPE_BUF
-Inquire about the parameter corresponding to @code{PIPE_BUF}.
+Inquire about the value of @code{PIPE_BUF}.
 
 @comment unistd.h
 @comment POSIX.1
 @item _PC_CHOWN_RESTRICTED
-Inquire about the parameter corresponding to @code{_POSIX_CHOWN_RESTRICTED}.
+Inquire about the value of @code{_POSIX_CHOWN_RESTRICTED}.
 
 @comment unistd.h
 @comment POSIX.1
 @item _PC_NO_TRUNC
-Inquire about the parameter corresponding to @code{_POSIX_NO_TRUNC}.
+Inquire about the value of @code{_POSIX_NO_TRUNC}.
 
 @comment unistd.h
 @comment POSIX.1
 @item _PC_VDISABLE
-Inquire about the parameter corresponding to @code{_POSIX_VDISABLE}.
+Inquire about the value of @code{_POSIX_VDISABLE}.
 @end table
 
 @node Utility Limits
@@ -1061,7 +1061,7 @@ is to call it twice: first call it to get the length, allocate the
 buffer accordingly, and then call @code{confstr} again to fill the
 buffer, like this:
 
-@example
+@smallexample
 @group
 char *
 get_default_path (void)
@@ -1078,4 +1078,4 @@ get_default_path (void)
   return buffer;
 @}
 @end group
-@end example
+@end smallexample
index cf62c90..e7a7946 100644 (file)
@@ -34,10 +34,10 @@ character.  It takes one argument, the character to test, and returns a
 nonzero integer if the character is alphabetic, and zero otherwise.  You
 would use it like this:
 
-@example
+@smallexample
 if (isalpha (c))
   printf ("The character `%c' is alphabetic.\n", c);
-@end example
+@end smallexample
 
 Each of the functions in this section tests for membership in a
 particular class of characters; each has a name starting with @samp{is}.
index d8fbe6f..216f87f 100644 (file)
@@ -271,17 +271,6 @@ with passing the wrong argument to a library function.
 @end deftypevr
 
 @comment errno.h
-@comment POSIX.1: Too many open files in system
-@deftypevr Macro int ENFILE
-There are too many distinct file openings in the entire system.  Note
-that any number of linked channels count as just one file opening; see
-@ref{Linked Channels}.
-@c !!! this will never happen in GNU; EMFILE or ENOMEM instead.
-@c ??? I'm not sure it is a good thing to return ENOMEM
-@c ??? in a case where programmers have been told to expect ENFILE--rms.
-@end deftypevr
-
-@comment errno.h
 @comment POSIX.1: Too many open files
 @deftypevr Macro int EMFILE
 The current process has too many files open and can't open any more.
@@ -291,6 +280,14 @@ Duplicate descriptors do count toward this limit.
 @end deftypevr
 
 @comment errno.h
+@comment POSIX.1: Too many open files in system
+@deftypevr Macro int ENFILE
+There are too many distinct file openings in the entire system.  Note
+that any number of linked channels count as just one file opening; see
+@ref{Linked Channels}.  This error never occurs in the GNU system.
+@end deftypevr
+
+@comment errno.h
 @comment POSIX.1: Inappropriate ioctl for device
 @deftypevr Macro int ENOTTY
 Inappropriate I/O control operation, such as trying to set terminal
@@ -728,9 +725,8 @@ to say, it is the same as @code{program_invocation_name} minus
 everything up to the last slash, if any.)
 @end deftypevar
 
-Both @code{program_invocation_name} and
-@code{program_invocation_short_name} are set up by the system before
-@code{main} is called.
+The library initialization code sets up both of these variables before
+calling @code{main}.
 
 @strong{Portability Note:} These two variables are GNU extensions.  If
 you want your program to work with non-GNU libraries, you must save the
@@ -750,7 +746,7 @@ calls before passing the error code to @code{strerror}, we'd have to
 save it in a local variable instead, because those other library
 functions might overwrite @code{errno} in the meantime.
 
-@example
+@smallexample
 #include <errno.h>
 #include <stdio.h>
 #include <stdlib.h>
@@ -770,5 +766,5 @@ open_sesame (char *name)
   @} else
     return stream;
 @}
-@end example
+@end smallexample
 
index f679483..64ca358 100644 (file)
@@ -87,7 +87,7 @@ Here is an example showing how you could implement the behavior of GNU's
 @w{@code{getcwd (NULL, 0)}} using only the standard behavior of
 @code{getcwd}:
 
-@example
+@smallexample
 char *
 gnu_getcwd ()
 @{
@@ -104,7 +104,7 @@ gnu_getcwd ()
       buffer = (char *) xmalloc (size);
     @}
 @}
-@end example
+@end smallexample
 
 @noindent
 @xref{Malloc Examples}, for information about @code{xmalloc}, which is
@@ -300,9 +300,9 @@ The @var{dirstream} argument is not valid.
 Here's a simple program that prints the names of the files in
 the current working directory:
 
-@example
+@smallexample
 @include dir.c.texi
-@end example
+@end smallexample
 
 The order in which files appear in a directory tends to be fairly
 random.  A more useful program would sort the entries (perhaps by
@@ -519,7 +519,7 @@ If the return value equals @var{size}, you cannot tell whether or not
 there was room to return the entire name.  So make a bigger buffer and
 call @code{readlink} again.  Here is an example:
 
-@example
+@smallexample
 char *
 readlink_malloc (char *filename)
 @{
@@ -535,7 +535,7 @@ readlink_malloc (char *filename)
       size *= 2;
     @}
 @}
-@end example
+@end smallexample
 
 @c @group  Invalid outside example.
 A value of @code{-1} is returned in case of error.  In addition to the
@@ -910,9 +910,9 @@ disk.
 You can tell (approximately) whether a file is sparse by comparing this
 value with @code{st_size}, like this:
 
-@example
+@smallexample
 (st.st_blocks * 512 < st.st_size)
-@end example
+@end smallexample
 
 This test is not perfect because a file that is just slightly sparse
 might not be detected as sparse at all.  For practical applications,
@@ -1094,16 +1094,16 @@ compatibility with BSD.  The mode can be bitwise ANDed with
 @code{S_IFMT} to extract the file type code, and compared to the
 appropriate type code constant.  For example,
 
-@example
+@smallexample
 S_ISCHR (@var{mode})
-@end example
+@end smallexample
 
 @noindent
 is equivalent to:
 
-@example
+@smallexample
 ((@var{mode} & S_IFMT) == S_IFCHR)
-@end example
+@end smallexample
 
 @comment sys/stat.h
 @comment BSD
@@ -1496,14 +1496,14 @@ creation mask.
 Here is an example showing how to read the mask with @code{umask}
 without changing it permanently:
 
-@example
+@smallexample
 mode_t
 read_umask (void)
 @{
   mask = umask (0);
   umask (mask);
 @}
-@end example
+@end smallexample
 
 @noindent
 However, it is better to use @code{getumask} if you just want to read
index 492d8e2..634e2ff 100644 (file)
@@ -115,7 +115,7 @@ to write programs to work portably under multiple C dialects, but does
 not aim for completeness.
 
 @node POSIX, Berkeley Unix, ANSI C, Standards and Portability
-@subsection POSIX (The Portable Operating System Interface)
+@subsection @sc{posix} (The Portable Operating System Interface)
 @cindex POSIX
 @cindex POSIX.1
 @cindex IEEE Std 1003.1
@@ -181,7 +181,7 @@ The BSD facilities include symbolic links (@pxref{Symbolic Links}), the
 functions (@pxref{BSD Signal Handling}), and sockets (@pxref{Sockets}).
 
 @node SVID,  , Berkeley Unix, Standards and Portability
-@subsection SVID (The System V Interface Description)
+@subsection @sc{svid} (The System V Interface Description)
 @cindex SVID
 @cindex System V Unix
 @cindex Unix, System V
@@ -248,9 +248,9 @@ Header files are included into a program source file by the
 @samp{#include} preprocessor directive.  The C language supports two
 forms of this directive; the first,
 
-@example
+@smallexample
 #include "@var{header}"
-@end example
+@end smallexample
 
 @noindent
 is typically used to include a header file @var{header} that you write
@@ -258,9 +258,9 @@ yourself; this would contain definitions and declarations describing the
 interfaces between the different parts of your particular application.
 By contrast,
 
-@example
+@smallexample
 #include <file.h>
-@end example
+@end smallexample
 
 @noindent
 is typically used to include a header file @file{file.h} that contains
@@ -347,30 +347,30 @@ explicitly in the description of that facility.
 For example, suppose the header file @file{stdlib.h} declares a function
 named @code{abs} with
 
-@example
+@smallexample
 extern int abs (int);
-@end example
+@end smallexample
 
 @noindent
 and also provides a macro definition for @code{abs}.  Then, in:
 
-@example
+@smallexample
 #include <stdlib.h>
 int f (int *i) @{ return (abs (++*i)); @}
-@end example
+@end smallexample
 
 @noindent
 the reference to @code{abs} might refer to either a macro or a function.
 On the other hand, in each of the following examples the reference is
 to a function and not a macro.
 
-@example
+@smallexample
 #include <stdlib.h>
 int g (int *i) @{ return ((abs)(++*i)); @}
 
 #undef abs
 int h (int *i) @{ return (abs (++*i)); @}
-@end example
+@end smallexample
 
 Since macro definitions that double for a function behave in
 exactly the same way as the actual function version, there is usually no
@@ -523,11 +523,11 @@ The header file @file{termios.h} reserves names prefixed with @samp{c_},
 The exact set of features available when you compile a source file
 is controlled by which @dfn{feature test macros} you define.
 
-If you compile your programs using @samp{gcc -ansi}, you get only
-the ANSI C library features, unless you explicitly request additional
+If you compile your programs using @samp{gcc -ansi}, you get only the
+ANSI C library features, unless you explicitly request additional
 features by defining one or more of the feature macros.
-@xref{Options,,, gcc.info, The GNU CC Manual}, for more information
-about GCC options.@refill
+@xref{Invoking GCC,, GNU CC Command Options, gcc.info, The GNU CC Manual},
+for more information about GCC options.@refill
 
 You should define these macros by using @samp{#define} preprocessor
 directives at the top of your source code files.  You could also use 
@@ -563,6 +563,19 @@ Some of the features derived from 4.3 BSD Unix conflict with the
 corresponding features specified by the POSIX.1 standard.  If this
 macro is defined, the 4.3 BSD definitions take precedence over the
 POSIX definitions.
+
+Due to the nature of some of the conflicts between 4.3 BSD and POSIX.1,
+you need to use a special @dfn{BSD compatibility library} when linking
+programs compiled for BSD compatibility.  This is because some functions
+must be defined in two different ways, one of them in the normal C
+library, and one of them in the compatibility library.  If your program
+defines @code{_BSD_SOURCE}, you must give the option @samp{-lbsd-compat}
+to the compiler or linker when linking the program, to tell it to find
+functions in this special compatibility library before looking for them in
+the normal C library.
+@pindex -lbsd-compat
+@pindex bsd-compat
+@cindex BSD compatibility library.
 @end defvr
 
 @comment (none)
@@ -583,11 +596,15 @@ 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
 sequence of definitions:
 
-@example
+@smallexample
 #define _GNU_SOURCE
 #define _BSD_SOURCE
 #define _SVID_SOURCE
-@end example
+@end smallexample
+
+Note that if you do this, you may need to link your program with the BSD
+compatibility library by passing the @samp{-lbsd-compat} option to the
+compiler or linker.
 @end defvr
 
 We recommend you use @code{_GNU_SOURCE} in new programs.
index 869a0a5..aa60d93 100644 (file)
@@ -249,8 +249,9 @@ process; otherwise the file name resolution fails.
 If a file name begins with a @samp{/}, the first component in the file
 name is located in the @dfn{root directory} of the process.  Such a file
 name is called an @dfn{absolute file name}.
-@c !!! xref here to chroot, if we ever document chroot.
+@c !!! xref here to chroot, if we ever document chroot. -rm
 @c ??? I don't like the idea of encouraging smoking--rms.
+@c !!! What the hell is that bad pun supposed to mean?  I don't get it.  -rm
 
 @cindex relative file name
 Otherwise, the first component in the file name is located in the
index 19ffae9..12bbef8 100644 (file)
@@ -269,7 +269,7 @@ set of subprocesses linked together with pipes.  The @code{process} type
 holds information about a single subprocess.  Here are the relevant
 data structure declarations:
 
-@example
+@smallexample
 @group
 /* @r{A process is a single process.}  */
 typedef struct process
@@ -299,12 +299,12 @@ typedef struct job
 /* @r{The active jobs are linked into a list.  This is its head.}   */
 job *first_job = NULL;
 @end group
-@end example
+@end smallexample
 
 Here are some utility functions that are used for operating on @code{job}
 objects.
 
-@example
+@smallexample
 @group
 /* @r{Find the active job with the indicated @var{pgid}.}  */
 job *
@@ -346,7 +346,7 @@ job_is_completed (job *j)
   return 1;
 @}
 @end group
-@end example
+@end smallexample
 
 
 @node Initializing the Shell, Launching Jobs, Data Structures, Implementing a Shell
@@ -395,7 +395,7 @@ you must remember to make the shell do it.
 Here is the initialization code for the sample shell that shows how to
 do all of this.
 
-@example
+@smallexample
 /* @r{Keep track of attributes of the shell.}  */
 
 #include <sys/types.h>
@@ -448,7 +448,7 @@ init_shell ()
       tcgetattr (shell_terminal, &shell_tmodes);
     @}
 @}
-@end example
+@end smallexample
 
 
 @node Launching Jobs, Foreground and Background, Initializing the Shell, Implementing a Shell
@@ -521,7 +521,7 @@ Here is the function from the sample shell program that is responsible
 for launching a program.  The function is executed by each child process
 immediately after it has been forked by the shell, and never returns.
 
-@example
+@smallexample
 void
 launch_process (process *p, pid_t pgid,
                 int infile, int outfile, int errfile,
@@ -572,7 +572,7 @@ launch_process (process *p, pid_t pgid,
   perror ("execvp");
   exit (1);
 @}
-@end example
+@end smallexample
 
 If the shell is not running interactively, this function does not do
 anything with process groups or signals.  Remember that a shell not
@@ -584,7 +584,7 @@ After creating the child processes, this function calls some other
 functions to put the newly created job into the foreground or background;
 these are discussed in @ref{Foreground and Background}.
 
-@example
+@smallexample
 void
 launch_job (job *j, int foreground)
 @{
@@ -612,7 +612,8 @@ launch_job (job *j, int foreground)
       pid = fork ();
       if (pid == 0)
         /* @r{This is the child process.}  */
-        launch_process (p, j->pgid, infile, outfile, j->stderr, foreground);
+        launch_process (p, j->pgid, infile,
+                        outfile, j->stderr, foreground);
       else if (pid < 0)
         @{
           /* @r{The fork failed.}  */
@@ -648,7 +649,7 @@ launch_job (job *j, int foreground)
   else
     put_job_in_background (j, 0);
 @}
-@end example
+@end smallexample
 
 
 @node Foreground and Background, Stopped and Terminated Jobs, Launching Jobs, Implementing a Shell
@@ -682,7 +683,7 @@ continued.  The functions for dealing with terminal modes are
 
 Here is the sample shell's function for doing all of this.
 
-@example
+@smallexample
 @group
 /* @r{Put job @var{j} in the foreground.  If @var{cont} is nonzero,}
    @r{restore the saved terminal modes and send the process group a}
@@ -717,7 +718,7 @@ put_job_in_foreground (job *j, int cont)
   tcsetattr (shell_terminal, TCSADRAIN, &shell_tmodes);
 @}
 @end group
-@end example
+@end smallexample
 
 @cindex background job, launching
 If the process group is launched as a background job, the shell should
@@ -727,7 +728,7 @@ the terminal.
 In the sample shell, there is not much that needs to be done to put
 a job into the background.  Here is the function it uses:
 
-@example
+@smallexample
 /* @r{Put a job in the background.  If the cont argument is true, send}
    @r{the process group a @code{SIGCONT} signal to wake it up.}  */
 
@@ -739,7 +740,7 @@ put_job_in_background (job *j, int cont)
     if (kill (-j->pgid, SIGCONT) < 0)
       perror ("kill (SIGCONT)");
 @}
-@end example
+@end smallexample
 
 
 @node Stopped and Terminated Jobs, Continuing Stopped Jobs, Foreground and Background, Implementing a Shell
@@ -776,7 +777,7 @@ called from within this handler.
 Here are the parts of the sample shell program that deal with checking
 the status of jobs and reporting the information to the user.
 
-@example
+@smallexample
 @group
 /* @r{Store the status of the process @var{pid} that was returned by waitpid.}
    @r{Return 0 if all went well, nonzero otherwise.}  */
@@ -911,7 +912,7 @@ do_job_notification (void)
     @}
 @}
 @end group
-@end example
+@end smallexample
 
 @node Continuing Stopped Jobs, Missing Pieces, Stopped and Terminated Jobs, Implementing a Shell
 @subsection Continuing Stopped Jobs
@@ -924,19 +925,18 @@ the terminal, and restore the saved terminal settings.  After continuing
 a job in the foreground, the shell should wait for the job to stop or
 complete, as if the job had just been launched in the foreground.
 
-The sample shell program uses the same set of
-functions---@w{@code{put_job_in_foreground}} and
-@w{@code{put_job_in_background}}---to handle both newly created and
-continued jobs.  The definitions of these functions were given in
-@ref{Foreground and Background}.  When continuing a stopped job, a
-nonzero value is passed as the @var{cont} argument to ensure that the
-@code{SIGCONT} signal is sent and the terminal modes reset, as
-appropriate.
+The sample shell program handles both newly created and continued jobs
+with the same pair of functions, @w{@code{put_job_in_foreground}} and
+@w{@code{put_job_in_background}}.  The definitions of these functions
+were given in @ref{Foreground and Background}.  When continuing a
+stopped job, a nonzero value is passed as the @var{cont} argument to
+ensure that the @code{SIGCONT} signal is sent and the terminal modes
+reset, as appropriate.
 
 This leaves only a function for updating the shell's internal bookkeeping
 about the job being continued:
 
-@example
+@smallexample
 @group
 /* @r{Mark a stopped job J as being running again.}  */
 
@@ -964,7 +964,7 @@ continue_job (job *j, int foreground)
     put_job_in_background (j, 1);
 @}
 @end group
-@end example
+@end smallexample
 
 @node Missing Pieces,  , Continuing Stopped Jobs, Implementing a Shell
 @subsection The Missing Pieces
@@ -1101,8 +1101,8 @@ you get.  Specifically, you get the BSD version if you define
 BSD systems will not include @file{unistd.h}, which defines
 @code{getpgrp} specially under @code{_BSD_SOURCE}.  You must link such
 programs with the @code{-lbsd-compat} option to get the BSD definition.@refill
-@findex -lbsd-compat
-@findex bsd-compat
+@pindex -lbsd-compat
+@pindex bsd-compat
 @cindex BSD compatibility library
 
 @comment unistd.h
index 5e30ef3..9357734 100644 (file)
@@ -1,5 +1,5 @@
 @node Language Features, Library Summary, System Configuration, Top
-@appendix C Language Facilities Implemented By the Library
+@appendix C Language Facilities in the Library
 
 Some of the facilities implemented by the C library really should be
 thought of as parts of the C language itself.  These facilities ought to
@@ -56,9 +56,9 @@ If @code{NDEBUG} is not defined, @code{assert} tests the value of
 program (@pxref{Aborting a Program}) after printing a message of the
 form:
 
-@example
+@smallexample
 @file{@var{file}}:@var{linenum}: Assertion `@var{expression}' failed.
-@end example
+@end smallexample
 
 @noindent
 on the standard error stream @code{stderr} (@pxref{Standard Streams}).
@@ -209,13 +209,13 @@ and then tack on @samp{@dots{}} to indicate the possibility of
 additional arguments.  The syntax of ANSI C requires at least one fixed
 argument before the @samp{@dots{}}.  For example,
 
-@example
+@smallexample
 int 
 func (const char *a, int b, @dots{})
 @{
   @dots{}
 @}     
-@end example
+@end smallexample
 
 @noindent
 outlines a definition of a function @code{func} which returns an
@@ -437,9 +437,9 @@ this function is sufficient to illustrate how to use the variable
 arguments facility.
 
 @comment Yes, this example has been tested.
-@example
+@smallexample
 @include add.c.texi
-@end example
+@end smallexample
 
 @node Old Varargs
 @subsubsection Old-Style Variadic Functions
@@ -457,19 +457,19 @@ There is no difference in how you call a variadic function;
 them.  First of all, you must use old-style non-prototype syntax, like
 this:
 
-@example
+@smallexample
 tree
 build (va_alist)
      va_dcl
 @{
-@end example
+@end smallexample
 
 Secondly, you must give @code{va_start} just one argument, like this:
 
-@example
+@smallexample
   va_list p;
   va_start (p);
-@end example
+@end smallexample
 
 These are the special macros used for defining old-style variadic
 functions:
@@ -580,12 +580,12 @@ happens to be @code{unsigned long int} on your system.  To avoid any
 possibility of error, when a function argument or value is supposed to
 have type @code{size_t}, never declare its type in any other way.
 
-@strong{Compatibility Note:} Pre-ANSI C implementations generally used
-@code{unsigned int} for representing object sizes and @code{int} for
-pointer subtraction results.  They did not necessarily define either
-@code{size_t} or @code{ptrdiff_t}.  Unix systems did define
-@code{size_t}, in @file{sys/types.h}, but the definition was usually a
-signed type.
+@strong{Compatibility Note:} Implementations of C before the advent of
+ANSI C generally used @code{unsigned int} for representing object sizes
+and @code{int} for pointer subtraction results.  They did not
+necessarily define either @code{size_t} or @code{ptrdiff_t}.  Unix
+systems did define @code{size_t}, in @file{sys/types.h}, but the
+definition was usually a signed type.
 
 @node Data Type Measurements
 @section Data Type Measurements
@@ -615,9 +615,9 @@ The most common reason that a program needs to know how many bits are in
 an integer type is for using an array of @code{long int} as a bit vector.
 You can access the bit at index @var{n} with
 
-@example
+@smallexample
 vector[@var{n} / LONGBITS] & (1 << (@var{n} % LONGBITS))
-@end example
+@end smallexample
 
 @noindent
 provided you define @code{LONGBITS} as the number of bits in a
@@ -638,9 +638,9 @@ The value has type @code{int}.
 You can compute the number of bits in any data type @var{type} like
 this:
 
-@example
+@smallexample
 sizeof (@var{type}) * CHAR_BIT
-@end example
+@end smallexample
 @end table
 
 @node Range of Type
@@ -941,7 +941,7 @@ supported are suitable.
 This value characterizes the rounding mode for floating point addition.
 The following values indicate standard rounding modes:
 
-@c !!! want @group or somesuch near here
+@need 750
 
 @table @code
 @item -1
@@ -967,13 +967,13 @@ Here is a table showing how certain values round for each possible value
 of @code{FLT_ROUNDS}, if the other aspects of the representation match
 the IEEE single-precision standard.
 
-@example
-                 0       1              2              3
- 1.00000003     1.0     1.0            1.00000012     1.0
- 1.00000007     1.0     1.00000012     1.00000012     1.0
--1.00000003    -1.0    -1.0           -1.0           -1.00000012
--1.00000007    -1.0    -1.00000012    -1.0           -1.00000012
-@end example
+@smallexample
+                0      1             2             3
+ 1.00000003    1.0    1.0           1.00000012    1.0
+ 1.00000007    1.0    1.00000012    1.00000012    1.0
+-1.00000003   -1.0   -1.0          -1.0          -1.00000012
+-1.00000007   -1.0   -1.00000012   -1.0          -1.00000012
+@end smallexample
 
 @comment float.h
 @comment ANSI
@@ -991,11 +991,11 @@ mantissa for the @code{float} data type.  The following expression
 yields @code{1.0} (even though mathematically it should not) due to the
 limited number of mantissa digits:
 
-@example
+@smallexample
 float radix = FLT_RADIX;
 
 1.0f + 1.0f / radix / radix / @dots{} / radix
-@end example
+@end smallexample
 
 @noindent
 where @code{radix} appears @code{FLT_MANT_DIG} times.
@@ -1167,7 +1167,7 @@ So, for an implementation that uses this representation for the
 @code{float} data type, appropriate values for the corresponding
 parameters are:
 
-@example
+@smallexample
 FLT_RADIX                             2
 FLT_MANT_DIG                         24
 FLT_DIG                               6
@@ -1178,11 +1178,11 @@ FLT_MAX_10_EXP                      +38
 FLT_MIN                 1.17549435E-38F
 FLT_MAX                 3.40282347E+38F
 FLT_EPSILON             1.19209290E-07F
-@end example
+@end smallexample
 
 Here are the values for the @code{double} data type:
 
-@example
+@smallexample
 DBL_MANT_DIG                         53
 DBL_DIG                              15
 DBL_MIN_EXP                       -1021
@@ -1192,7 +1192,7 @@ DBL_MAX_10_EXP                      308
 DBL_MAX         1.7976931348623157E+308
 DBL_MIN         2.2250738585072014E-308
 DBL_EPSILON     2.2204460492503131E-016
-@end example
+@end smallexample
 
 @node Structure Measurement
 @subsection Structure Field Offset Measurement
index a6efb9b..be49988 100644 (file)
@@ -5,9 +5,11 @@
 @setchapternewpage odd
 @comment %**end of header (This is for running Texinfo on a region.)
 
+@smallbook
+
 @set EDITION 0.04 (Preliminary)
 @set VERSION 1.07 Beta
-@set UPDATED 10 June 1993
+@set UPDATED 20 June 1993
 
 @ifinfo
 This file documents the GNU C library.
index f935d61..6b30b83 100644 (file)
@@ -222,18 +222,18 @@ and @code{freopen} functions, that create streams.
 @comment fcntl.h
 @comment POSIX.1
 @deftypefn {Obsolete function} int creat (const char *@var{filename}, mode_t @var{mode})
-This function is obsolete.  The call
+This function is obsolete.  The call:
 
-@example
+@smallexample
 creat (@var{filename}, @var{mode})
-@end example
+@end smallexample
 
 @noindent
-is equivalent to
+is equivalent to:
 
-@example
+@smallexample
 open (@var{filename}, O_WRONLY | O_CREAT | O_TRUNC, @var{mode})
-@end example
+@end smallexample
 @end deftypefn
 
 @comment unistd.h
@@ -263,12 +263,13 @@ conditions are defined for this function:
 The @var{filedes} argument is not a valid file descriptor.
 
 @item EINTR
-The call was interrupted by a signal.  @xref{Interrupted Primitives}.
-Here's an example of how to handle @code{EINTR} properly:
+The @code{close} call was interrupted by a signal.
+@xref{Interrupted Primitives}.
+Here is an example of how to handle @code{EINTR} properly:
 
-@example
+@smallexample
 TEMP_FAILURE_RETRY (close (desc));
-@end example
+@end smallexample
 @end table
 @end deftypefun
 
@@ -440,9 +441,9 @@ error was @code{EINTR}, you should simply repeat the call.
 @xref{Interrupted Primitives}.  The easy way to do this is with the
 macro @code{TEMP_FAILURE_RETRY}, as follows:
 
-@example
+@smallexample
 nbytes = TEMP_FAILURE_RETRY (write (desc, buffer, count));
-@end example
+@end smallexample
 
 The @code{write} function is the underlying primitive for all of the
 functions that write to streams, such as @code{fputc}.
@@ -531,7 +532,8 @@ Descriptors that come from separate calls to @code{open} have independent
 file positions; using @code{lseek} on one descriptor has no effect on the
 other.  For example, 
 
-@example
+@smallexample
+@group
 @{
   int d1, d2;
   char buf[4];
@@ -540,7 +542,8 @@ other.  For example,
   lseek (d1, 1024, SEEK_SET);
   read (d2, buf, 4);
 @}
-@end example
+@end group
+@end smallexample
 
 @noindent
 will read the first four characters of the file @file{foo}.  (The
@@ -552,7 +555,7 @@ position with the original descriptor that was duplicated.  Anything
 which alters the file position of one of the duplicates, including
 reading or writing data, affects all of them alike.  Thus, for example,
 
-@example
+@smallexample
 @{
   int d1, d2, d3;
   char buf1[4], buf2[4];
@@ -563,7 +566,7 @@ reading or writing data, affects all of them alike.  Thus, for example,
   read (d1, buf1, 4);
   read (d2, buf2, 4);
 @}
-@end example
+@end smallexample
 
 @noindent
 will read four characters starting with the 1024'th character of
@@ -673,7 +676,7 @@ standard error output.
 @cindex standard error file descriptor
 
 @node Stream/Descriptor Precautions
-@section Precautions for Mixing Streams and Descriptors
+@section Dangers of Mixing Streams and Descriptors
 @cindex channels
 @cindex streams and descriptors
 @cindex descriptors and streams
@@ -964,9 +967,9 @@ timeout period for reading from a file descriptor.  The @code{input_timeout}
 function blocks the calling process until input is available on the
 file descriptor, or until the timeout period expires.
 
-@example
+@smallexample
 @include select.c.texi
-@end example
+@end smallexample
 
 There is another example showing the use of @code{select} to multiplex
 input from multiple sockets in @ref{Server Example}.
@@ -1085,10 +1088,10 @@ were closed first.
 If @var{old} and @var{new} are different numbers, and @var{old} is a
 valid descriptor number, then @code{dup2} is equivalent to:
 
-@example
+@smallexample
 close (@var{new});
 fcntl (@var{old}, F_DUPFD, @var{new})
-@end example
+@end smallexample
 
 However, @code{dup2} does this atomically; there is no instant in the
 middle of calling @code{dup2} at which @var{new} is closed and not yet a
@@ -1103,9 +1106,9 @@ copy the file descriptor given as the first argument.
 
 The form of the call in this case is:
 
-@example
+@smallexample
 fcntl (@var{old}, F_DUPFD, @var{next_filedes})
-@end example
+@end smallexample
 
 The @var{next_filedes} argument is of type @code{int} and specifies that
 the file descriptor returned should be the next available one greater
@@ -1149,7 +1152,7 @@ invoked.
 So, to redirect standard input to a file, the shell could do something
 like:
 
-@example
+@smallexample
 pid = fork ();
 if (pid == 0)
   @{
@@ -1162,7 +1165,7 @@ if (pid == 0)
     TEMP_FAILURE_RETRY (close (file));
     execv (program, NULL);
   @}
-@end example
+@end smallexample
 
 There is also a more detailed example showing how to implement redirection
 in the context of a pipeline of processes in @ref{Launching Jobs}.
@@ -1214,9 +1217,9 @@ specify that it should set the file descriptor flags associated with the
 @var{filedes} argument.  This requires a third @code{int} argument to
 specify the new flags, so the form of the call is:
 
-@example
+@smallexample
 fcntl (@var{filedes}, F_SETFD, @var{new_flags})
-@end example
+@end smallexample
 
 The normal return value from @code{fcntl} with this command is an
 unspecified value other than @code{-1}, which indicates an error.
@@ -1246,7 +1249,7 @@ program may be run years from now and more flags may exist then.  For
 example, here is a function to set or clear the flag @code{FD_CLOEXEC}
 without altering any other flags:
 
-@example
+@smallexample
 /* @r{Set the @code{FD_CLOEXEC} flag of @var{desc} if @var{value} is nonzero,}
    @r{or clear the flag if @var{value} is 0.}
    @r{Return 0 on success, or -1 on error with @code{errno} set.} */ 
@@ -1266,7 +1269,7 @@ set_cloexec_flag (int desc, int value)
   /* @r{Store modified flag word in the descriptor.} */
   return fcntl (desc, F_SETFD, oldflags);
 @}
-@end example
+@end smallexample
 
 @node File Status Flags
 @section File Status Flags
@@ -1323,9 +1326,9 @@ the file status flags for the open file corresponding to the
 @var{filedes} argument.  This command requires a third @code{int}
 argument to specify the new flags, so the call looks like this:
 
-@example
+@smallexample
 fcntl (@var{filedes}, F_SETFL, @var{new_flags})
-@end example
+@end smallexample
 
 You can't change the access mode for the file in this way; that is,
 whether the file descriptor was opened for reading or writing.  You can
@@ -1389,7 +1392,7 @@ may be run years from now and more flags may exist then.  For example,
 here is a function to set or clear the flag @code{O_NONBLOCK} without
 altering any other flags:
 
-@example
+@smallexample
 @group
 /* @r{Set the @code{O_NONBLOCK} flag of @var{desc} if @var{value} is nonzero,}
    @r{or clear the flag if @var{value} is 0.}
@@ -1411,7 +1414,7 @@ set_nonblock_flag (int desc, int value)
   return fcntl (desc, F_SETFL, oldflags);
 @}
 @end group
-@end example
+@end smallexample
 
 @node File Locks
 @section File Locks
@@ -1495,9 +1498,9 @@ specify that it should get information about a lock.  This command
 requires a third argument of type @w{@code{struct flock *}} to be passed
 to @code{fcntl}, so that the form of the call is:
 
-@example
+@smallexample
 fcntl (@var{filedes}, F_GETLK, @var{lockp})
-@end example
+@end smallexample
 
 If there is a lock already in place that would block the lock described
 by the @var{lockp} argument, information about that lock overwrites
@@ -1539,9 +1542,9 @@ specify that it should set or clear a lock.  This command requires a
 third argument of type @w{@code{struct flock *}} to be passed to
 @code{fcntl}, so that the form of the call is:
 
-@example
+@smallexample
 fcntl (@var{filedes}, F_SETLK, @var{lockp})
-@end example
+@end smallexample
 
 If the process already has a lock on any part of the region, the old lock
 on that part is replaced with the new lock.  You can remove a lock
@@ -1707,9 +1710,9 @@ specify that it should set the process or process group to which
 of type @code{pid_t} to be passed to @code{fcntl}, so that the form of
 the call is:
 
-@example
+@smallexample
 fcntl (@var{filedes}, F_SETOWN, @var{pid})
-@end example
+@end smallexample
 
 The @var{pid} argument should be a process ID.  You can also pass a
 negative number whose absolute value is a process group ID.
index da5e164..0c931a4 100644 (file)
@@ -200,9 +200,9 @@ ANSI C says that all programs start by default in the standard @samp{C}
 locale.  To use the locales specified by the environment, you must call
 @code{setlocale}.  Call it as follows:
 
-@example
+@smallexample
 setlocale (LC_ALL, "");
-@end example
+@end smallexample
 
 @noindent
 to select a locale based on the appropriate environment variables.
@@ -261,7 +261,7 @@ pointer and leaves the current locale unchanged.
 Here is an example showing how you might use @code{setlocale} to
 temporarily switch to a new locale.
 
-@example
+@smallexample
 #include <stddef.h>
 #include <locale.h>
 #include <stdlib.h>
@@ -290,7 +290,7 @@ with_other_locale (char *new_locale,
   setlocale (LC_ALL, saved_locale);
   free (saved_locale);
 @}
-@end example
+@end smallexample
 
 @strong{Portability Note:} Some ANSI C systems may define additional
 locale categories.  For portability, assume that any symbol beginning
@@ -413,8 +413,8 @@ If the last integer is @code{-1}, it means that there is no more
 grouping---or, put another way, any remaining digits form one large
 group without separators.
 
-For example, if @code{grouping} is @code{"4;3;2"}, the number
-@code{123456787654321} should be grouped into @samp{12}, @samp{34},
+For example, if @code{grouping} is @code{"4;3;2"}, the correct grouping
+for the number @code{123456787654321} is @samp{12}, @samp{34},
 @samp{56}, @samp{78}, @samp{765}, @samp{4321}.  This uses a group of 4
 digits at the end, preceded by a group of 3 digits, preceded by groups
 of 2 digits (as many as needed).  With a separator of @samp{,}, the
index d880c08..bd8f7ed 100644 (file)
@@ -44,7 +44,7 @@ configuration before proceeding.
 The GNU C Library currently supports configurations that match the
 following patterns:
 
-@example
+@smallexample
 sparc-sun-sunos4.@var{n}
 sparc-sun-solaris2.@var{n}
 m68k-hp-bsd4.3
@@ -57,12 +57,12 @@ i386-@var{anything}-sysv4
 i386-@var{anything}-sco3.2v2
 i386-@var{anything}-sco3.2v4
 i386-sequent-bsd
-@end example
+@end smallexample
 
 While no other configurations are supported, there are handy aliases for
 these few.  (These aliases work in other GNU software as well.)
 
-@example
+@smallexample
 sun4-sunos4.@var{n} sun4
 sun4-solaris2.@var{n} sun4-sunos5.@var{n}
 hp320-bsd4.3 hp300bsd
@@ -73,7 +73,7 @@ i386-svr4
 i386-sco
 i386-sco3.2v4
 i386-sequent-dynix
-@end example
+@end smallexample
 
 Here are some options that you should specify (if appropriate) when
 you run @code{configure}:
@@ -112,11 +112,11 @@ You can prepare to build the library in some other directory by going
 to that other directory to run @code{configure}.  In order to run
 configure, you will have to specify a directory for it, like this:
 
-@example
+@smallexample
 mkdir ../hp320
 cd ../hp320
 ../src/configure hp320-bsd4.3
-@end example
+@end smallexample
 
 @noindent
 @code{configure} looks for the sources in whatever directory you
@@ -193,7 +193,7 @@ To format the @cite{GNU C Library Reference Manual} for printing, type
 line reading with @kbd{C-h i} in Emacs or with the @code{info} program,
 type @w{@code{make info}}.
 
-To install the library and header files, and the Info files of the
+To install the library and its header files, and the Info files of the
 manual, type @code{make install}, after setting the installation
 directories in @file{configparms}.  This will build things if necessary,
 before installing them.@refill
@@ -202,9 +202,10 @@ before installing them.@refill
 @appendixsec Reporting Bugs
 @cindex reporting bugs
 
-There are probably bugs in the GNU C library.  If you report them,
-they will get fixed.  If you don't, no one will ever know about them
-and they will remain unfixed for all eternity, if not longer.
+There are probably bugs in the GNU C library.  There are certainly
+errors and omissions in this manual.  If you report them, they will get
+fixed.  If you don't, no one will ever know about them and they will
+remain unfixed for all eternity, if not longer.
 
 To report a bug, first you must find it.  Hopefully, this will be the
 hard part.  Once you've found a bug, make sure it's really a bug.  A
@@ -227,11 +228,6 @@ library which you are using.  Also include the files
 @file{configure}; they will be in whatever directory was current when
 you ran @file{configure}.
 
-If you are not sure how a function should behave, and this manual
-doesn't tell you, that's a bug in the manual.  Report that too!  If the
-function's behavior disagrees with the manual, then either the library
-or the manual has a bug, so report the disagreement.
-
 If you think you have found some way in which the GNU C library does not
 conform to the ANSI and POSIX standards (@pxref{Standards and
 Portability}), that is definitely a bug.  Report it!@refill
@@ -239,8 +235,15 @@ Portability}), that is definitely a bug.  Report it!@refill
 Send bug reports to the Internet address
 @samp{bug-glibc@@prep.ai.mit.edu} or the UUCP path
 @samp{mit-eddie!prep.ai.mit.edu!bug-glibc}.  If you have other problems
-with installation, use, or the documentation, please report those as
-well.@refill
+with installation or use, please report those as well.@refill
+
+If you are not sure how a function should behave, and this manual
+doesn't tell you, that's a bug in the manual.  Report that too!  If the
+function's behavior disagrees with the manual, then either the library
+or the manual has a bug, so report the disagreement.  If you find any
+errors or omissions in this manual, please report them to the Internet
+address @samp{bug-glibc-manual@@prep.ai.mit.edu} or the UUCP path
+@samp{mit-eddie!prep.ai.mit.edu!bug-glibc-manual}.
 
 @node Source Layout
 @appendixsec Adding New Functions
@@ -259,9 +262,9 @@ Each subdirectory contains a simple makefile, called @file{Makefile},
 which defines a few @code{make} variables and then includes the global
 makefile @file{Rules} with a line like:
 
-@example
+@smallexample
 include ../Rules
-@end example
+@end smallexample
 
 @noindent
 The basic variables that a subdirectory makefile defines are:
@@ -304,13 +307,14 @@ small programs included with the library.  They are built by
 @item install-lib
 @itemx install-data
 @itemx install
-Files to be installed by @w{@samp{make install}}.  Things listed in
+Files to be installed by @w{@samp{make install}}.  Files listed in
 @samp{install-lib} are installed in the directory specified by
-@samp{libdir} in @file{Makeconfig} (@pxref{Installation}).  Files listed
-in @code{install-data} are installed in the directory specified by
-@samp{datadir} in @file{configparms} or @file{Makeconfig}.  Files listed
-in @code{install} are installed in the directory specified by
-@samp{bindir} in @file{Makeconfig}.@refill
+@samp{libdir} in @file{configparms} or @file{Makeconfig}
+(@pxref{Installation}).  Files listed in @code{install-data} are
+installed in the directory specified by @samp{datadir} in
+@file{configparms} or @file{Makeconfig}.  Files listed in @code{install}
+are installed in the directory specified by @samp{bindir} in
+@file{configparms} or @file{Makeconfig}.@refill
 
 @item distribute
 Other files from this subdirectory which should be put into a
@@ -363,15 +367,16 @@ appended to the list, appearing after the subdirectory containing the
 @file{Implies} file.  Lines in an @file{Implies} file that begin with a
 @samp{#} character are ignored as comments.  For example,
 @file{unix/bsd/Implies} contains:@refill
-@example
+@smallexample
 # BSD has Internet-related things.
 unix/inet
-@end example
+@end smallexample
 @noindent
 and @file{unix/Implies} contains:
-@example
+@need 300
+@smallexample
 posix
-@end example
+@end smallexample
 
 @noindent
 So the final list is @file{unix/bsd/vax unix/bsd unix/inet unix posix}.
@@ -403,8 +408,9 @@ directories.@refill
 There are a few special files that may exist in each subdirectory of
 @file{sysdeps}:
 
-@table @file
+@table @file                    @c Blank lines after items make it look better.
 @item Makefile
+
 A makefile for this machine or operating system, or class of machine or
 operating system.  This file is included by the library makefile
 @file{Makerules}, which is used by the top-level makefile and the
@@ -423,25 +429,28 @@ be searched is included in order.  Since several system-dependent
 makefiles may be included, each should append to @samp{sysdep-routines}
 rather than simply setting it:
 
-@example
+@smallexample
 sysdep-routines := $(sysdep-routines) foo bar
-@end example
+@end smallexample
 
+@need 1000
 @item Subdirs
+
 This file contains the names of new whole subdirectories under the
 top-level library source tree that should be included for this system.
 These subdirectories are treated just like the system-independent
 subdirectories in the library source tree, such as @file{stdio} and
 @file{math}.
 
-Use this when there are whole new sets of routines and header files that
-should go into the library for the system this subdirectory of
-@file{sysdeps} implements.  For example,
+Use this when there are completely new sets of functions and header
+files that should go into the library for the system this subdirectory
+of @file{sysdeps} implements.  For example,
 @file{sysdeps/unix/inet/Subdirs} contains @file{inet}; the @file{inet}
 directory contains various network-oriented operations which only make
 sense to put in the library on systems that support the Internet.@refill
 
 @item Dist
+
 This file contains the names of files (relative to the subdirectory of
 @file{sysdeps} in which it appears) which should be included in the
 distribution.  List any new files used by rules in the @file{Makefile}
@@ -451,6 +460,7 @@ directory.  You don't need to list files that are implementations
 machine-independent makefiles in the main source tree.
 
 @item configure
+
 This file is a shell script fragment to be run at configuration time.
 The top-level @file{configure} script uses the shell @code{.} command to
 read the @file{configure} file in each system-dependent directory
@@ -461,13 +471,17 @@ chosen.  The @file{configure} files are usually generated from
 script for details.
 
 @item configure.in
-This file is an Autoconf input fragment to be processed into
-@file{configure}.  You should write either @file{configure} or
-@file{configure.in}, but not both.  The first line of @file{configure}
-should invoke the @code{m4} macro @samp{GLIBC_PROVIDES}.  This macro
-does several @code{AC_PROVIDE} calls for Autoconf macros which are used
-by the top-level @file{configure} script; without this, those macros
-might be invoked again unnecessarily by Autoconf.
+
+This file is an Autoconf input fragment to be processed into the file
+@file{configure} in this subdirectory.  @xref{Introduction,,,
+autoconf.info, Autoconf: Generating Automatic Configuration Scripts},
+for a description of Autoconf.  You should write either @file{configure}
+or @file{configure.in}, but not both.  The first line of
+@file{configure} should invoke the @code{m4} macro
+@samp{GLIBC_PROVIDES}.  This macro does several @code{AC_PROVIDE} calls
+for Autoconf macros which are used by the top-level @file{configure}
+script; without this, those macros might be invoked again unnecessarily
+by Autoconf.
 @end table
 
 That is the general system for how system-dependencies are isolated.
@@ -484,7 +498,7 @@ the library to Unix variants.
 @end menu
 
 @node Hierarchy Conventions
-@appendixsubsec The Layout of the @file{sysdeps} Directory Hierarchy
+@appendixsubsec Layout of the @file{sysdeps} Directory Hierarchy
 
 A GNU configuration name has three parts: the CPU type, the
 manufacturer's name, and the operating system.  @file{configure} uses
@@ -511,7 +525,7 @@ As an example, here is the complete list of directories that would be
 tried for the configuration @w{@samp{sparc-sun-sunos4.1}} (without the
 @w{@samp{--nfp}} option):
 
-@example
+@smallexample
 sparc/fpu
 unix/bsd/sun/sunos4.1/sparc
 unix/bsd/sun/sunos4.1
@@ -560,16 +574,17 @@ sunos4
 sunos/sparc
 sunos
 sparc
-@end example
-
-Different machine architectures are generally at the top level of the
-@file{sysdeps} directory tree.  For example, @w{@file{sysdeps/sparc}}
-and @w{@file{sysdeps/m68k}}.  These contain files specific to those
-machine architectures, but not specific to any particular operating
-system.  There might be subdirectories for specializations of those
-architectures, such as @w{@file{sysdeps/m68k/68020}}. Code which is
-specific to the floating-point coprocessor used with a particular
-machine should go in @w{@file{sysdeps/@var{machine}/fpu}}.
+@end smallexample
+
+Different machine architectures are conventionally subdirectories at the
+top level of the @file{sysdeps} directory tree.  For example,
+@w{@file{sysdeps/sparc}} and @w{@file{sysdeps/m68k}}.  These contain
+files specific to those machine architectures, but not specific to any
+particular operating system.  There might be subdirectories for
+specializations of those architectures, such as
+@w{@file{sysdeps/m68k/68020}}. Code which is specific to the
+floating-point coprocessor used with a particular machine should go in
+@w{@file{sysdeps/@var{machine}/fpu}}.
 
 There are a few directories at the top level of the @file{sysdeps}
 hierarchy that are not for particular machine architectures.
@@ -643,11 +658,11 @@ variant.  See @file{sysdeps/unix/sysdep.h} and the machine-specific
 @file{sysdep.h} implementations to see what these macros are and what
 they should do.@refill
 
-The system-specific makefile for the @file{unix} directory,
-@file{sysdeps/unix/Makefile}, gives rules to generate several files from
-the Unix system you are building the library on (which is assumed to be
-the target system you are building the library @emph{for}).  All the
-generated files are put in the directory where the object files are
+The system-specific makefile for the @file{unix} directory (that is, the
+file @file{sysdeps/unix/Makefile}) gives rules to generate several files
+from the Unix system you are building the library on (which is assumed
+to be the target system you are building the library @emph{for}).  All
+the generated files are put in the directory where the object files are
 kept; they should not affect the source tree itself.  The files
 generated are @file{ioctls.h}, @file{errnos.h}, @file{sys/param.h}, and
 @file{errlist.c} (for the @file{stdio} section of the library).
@@ -670,13 +685,14 @@ to your program in order to get it to compile.
 @node Contributors
 @appendixsec Contributors to the GNU C Library
 
-The GNU C library was written almost entirely by Roland McGrath.
-Some parts of the library were contributed by other people.
+The GNU C library was written almost entirely by Roland McGrath, who now
+maintains it.  Some parts of the library were contributed or worked on
+by other people.
 
 @itemize @bullet
 @item
 The @code{getopt} function and related code were written by
-@w{Richard Stallman}, @w{David J. MacKenzie}, and @w{Roland McGrath}.
+Richard Stallman, @w{David J. MacKenzie}, and @w{Roland McGrath}.
 
 @item
 Most of the math functions are taken from 4.4 BSD; they have been
@@ -832,9 +848,7 @@ The Internet resolver code is taken directly from BIND 4.9.1, which is
 under both the Berkeley copyright above and also:
 
 @quotation
-@display
 Portions Copyright @copyright{} 1993 by Digital Equipment Corporation.
-@end display
 
 Permission to use, copy, modify, and distribute this software for any
 purpose with or without fee is hereby granted, provided that the above