XEmacs 21.4.19 (Constant Variable).
[chise/xemacs-chise.git] / info / standards.info
index 8574d8f..44a4643 100644 (file)
@@ -1,4 +1,4 @@
-This is ../info/standards.info, produced by makeinfo version 4.6 from
+This is ../info/standards.info, produced by makeinfo version 4.8 from
 standards.texi.
 
 START-INFO-DIR-ENTRY
@@ -45,8 +45,8 @@ Last updated February 21, 2001.
 \1f
 File: standards.info,  Node: Preface,  Next: Legal Issues,  Prev: Top,  Up: Top
 
-About the GNU Coding Standards
-******************************
+1 About the GNU Coding Standards
+********************************
 
 The GNU Coding Standards were written by Richard Stallman and other GNU
 Project volunteers.  Their purpose is to make the GNU system clean,
@@ -76,8 +76,8 @@ GNU World Wide Web server: `http://www.gnu.org/prep/standards_toc.html'.
 \1f
 File: standards.info,  Node: Legal Issues,  Next: Design Advice,  Prev: Preface,  Up: Top
 
-Keeping Free Software Free
-**************************
+2 Keeping Free Software Free
+****************************
 
 This node discusses how you can make sure that GNU software avoids
 legal difficulties, and other related issues.
@@ -91,8 +91,8 @@ legal difficulties, and other related issues.
 \1f
 File: standards.info,  Node: Reading Non-Free Code,  Next: Contributions,  Up: Legal Issues
 
-Referring to Proprietary Programs
-=================================
+2.1 Referring to Proprietary Programs
+=====================================
 
 Don't in any circumstances refer to Unix source code for or during your
 work on GNU!  (Or to any other proprietary programs.)
@@ -128,8 +128,8 @@ obstacks.
 \1f
 File: standards.info,  Node: Contributions,  Next: Trademarks,  Prev: Reading Non-Free Code,  Up: Legal Issues
 
-Accepting Contributions
-=======================
+2.2 Accepting Contributions
+===========================
 
 If the program you are working on is copyrighted by the Free Software
 Foundation, then when someone else sends you a piece of code to add to
@@ -175,8 +175,8 @@ released or not), please ask us for a copy.
 \1f
 File: standards.info,  Node: Trademarks,  Prev: Contributions,  Up: Legal Issues
 
-Trademarks
-==========
+2.3 Trademarks
+==============
 
 Please do not include any trademark acknowledgements in GNU software
 packages or documentation.
@@ -199,8 +199,8 @@ language.
 \1f
 File: standards.info,  Node: Design Advice,  Next: Program Behavior,  Prev: Legal Issues,  Up: Top
 
-General Program Design
-**********************
+3 General Program Design
+************************
 
 This node discusses some of the issues you should take into account
 when designing your program.
@@ -215,8 +215,8 @@ when designing your program.
 \1f
 File: standards.info,  Node: Source Language,  Next: Compatibility,  Up: Design Advice
 
-Which Languages to Use
-======================
+3.1 Which Languages to Use
+==========================
 
 When you want to use a language that gets compiled and runs at high
 speed, the best language to use is C.  Using another language is like
@@ -260,8 +260,8 @@ the GNU system.
 \1f
 File: standards.info,  Node: Compatibility,  Next: Using Extensions,  Prev: Source Language,  Up: Design Advice
 
-Compatibility with Other Implementations
-========================================
+3.2 Compatibility with Other Implementations
+============================================
 
 With occasional exceptions, utility programs and libraries for GNU
 should be upward compatible with those in Berkeley Unix, and upward
@@ -295,8 +295,8 @@ is any precedent for them.
 \1f
 File: standards.info,  Node: Using Extensions,  Next: Standard C,  Prev: Compatibility,  Up: Design Advice
 
-Using Non-standard Features
-===========================
+3.3 Using Non-standard Features
+===============================
 
 Many GNU facilities that already exist support a number of convenient
 extensions over the comparable Unix facilities.  Whether to use these
@@ -331,8 +331,8 @@ cases.
 \1f
 File: standards.info,  Node: Standard C,  Prev: Using Extensions,  Up: Design Advice
 
-Standard C and Pre-Standard C
-=============================
+3.4 Standard C and Pre-Standard C
+=================================
 
 1989 Standard C is widespread enough now that it is ok to use its
 features in new programs.  There is one exception: do not ever use the
@@ -395,8 +395,8 @@ prototypes, you may want to use a preprocessor macro like this:
 \1f
 File: standards.info,  Node: Program Behavior,  Next: Writing C,  Prev: Design Advice,  Up: Top
 
-Program Behavior for All Programs
-*********************************
+4 Program Behavior for All Programs
+***********************************
 
 This node describes conventions for writing robust software.  It also
 describes general standards for error messages, the command line
@@ -417,8 +417,8 @@ interface, and how libraries should behave.
 \1f
 File: standards.info,  Node: Semantics,  Next: Libraries,  Up: Program Behavior
 
-Writing Robust Programs
-=======================
+4.1 Writing Robust Programs
+===========================
 
 Avoid arbitrary limits on the length or number of _any_ data structure,
 including file names, lines, files, and symbols, by allocating all data
@@ -515,8 +515,8 @@ or by using the `mkstemps' function from libiberty.
 \1f
 File: standards.info,  Node: Libraries,  Next: Errors,  Prev: Semantics,  Up: Program Behavior
 
-Library Behavior
-================
+4.2 Library Behavior
+====================
 
 Try to make library functions reentrant.  If they need to do dynamic
 storage allocation, at least try to avoid any nonreentrancy aside from
@@ -546,8 +546,8 @@ fit any naming convention.
 \1f
 File: standards.info,  Node: Errors,  Next: User Interfaces,  Prev: Libraries,  Up: Program Behavior
 
-Formatting Error Messages
-=========================
+4.3 Formatting Error Messages
+=============================
 
 Error messages from compilers should look like this:
 
@@ -596,8 +596,8 @@ end with a period.
 \1f
 File: standards.info,  Node: User Interfaces,  Next: Graphical Interfaces,  Prev: Errors,  Up: Program Behavior
 
-Standards for Interfaces Generally
-==================================
+4.4 Standards for Interfaces Generally
+======================================
 
 Please don't make the behavior of a utility depend on the name used to
 invoke it.  It is useful sometimes to make a link to a utility with a
@@ -630,8 +630,8 @@ format.
 \1f
 File: standards.info,  Node: Graphical Interfaces,  Next: Command-Line Interfaces,  Prev: User Interfaces,  Up: Program Behavior
 
-Standards for Graphical Interfaces
-==================================
+4.5 Standards for Graphical Interfaces
+======================================
 
 When you write a program that provides a graphical user interface,
 please make it work with X Windows and the GTK toolkit unless the
@@ -652,8 +652,8 @@ graphical interface, these won't be much extra work.
 \1f
 File: standards.info,  Node: Command-Line Interfaces,  Next: Option Table,  Prev: Graphical Interfaces,  Up: Program Behavior
 
-Standards for Command Line Interfaces
-=====================================
+4.6 Standards for Command Line Interfaces
+=========================================
 
 It is a good idea to follow the POSIX guidelines for the command-line
 options of a program.  The easiest way to do this is to use `getopt' to
@@ -770,8 +770,8 @@ among GNU utilities, and fewer idiosyncracies for users to remember.
 \1f
 File: standards.info,  Node: Option Table,  Next: Memory Usage,  Prev: Command-Line Interfaces,  Up: Program Behavior
 
-Table of Long Options
-=====================
+4.7 Table of Long Options
+=========================
 
 Here is a table of long options used by GNU programs.  It is surely
 incomplete, but we aim to list all the options that a new program might
@@ -1545,7 +1545,7 @@ meanings, so we can update the table.
      `-q' in Make.
 
 `quiet'
-     Used in many programs to inhibit the usual output.  *Note:* every
+     Used in many programs to inhibit the usual output.  *Note_* every
      program accepting `--quiet' should accept `--silent' as a synonym.
 
 `quiet-unshar'
@@ -1657,7 +1657,7 @@ meanings, so we can update the table.
      `-T' in `cat'.
 
 `silent'
-     Used in many programs to inhibit the usual output.  *Note:* every
+     Used in many programs to inhibit the usual output.  *Note_* every
      program accepting `--silent' should accept `--quiet' as a synonym.
 
 `size'
@@ -1860,8 +1860,8 @@ meanings, so we can update the table.
 \1f
 File: standards.info,  Node: Memory Usage,  Next: File Usage,  Prev: Option Table,  Up: Program Behavior
 
-Memory Usage
-============
+4.8 Memory Usage
+================
 
 If a program typically uses just a few meg of memory, don't bother
 making any effort to reduce memory usage.  For example, if it is
@@ -1883,8 +1883,8 @@ in core and give a fatal error if `malloc' returns zero.
 \1f
 File: standards.info,  Node: File Usage,  Prev: Memory Usage,  Up: Program Behavior
 
-File Usage
-==========
+4.9 File Usage
+==============
 
 Programs should be prepared to operate when `/usr' and `/etc' are
 read-only file systems.  Thus, if the program manages log files, lock
@@ -1902,8 +1902,8 @@ directory.
 \1f
 File: standards.info,  Node: Writing C,  Next: Documentation,  Prev: Program Behavior,  Up: Top
 
-Making The Best Use of C
-************************
+5 Making The Best Use of C
+**************************
 
 This node provides advice on how best to use the C language when
 writing GNU software.
@@ -1923,8 +1923,8 @@ writing GNU software.
 \1f
 File: standards.info,  Node: Formatting,  Next: Comments,  Up: Writing C
 
-Formatting Your Source Code
-===========================
+5.1 Formatting Your Source Code
+===============================
 
 It is important to put the open-brace that starts the body of a C
 function in column zero, and avoid putting any other open-brace or
@@ -2042,8 +2042,8 @@ page.  The formfeeds should appear alone on lines by themselves.
 \1f
 File: standards.info,  Node: Comments,  Next: Syntactic Conventions,  Prev: Formatting,  Up: Writing C
 
-Commenting Your Work
-====================
+5.2 Commenting Your Work
+========================
 
 Every program should start with a comment saying briefly what it is for.
 Example: `fmt - filter for simple filling of text'.
@@ -2122,8 +2122,8 @@ but, by contrast, write the comments this way for a `#ifndef':
 \1f
 File: standards.info,  Node: Syntactic Conventions,  Next: Names,  Prev: Comments,  Up: Writing C
 
-Clean Use of C Constructs
-=========================
+5.3 Clean Use of C Constructs
+=============================
 
 Please explicitly declare the types of all objects.  For example, you
 should explicitly declare all arguments to functions, and you should
@@ -2235,8 +2235,8 @@ pointer constant, except when calling a varargs function.
 \1f
 File: standards.info,  Node: Names,  Next: System Portability,  Prev: Syntactic Conventions,  Up: Writing C
 
-Naming Variables and Functions
-==============================
+5.4 Naming Variables and Functions
+==================================
 
 The names of global variables and functions in a program serve as
 comments of a sort.  So don't choose terse names--instead, look for
@@ -2284,8 +2284,8 @@ characters.
 \1f
 File: standards.info,  Node: System Portability,  Next: CPU Portability,  Prev: Names,  Up: Writing C
 
-Portability between System Types
-================================
+5.5 Portability between System Types
+====================================
 
 In the Unix world, "portability" refers to porting to different Unix
 versions.  For a GNU program, this kind of portability is desirable, but
@@ -2334,8 +2334,8 @@ to move your code into other GNU programs.
 \1f
 File: standards.info,  Node: CPU Portability,  Next: System Functions,  Prev: System Portability,  Up: Writing C
 
-Portability between CPUs
-========================
+5.6 Portability between CPUs
+============================
 
 Even GNU systems will differ because of differences among CPU
 types--for example, difference in byte ordering and alignment
@@ -2410,8 +2410,8 @@ from zero.
 \1f
 File: standards.info,  Node: System Functions,  Next: Internationalization,  Prev: CPU Portability,  Up: Writing C
 
-Calling System Functions
-========================
+5.7 Calling System Functions
+============================
 
 C implementations differ substantially.  Standard C reduces but does
 not eliminate the incompatibilities; meanwhile, many GNU packages still
@@ -2514,7 +2514,7 @@ library functions to avoid unnecessary loss of portability.
           #ifndef HAVE_STRRCHR
           #define strrchr rindex
           #endif
-          
+
           char *strchr ();
           char *strrchr ();
 
@@ -2525,8 +2525,8 @@ get them properly defined is to use Autoconf.
 \1f
 File: standards.info,  Node: Internationalization,  Next: Mmap,  Prev: System Functions,  Up: Writing C
 
-Internationalization
-====================
+5.8 Internationalization
+========================
 
 GNU has a library called GNU gettext that makes it easy to translate the
 messages in a program into various languages.  You should use this
@@ -2605,8 +2605,8 @@ calls does the job straightfowardly if the code starts out like this:
 \1f
 File: standards.info,  Node: Mmap,  Prev: Internationalization,  Up: Writing C
 
-Mmap
-====
+5.9 Mmap
+========
 
 Don't assume that `mmap' either works on all files or fails for all
 files.  It may work on some files and fail on others.
@@ -2624,8 +2624,8 @@ of files.
 \1f
 File: standards.info,  Node: Documentation,  Next: Managing Releases,  Prev: Writing C,  Up: Top
 
-Documenting Programs
-********************
+6 Documenting Programs
+**********************
 
 A GNU program should ideally come with full free documentation, adequate
 for both reference and tutorial purposes.  If the package can be
@@ -2649,8 +2649,8 @@ extending it, as well as just using it.
 \1f
 File: standards.info,  Node: GNU Manuals,  Next: Doc Strings and Manuals,  Up: Documentation
 
-GNU Manuals
-===========
+6.1 GNU Manuals
+===============
 
 The preferred document format for the GNU system is the Texinfo
 formatting language.  Every GNU package should (ideally) have
@@ -2747,8 +2747,8 @@ computer program.  Please use "invalid" for this, and reserve the term
 \1f
 File: standards.info,  Node: Doc Strings and Manuals,  Next: Manual Structure Details,  Prev: GNU Manuals,  Up: Documentation
 
-Doc Strings and Manuals
-=======================
+6.2 Doc Strings and Manuals
+===========================
 
 Some programming systems, such as Emacs, provide a documentation string
 for each function, command or variable.  You may be tempted to write a
@@ -2777,8 +2777,8 @@ manual is to use them as a source of information for writing good text.
 \1f
 File: standards.info,  Node: Manual Structure Details,  Next: License for Manuals,  Prev: Doc Strings and Manuals,  Up: Documentation
 
-Manual Structure Details
-========================
+6.3 Manual Structure Details
+============================
 
 The title page of the manual should state the version of the programs or
 packages documented in the manual.  The Top node of the manual should
@@ -2807,8 +2807,8 @@ for each program described in the manual.
 \1f
 File: standards.info,  Node: License for Manuals,  Next: Manual Credits,  Prev: Manual Structure Details,  Up: Documentation
 
-License for Manuals
-===================
+6.4 License for Manuals
+=======================
 
 Please use the GNU Free Documentation License for all GNU manuals that
 are more than a few pages long.  Likewise for a collection of short
@@ -2829,8 +2829,8 @@ it.
 \1f
 File: standards.info,  Node: Manual Credits,  Next: Printed Manuals,  Prev: License for Manuals,  Up: Documentation
 
-Manual Credits
-==============
+6.5 Manual Credits
+==================
 
 Please credit the principal human writers of the manual as the authors,
 on the title page of the manual.  If a company sponsored the work, thank
@@ -2840,14 +2840,14 @@ company as an author.
 \1f
 File: standards.info,  Node: Printed Manuals,  Next: NEWS File,  Prev: Manual Credits,  Up: Documentation
 
-Printed Manuals
-===============
+6.6 Printed Manuals
+===================
 
 The FSF publishes some GNU manuals in printed form.  To encourage sales
 of these manuals, the on-line versions of the manual should mention at
 the very start that the printed manual is available and should point at
 information for getting it--for instance, with a link to the page
-<http://www.gnu.org/order/order.html>.  This should not be included in
+`http://www.gnu.org/order/order.html'.  This should not be included in
 the printed manual, though, because there it is redundant.
 
    It is also useful to explain in the on-line forms of the manual how
@@ -2856,8 +2856,8 @@ the user can print out the manual from the sources.
 \1f
 File: standards.info,  Node: NEWS File,  Next: Change Logs,  Prev: Printed Manuals,  Up: Documentation
 
-The NEWS File
-=============
+6.7 The NEWS File
+=================
 
 In addition to its manual, the package should have a file named `NEWS'
 which contains a list of user-visible changes worth mentioning.  In
@@ -2873,8 +2873,8 @@ that file.
 \1f
 File: standards.info,  Node: Change Logs,  Next: Man Pages,  Prev: NEWS File,  Up: Documentation
 
-Change Logs
-===========
+6.8 Change Logs
+===============
 
 Keep a change log to describe all the changes made to program source
 files.  The purpose of this is so that people investigating bugs in the
@@ -2895,8 +2895,8 @@ history of how the conflicting concepts arose and who they came from.
 \1f
 File: standards.info,  Node: Change Log Concepts,  Next: Style of Change Logs,  Up: Change Logs
 
-Change Log Concepts
--------------------
+6.8.1 Change Log Concepts
+-------------------------
 
 You can think of the change log as a conceptual "undo list" which
 explains how earlier versions were different from the current version.
@@ -2933,8 +2933,8 @@ describe the changes you made to that function or variable.
 \1f
 File: standards.info,  Node: Style of Change Logs,  Next: Simple Changes,  Prev: Change Log Concepts,  Up: Change Logs
 
-Style of Change Logs
---------------------
+6.8.2 Style of Change Logs
+--------------------------
 
 Here are some simple examples of change log entries, starting with the
 header line that says who made the change and when, followed by
@@ -2942,16 +2942,16 @@ descriptions of specific changes.  (These examples are drawn from Emacs
 and GCC.)
 
      1998-08-17  Richard Stallman  <rms@gnu.org>
-     
+
      * register.el (insert-register): Return nil.
      (jump-to-register): Likewise.
-     
+
      * sort.el (sort-subr): Return nil.
-     
+
      * tex-mode.el (tex-bibtex-file, tex-file, tex-region):
      Restart the tex shell if process is gone or stopped.
      (tex-shell-running): New function.
-     
+
      * expr.c (store_one_arg): Round size up for move_block_to_reg.
      (expand_call): Round up when emitting USE insns.
      * stmt.c (assign_parms): Round size up for move_block_from_reg.
@@ -2982,8 +2982,8 @@ example:
 \1f
 File: standards.info,  Node: Simple Changes,  Next: Conditional Changes,  Prev: Style of Change Logs,  Up: Change Logs
 
-Simple Changes
---------------
+6.8.3 Simple Changes
+--------------------
 
 Certain simple kinds of changes don't need much detail in the change
 log.
@@ -3011,8 +3011,8 @@ documentation says with the way the program actually works.
 \1f
 File: standards.info,  Node: Conditional Changes,  Next: Indicating the Part Changed,  Prev: Simple Changes,  Up: Change Logs
 
-Conditional Changes
--------------------
+6.8.4 Conditional Changes
+-------------------------
 
 C programs often contain compile-time `#if' conditionals.  Many changes
 are conditional; sometimes you add a new definition which is entirely
@@ -3047,8 +3047,8 @@ macro is _not_ defined:
 \1f
 File: standards.info,  Node: Indicating the Part Changed,  Prev: Conditional Changes,  Up: Change Logs
 
-Indicating the Part Changed
----------------------------
+6.8.5 Indicating the Part Changed
+---------------------------------
 
 Indicate the part of a function which changed by using angle brackets
 enclosing an indication of what the changed part does.  Here is an entry
@@ -3061,8 +3061,8 @@ with `sh' commands:
 \1f
 File: standards.info,  Node: Man Pages,  Next: Reading other Manuals,  Prev: Change Logs,  Up: Documentation
 
-Man Pages
-=========
+6.9 Man Pages
+=============
 
 In the GNU project, man pages are secondary.  It is not necessary or
 expected for every GNU program to have a man page, but some of them do.
@@ -3095,8 +3095,8 @@ documentation.
 \1f
 File: standards.info,  Node: Reading other Manuals,  Prev: Man Pages,  Up: Documentation
 
-Reading other Manuals
-=====================
+6.10 Reading other Manuals
+==========================
 
 There may be non-free books or documentation files that describe the
 program you are documenting.
@@ -3113,8 +3113,8 @@ with the FSF about the individual case.
 \1f
 File: standards.info,  Node: Managing Releases,  Next: References,  Prev: Documentation,  Up: Top
 
-The Release Process
-*******************
+7 The Release Process
+*********************
 
 Making a release is more than just bundling up your source files in a
 tar file and putting it up for FTP.  You should set up your software so
@@ -3133,8 +3133,8 @@ GNU software.
 \1f
 File: standards.info,  Node: Configuration,  Next: Makefile Conventions,  Up: Managing Releases
 
-How Configuration Should Work
-=============================
+7.1 How Configuration Should Work
+=================================
 
 Each GNU distribution should come with a shell script named
 `configure'.  This script is given arguments which describe the kind of
@@ -3280,8 +3280,8 @@ ignore most of its arguments.
 \1f
 File: standards.info,  Node: Makefile Conventions,  Next: Releases,  Prev: Configuration,  Up: Managing Releases
 
-Makefile Conventions
-====================
+7.2 Makefile Conventions
+========================
 
 This node describes conventions for writing the Makefiles for GNU
 programs.  Using Automake will help you write a Makefile that follows
@@ -3300,8 +3300,8 @@ these conventions.
 \1f
 File: standards.info,  Node: Makefile Basics,  Next: Utilities in Makefiles,  Up: Makefile Conventions
 
-General Conventions for Makefiles
----------------------------------
+7.2.1 General Conventions for Makefiles
+---------------------------------------
 
 Every Makefile should contain this line:
 
@@ -3380,8 +3380,8 @@ their subtargets) work correctly with a parallel `make'.
 \1f
 File: standards.info,  Node: Utilities in Makefiles,  Next: Command Variables,  Prev: Makefile Basics,  Up: Makefile Conventions
 
-Utilities in Makefiles
-----------------------
+7.2.2 Utilities in Makefiles
+----------------------------
 
 Write the Makefile commands (and any shell scripts, such as
 `configure') to run in `sh', not in `csh'.  Don't use any special
@@ -3435,8 +3435,8 @@ exist.
 \1f
 File: standards.info,  Node: Command Variables,  Next: Directory Variables,  Prev: Utilities in Makefiles,  Up: Makefile Conventions
 
-Variables for Specifying Commands
----------------------------------
+7.2.3 Variables for Specifying Commands
+---------------------------------------
 
 Makefiles should provide variables for overriding certain commands,
 options, and so on.
@@ -3515,8 +3515,8 @@ installed.
 \1f
 File: standards.info,  Node: Directory Variables,  Next: Standard Targets,  Prev: Command Variables,  Up: Makefile Conventions
 
-Variables for Installation Directories
---------------------------------------
+7.2.4 Variables for Installation Directories
+--------------------------------------------
 
 Installation directories should always be named by variables, so it is
 easy to install in a nonstandard place.  The standard names for these
@@ -3763,8 +3763,8 @@ they will work sensibly when the user does so.
 \1f
 File: standards.info,  Node: Standard Targets,  Next: Install Command Categories,  Prev: Directory Variables,  Up: Makefile Conventions
 
-Standard Targets for Users
---------------------------
+7.2.5 Standard Targets for Users
+--------------------------------
 
 All GNU programs should have the following targets in their Makefiles:
 
@@ -3924,7 +3924,7 @@ All GNU programs should have the following targets in their Makefiles:
      is as follows:
 
           info: foo.info
-          
+
           foo.info: foo.texi chap1.texi chap2.texi
                   $(MAKEINFO) $(srcdir)/foo.texi
 
@@ -3942,7 +3942,7 @@ All GNU programs should have the following targets in their Makefiles:
      Generate DVI files for all Texinfo documentation.  For example:
 
           dvi: foo.dvi
-          
+
           foo.dvi: foo.texi chap1.texi chap2.texi
                   $(TEXI2DVI) $(srcdir)/foo.texi
 
@@ -4020,8 +4020,8 @@ not distributed with Texinfo.
 \1f
 File: standards.info,  Node: Install Command Categories,  Prev: Standard Targets,  Up: Makefile Conventions
 
-Install Command Categories
---------------------------
+7.2.6 Install Command Categories
+--------------------------------
 
 When writing the `install' target, you must classify all the commands
 into three categories: normal ones, "pre-installation" commands and
@@ -4126,8 +4126,8 @@ shell script as part of installing the binary package.
 \1f
 File: standards.info,  Node: Releases,  Prev: Makefile Conventions,  Up: Managing Releases
 
-Making Releases
-===============
+7.3 Making Releases
+===================
 
 Package the distribution of `Foo version 69.96' up in a gzipped tar
 file with the name `foo-69.96.tar.gz'.  It should unpack into a
@@ -4208,8 +4208,8 @@ know what other files to get.
 \1f
 File: standards.info,  Node: References,  Next: Index,  Prev: Managing Releases,  Up: Top
 
-References to Non-Free Software and Documentation
-*************************************************
+8 References to Non-Free Software and Documentation
+***************************************************
 
 A GNU program should not recommend use of any non-free program.  We
 can't stop some people from writing proprietary programs, or stop other
@@ -4239,187 +4239,223 @@ File: standards.info,  Node: Index,  Prev: References,  Up: Top
 Index
 *****
 
+\0\b[index\0\b]
 * Menu:
 
-* #endif, commenting:                    Comments.
+* #endif, commenting:                    Comments.            (line  54)
 * --help option:                         Command-Line Interfaces.
+                                                              (line 107)
 * --version option:                      Command-Line Interfaces.
+                                                              (line  34)
 * -Wall compiler option:                 Syntactic Conventions.
-* accepting contributions:               Contributions.
+                                                              (line  10)
+* accepting contributions:               Contributions.       (line   6)
 * address for bug reports:               Command-Line Interfaces.
-* ANSI C standard:                       Standard C.
-* arbitrary limits on data:              Semantics.
-* autoconf:                              System Portability.
+                                                              (line 113)
+* ANSI C standard:                       Standard C.          (line   6)
+* arbitrary limits on data:              Semantics.           (line   6)
+* autoconf:                              System Portability.  (line  23)
 * avoiding proprietary code:             Reading Non-Free Code.
-* behavior, dependent on program's name: User Interfaces.
+                                                              (line   6)
+* behavior, dependent on program's name: User Interfaces.     (line   6)
 * binary packages:                       Install Command Categories.
-* bindir:                                Directory Variables.
-* braces, in C source:                   Formatting.
+                                                              (line  80)
+* bindir:                                Directory Variables. (line  45)
+* braces, in C source:                   Formatting.          (line   6)
 * bug reports:                           Command-Line Interfaces.
+                                                              (line 113)
 * canonical name of a program:           Command-Line Interfaces.
-* casting pointers to integers:          CPU Portability.
-* change logs:                           Change Logs.
-* change logs, conditional changes:      Conditional Changes.
+                                                              (line  41)
+* casting pointers to integers:          CPU Portability.     (line  67)
+* change logs:                           Change Logs.         (line   6)
+* change logs, conditional changes:      Conditional Changes. (line   6)
 * change logs, style:                    Style of Change Logs.
-* command-line arguments, decoding:      Semantics.
+                                                              (line   6)
+* command-line arguments, decoding:      Semantics.           (line  46)
 * command-line interface:                Command-Line Interfaces.
-* commenting:                            Comments.
-* compatibility with C and POSIX standards: Compatibility.
+                                                              (line   6)
+* commenting:                            Comments.            (line   6)
+* compatibility with C and POSIX standards: Compatibility.    (line   6)
 * compiler warnings:                     Syntactic Conventions.
-* conditional changes, and change logs:  Conditional Changes.
-* conditionals, comments for:            Comments.
-* configure:                             Configuration.
-* control-L:                             Formatting.
+                                                              (line  10)
+* conditional changes, and change logs:  Conditional Changes. (line   6)
+* conditionals, comments for:            Comments.            (line  54)
+* configure:                             Configuration.       (line   6)
+* control-L:                             Formatting.          (line 114)
 * conventions for makefiles:             Makefile Conventions.
+                                                              (line   6)
 * corba:                                 Graphical Interfaces.
-* credits for manuals:                   Manual Credits.
-* data types, and portability:           CPU Portability.
-* declaration for system functions:      System Functions.
-* documentation:                         Documentation.
-* doschk:                                Names.
-* downloading this manual:               Preface.
-* error messages:                        Semantics.
-* error messages, formatting:            Errors.
-* exec_prefix:                           Directory Variables.
-* expressions, splitting:                Formatting.
-* file usage:                            File Usage.
-* file-name limitations:                 Names.
-* formatting error messages:             Errors.
-* formatting source code:                Formatting.
-* formfeed:                              Formatting.
+                                                              (line  16)
+* credits for manuals:                   Manual Credits.      (line   6)
+* data types, and portability:           CPU Portability.     (line   6)
+* declaration for system functions:      System Functions.    (line  21)
+* documentation:                         Documentation.       (line   6)
+* doschk:                                Names.               (line  38)
+* downloading this manual:               Preface.             (line  23)
+* error messages:                        Semantics.           (line  19)
+* error messages, formatting:            Errors.              (line   6)
+* exec_prefix:                           Directory Variables. (line  27)
+* expressions, splitting:                Formatting.          (line  77)
+* file usage:                            File Usage.          (line   6)
+* file-name limitations:                 Names.               (line  38)
+* formatting error messages:             Errors.              (line   6)
+* formatting source code:                Formatting.          (line   6)
+* formfeed:                              Formatting.          (line 114)
 * function argument, declaring:          Syntactic Conventions.
-* function prototypes:                   Standard C.
+                                                              (line   6)
+* function prototypes:                   Standard C.          (line  17)
 * getopt:                                Command-Line Interfaces.
+                                                              (line   6)
 * gettext:                               Internationalization.
+                                                              (line   6)
 * gnome:                                 Graphical Interfaces.
+                                                              (line  16)
 * graphical user interface:              Graphical Interfaces.
+                                                              (line   6)
 * gtk:                                   Graphical Interfaces.
-* GUILE:                                 Source Language.
+                                                              (line   6)
+* GUILE:                                 Source Language.     (line  38)
 * implicit int:                          Syntactic Conventions.
-* impossible conditions:                 Semantics.
+                                                              (line   6)
+* impossible conditions:                 Semantics.           (line  70)
 * internationalization:                  Internationalization.
-* legal aspects:                         Legal Issues.
-* legal papers:                          Contributions.
-* libexecdir:                            Directory Variables.
-* libraries:                             Libraries.
-* library functions, and portability:    System Functions.
-* license for manuals:                   License for Manuals.
+                                                              (line   6)
+* legal aspects:                         Legal Issues.        (line   6)
+* legal papers:                          Contributions.       (line   6)
+* libexecdir:                            Directory Variables. (line  58)
+* libraries:                             Libraries.           (line   6)
+* library functions, and portability:    System Functions.    (line   6)
+* license for manuals:                   License for Manuals. (line   6)
 * lint:                                  Syntactic Conventions.
-* long option names:                     Option Table.
+                                                              (line 109)
+* long option names:                     Option Table.        (line   6)
 * long-named options:                    Command-Line Interfaces.
+                                                              (line  12)
 * makefile, conventions for:             Makefile Conventions.
-* malloc return value:                   Semantics.
-* man pages:                             Man Pages.
+                                                              (line   6)
+* malloc return value:                   Semantics.           (line  25)
+* man pages:                             Man Pages.           (line   6)
 * manual structure:                      Manual Structure Details.
-* memory allocation failure:             Semantics.
-* memory usage:                          Memory Usage.
+                                                              (line   6)
+* memory allocation failure:             Semantics.           (line  25)
+* memory usage:                          Memory Usage.        (line   6)
 * message text, and internationalization: Internationalization.
-* mmap:                                  Mmap.
+                                                              (line  29)
+* mmap:                                  Mmap.                (line   6)
 * multiple variables in a line:          Syntactic Conventions.
-* names of variables and functions:      Names.
-* NEWS file:                             NEWS File.
-* non-POSIX systems, and portability:    System Portability.
-* non-standard extensions:               Using Extensions.
-* NUL characters:                        Semantics.
-* open brace:                            Formatting.
-* optional features, configure-time:     Configuration.
-* options for compatibility:             Compatibility.
-* output device and program's behavior:  User Interfaces.
-* packaging:                             Releases.
-* portability, and data types:           CPU Portability.
-* portability, and library functions:    System Functions.
-* portability, between system types:     System Portability.
-* POSIX compatibility:                   Compatibility.
-* POSIXLY_CORRECT, environment variable: Compatibility.
+                                                              (line  35)
+* names of variables and functions:      Names.               (line   6)
+* NEWS file:                             NEWS File.           (line   6)
+* non-POSIX systems, and portability:    System Portability.  (line  32)
+* non-standard extensions:               Using Extensions.    (line   6)
+* NUL characters:                        Semantics.           (line  11)
+* open brace:                            Formatting.          (line   6)
+* optional features, configure-time:     Configuration.       (line  76)
+* options for compatibility:             Compatibility.       (line  14)
+* output device and program's behavior:  User Interfaces.     (line  13)
+* packaging:                             Releases.            (line   6)
+* portability, and data types:           CPU Portability.     (line   6)
+* portability, and library functions:    System Functions.    (line   6)
+* portability, between system types:     System Portability.  (line   6)
+* POSIX compatibility:                   Compatibility.       (line   6)
+* POSIXLY_CORRECT, environment variable: Compatibility.       (line  21)
 * post-installation commands:            Install Command Categories.
+                                                              (line   6)
 * pre-installation commands:             Install Command Categories.
-* prefix:                                Directory Variables.
-* program configuration:                 Configuration.
-* program design:                        Design Advice.
-* program name and its behavior:         User Interfaces.
+                                                              (line   6)
+* prefix:                                Directory Variables. (line  17)
+* program configuration:                 Configuration.       (line   6)
+* program design:                        Design Advice.       (line   6)
+* program name and its behavior:         User Interfaces.     (line   6)
 * program's canonical name:              Command-Line Interfaces.
-* programming languges:                  Source Language.
+                                                              (line  41)
+* programming languges:                  Source Language.     (line   6)
 * proprietary programs:                  Reading Non-Free Code.
-* README file:                           Releases.
-* references to non-free material:       References.
-* releasing:                             Managing Releases.
-* sbindir:                               Directory Variables.
-* signal handling:                       Semantics.
-* spaces before open-paren:              Formatting.
+                                                              (line   6)
+* README file:                           Releases.            (line  17)
+* references to non-free material:       References.          (line   6)
+* releasing:                             Managing Releases.   (line   6)
+* sbindir:                               Directory Variables. (line  51)
+* signal handling:                       Semantics.           (line  59)
+* spaces before open-paren:              Formatting.          (line  71)
 * standard command-line options:         Command-Line Interfaces.
+                                                              (line  31)
 * standards for makefiles:               Makefile Conventions.
-* string library functions:              System Functions.
+                                                              (line   6)
+* string library functions:              System Functions.    (line  55)
 * syntactic conventions:                 Syntactic Conventions.
-* table of long options:                 Option Table.
-* temporary files:                       Semantics.
+                                                              (line   6)
+* table of long options:                 Option Table.        (line   6)
+* temporary files:                       Semantics.           (line  84)
 * temporary variables:                   Syntactic Conventions.
-* texinfo.tex, in a distribution:        Releases.
-* TMPDIR environment variable:           Semantics.
-* trademarks:                            Trademarks.
-* where to obtain standards.texi:        Preface.
+                                                              (line  23)
+* texinfo.tex, in a distribution:        Releases.            (line  73)
+* TMPDIR environment variable:           Semantics.           (line  84)
+* trademarks:                            Trademarks.          (line   6)
+* where to obtain standards.texi:        Preface.             (line  23)
 
 
 \1f
 Tag Table:
 Node: Top\7f980
 Node: Preface\7f1582
-Node: Legal Issues\7f3099
-Node: Reading Non-Free Code\7f3559
-Node: Contributions\7f5279
-Node: Trademarks\7f7425
-Node: Design Advice\7f8480
-Node: Source Language\7f8983
-Node: Compatibility\7f10987
-Node: Using Extensions\7f12607
-Node: Standard C\7f14175
-Node: Program Behavior\7f16538
-Node: Semantics\7f17453
-Node: Libraries\7f22138
-Node: Errors\7f23375
-Node: User Interfaces\7f25148
-Node: Graphical Interfaces\7f26745
-Node: Command-Line Interfaces\7f27772
-Node: Option Table\7f33254
-Node: Memory Usage\7f48255
-Node: File Usage\7f49272
-Node: Writing C\7f50012
-Node: Formatting\7f50850
-Node: Comments\7f54905
-Node: Syntactic Conventions\7f58199
-Node: Names\7f61603
-Node: System Portability\7f63788
-Node: CPU Portability\7f66165
-Node: System Functions\7f69413
-Node: Internationalization\7f74612
-Node: Mmap\7f77757
-Node: Documentation\7f78459
-Node: GNU Manuals\7f79560
-Node: Doc Strings and Manuals\7f84609
-Node: Manual Structure Details\7f86154
-Node: License for Manuals\7f87564
-Node: Manual Credits\7f88530
-Node: Printed Manuals\7f88915
-Node: NEWS File\7f89593
-Node: Change Logs\7f90263
-Node: Change Log Concepts\7f91009
-Node: Style of Change Logs\7f92861
-Node: Simple Changes\7f94904
-Node: Conditional Changes\7f96136
-Node: Indicating the Part Changed\7f97546
-Node: Man Pages\7f98061
-Node: Reading other Manuals\7f99677
-Node: Managing Releases\7f100458
-Node: Configuration\7f101210
-Node: Makefile Conventions\7f108107
-Node: Makefile Basics\7f108863
-Node: Utilities in Makefiles\7f112025
-Node: Command Variables\7f114158
-Node: Directory Variables\7f117723
-Node: Standard Targets\7f128605
-Ref: Standard Targets-Footnote-1\7f139853
-Node: Install Command Categories\7f139953
-Node: Releases\7f144523
-Node: References\7f148603
-Node: Index\7f149994
+Node: Legal Issues\7f3103
+Node: Reading Non-Free Code\7f3567
+Node: Contributions\7f5295
+Node: Trademarks\7f7449
+Node: Design Advice\7f8512
+Node: Source Language\7f9019
+Node: Compatibility\7f11031
+Node: Using Extensions\7f12659
+Node: Standard C\7f14235
+Node: Program Behavior\7f16606
+Node: Semantics\7f17525
+Node: Libraries\7f22218
+Node: Errors\7f23463
+Node: User Interfaces\7f25244
+Node: Graphical Interfaces\7f26849
+Node: Command-Line Interfaces\7f27884
+Node: Option Table\7f33374
+Node: Memory Usage\7f48383
+Node: File Usage\7f49408
+Node: Writing C\7f50156
+Node: Formatting\7f50998
+Node: Comments\7f55061
+Node: Syntactic Conventions\7f58363
+Node: Names\7f61775
+Node: System Portability\7f63968
+Node: CPU Portability\7f66353
+Node: System Functions\7f69609
+Node: Internationalization\7f74806
+Node: Mmap\7f77959
+Node: Documentation\7f78669
+Node: GNU Manuals\7f79774
+Node: Doc Strings and Manuals\7f84831
+Node: Manual Structure Details\7f86384
+Node: License for Manuals\7f87802
+Node: Manual Credits\7f88776
+Node: Printed Manuals\7f89169
+Node: NEWS File\7f89855
+Node: Change Logs\7f90533
+Node: Change Log Concepts\7f91287
+Node: Style of Change Logs\7f93151
+Node: Simple Changes\7f95186
+Node: Conditional Changes\7f96430
+Node: Indicating the Part Changed\7f97852
+Node: Man Pages\7f98379
+Node: Reading other Manuals\7f100003
+Node: Managing Releases\7f100794
+Node: Configuration\7f101550
+Node: Makefile Conventions\7f108455
+Node: Makefile Basics\7f109219
+Node: Utilities in Makefiles\7f112393
+Node: Command Variables\7f114538
+Node: Directory Variables\7f118115
+Node: Standard Targets\7f129009
+Ref: Standard Targets-Footnote-1\7f140249
+Node: Install Command Categories\7f140349
+Node: Releases\7f144931
+Node: References\7f149019
+Node: Index\7f150414
 \1f
 End Tag Table