]> git.ipfire.org Git - thirdparty/autoconf.git/commitdiff
1999-04-01 Ben Elliston <bje@cygnus.com>
authorBen Elliston <bje+keyword+gnu.7caf74@air.net.au>
Wed, 31 Mar 1999 08:16:10 +0000 (08:16 +0000)
committerBen Elliston <bje+keyword+gnu.7caf74@air.net.au>
Wed, 31 Mar 1999 08:16:10 +0000 (08:16 +0000)
* standards.texi: Update from FSF.
* acspecific.m4 (AC_PROG_INSTALL): Avoid using the installation
script belonging to HP `pwplus' when running the install
program. Contributed by Steven G. Johnson <stevenj@alum.mit.edu>
and Dave Adams <adams@hpesdwa.fc.hp.com>.

ChangeLog
acspecific.m4
doc/standards.texi
lib/autoconf/specific.m4
standards.texi

index 3915a3ad563ab8fb6a473532d75def3ea30bef0b..bd241926c2eda42f27b284f56bc67524dd403618 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+1999-04-01  Ben Elliston  <bje@cygnus.com>
+
+       * standards.texi: Update from FSF.
+
+       * acspecific.m4 (AC_PROG_INSTALL): Avoid using the installation
+       script belonging to HP `pwplus' when running the install
+       program. Contributed by Steven G. Johnson <stevenj@alum.mit.edu>
+       and Dave Adams <adams@hpesdwa.fc.hp.com>.
+
 1999-03-28  Tom Tromey  <tromey@cygnus.com>
 
        * autoconf.texi (AC_OUTPUT_COMMANDS): Add to macro index.
index 5cb7a89d58b4e1edc66bdfe2c1721ae268e7754e..6f33fa0f0ead6d1043faebb52e0f067904bf8a19 100644 (file)
@@ -621,6 +621,10 @@ AC_CACHE_VAL(ac_cv_path_install,
             grep dspmsg $ac_dir/$ac_prog >/dev/null 2>&1; then
            # AIX install.  It has an incompatible calling convention.
            :
+         elif test $ac_prog = install &&
+           grep pwplus $ac_dir/$ac_prog >/dev/null 2>&1; then
+           # program-specific install script used by HP pwplus--don't use.
+           :
          else
            ac_cv_path_install="$ac_dir/$ac_prog -c"
            break 2
index e05abcd4ad7bd49eac7cc5f4efc0f37b076aaf58..6d9778decedc4a0560d1c616e7384b74333b1bdf 100644 (file)
@@ -3,7 +3,7 @@
 @setfilename standards.info
 @settitle GNU Coding Standards
 @c This date is automagically updated when you save this file:
-@set lastupdate February  9, 1999
+@set lastupdate March 26, 1999
 @c %**end of header
 
 @ifinfo
@@ -290,9 +290,16 @@ non-@sc{ansi} compilers).  And if a program is already written in
 @sc{ansi} C, there's no need to convert it to support non-@sc{ansi}
 compilers.
 
+If you don't know non-@sc{ansi} C, there's no need to learn it; just
+write in @sc{ansi} C.
+
 However, it is easy to support non-@sc{ansi} compilers in most programs,
-so you might still consider doing so when you write a program.  Instead
-of writing function definitions in @sc{ansi} prototype form,
+so you might still consider doing so when you write a program.  And if a
+program you are maintaining has such support, you should try to keep it
+working.
+
+To support pre-@sc{ansi} C, instead of writing function definitions in
+@sc{ansi} prototype form,
 
 @example
 int
@@ -319,11 +326,22 @@ int foo (int, int);
 
 You need such a declaration anyway, in a header file, to get the benefit
 of @sc{ansi} C prototypes in all the files where the function is called.
-And once you have it, you lose nothing by writing the function
-definition in the pre-@sc{ansi} style.
-
-If you don't know non-@sc{ansi} C, there's no need to learn it; just
-write in @sc{ansi} C.
+And once you have the declaration, you normally lose nothing by writing
+the function definition in the pre-@sc{ansi} style.
+
+This technique does not work for integer types narrower than @code{int}.
+If you think of an argument as being of a type narrower than @code{int},
+declare it as @code{int} instead.
+
+There are a few special cases where this technique is hard to use.  For
+example, if a function argument needs to hold the system type
+@code{dev_t}, you run into trouble, because @code{dev_t} is shorter than
+@code{int} on some machines; but you cannot use @code{int} instead,
+because @code{dev_t} is wider than @code{int} on some machines.  There
+is no type you can safely use on all machines in a non-@sc{ansi}
+definition.  The only way to support non-@sc{ansi} C and pass such an
+argument is to check the width of @code{dev_t} using Autoconf and choose
+the argument type accordingly.  This may not be worth the trouble.
 
 @node Source Language
 @section Using Languages Other Than C
@@ -597,7 +615,7 @@ and @samp{--help}.
 
 @table @code
 @item --version
-This option should direct the program to information about its name,
+This option should direct the program to print information about its name,
 version, origin and legal status, all on standard output, and then exit
 successfully.  Other options and arguments should be ignored once this
 is seen, and the program should not perform its normal function.
@@ -881,6 +899,9 @@ Used in @code{tar} and @code{cpio}.
 @item dereference-args
 @samp{-D} in @code{du}.
 
+@item device
+Specify an I/O device (special file name).
+
 @item diacritics
 @samp{-d} in @code{recode}.
 
@@ -1460,6 +1481,9 @@ Used in @code{tar} and @code{cp}.
 @item prompt
 @samp{-p} in @code{ed}.
 
+@item proxy
+Specify an HTTP proxy.
+
 @item query-user
 @samp{-X} in @code{shar}.
 
@@ -1692,6 +1716,9 @@ Used in GDB and @code{objdump}.
 @item time
 Used in @code{ls} and @code{touch}.
 
+@item timeout
+Specify how long to wait before giving up on some operation.
+
 @item to-stdout
 @samp{-O} in @code{tar}.
 
@@ -2158,7 +2185,7 @@ Don't make the program ugly to placate @code{lint}.  Please don't insert any
 casts to @code{void}.  Zero without a cast is perfectly fine as a null
 pointer constant, except when calling a varargs function.
 
-@node  Names
+@node Names
 @section Naming Variables and Functions
 
 The names of global variables and functions in a program serve as
@@ -2170,6 +2197,10 @@ comments.
 Local variable names can be shorter, because they are used only within
 one context, where (presumably) comments explain their purpose.
 
+Try to limit your use of abbreviations in symbol names.  It is ok to
+make a few abbreviations, explain what they mean, and then use them
+frequently, but don't use lots of obscure abbreviations.
+
 Please use underscores to separate words in a name, so that the Emacs
 word commands can be useful within them.  Stick to lower case; reserve
 upper case for macros and @code{enum} constants, and for name-prefixes
@@ -2273,7 +2304,7 @@ that pass their arguments along to @code{printf} and friends:
 @example
 error (s, a1, a2, a3)
      char *s;
-     int a1, a2, a3;
+     char *a1, *a2, *a3;
 @{
   fprintf (stderr, "error: ");
   fprintf (stderr, s, a1, a2, a3);
@@ -2281,16 +2312,18 @@ error (s, a1, a2, a3)
 @end example
 
 @noindent
-In practice, this works on all machines, and it is much simpler than any
-``correct'' alternative.  Be sure @emph{not} to use a prototype
-for such functions.
+In practice, this works on all machines, since a pointer is generally
+the widest possible kind of argument, and it is much simpler than any
+``correct'' alternative.  Be sure @emph{not} to use a prototype for such
+functions.
 
 However, avoid casting pointers to integers unless you really need to.
-These assumptions really reduce portability, and in most programs they
-are easy to avoid.  In the cases where casting pointers to integers is
-essential---such as, a Lisp interpreter which stores type information as
-well as an address in one word---it is ok to do so, but you'll have to
-make explicit provisions to handle different word sizes.
+Outside of special situations, such casts greatly reduce portability,
+and in most programs they are easy to avoid.  In the cases where casting
+pointers to integers is essential---such as, a Lisp interpreter which
+stores type information as well as an address in one word---it is ok to
+do it, but you'll have to make explicit provisions to handle different
+word sizes.
 
 @node System Functions
 @section Calling System Functions
@@ -2533,6 +2566,7 @@ all these kinds of files.
 @menu
 * GNU Manuals::                 Writing proper manuals.
 * Manual Structure Details::    Specific structure conventions.
+* License for Manuals::         Writing the distribution terms for a manual.
 * NEWS File::                   NEWS files supplement manuals.
 * Change Logs::                 Recording Changes
 * Man Pages::                   Man pages are secondary.
@@ -2544,9 +2578,12 @@ all these kinds of files.
 @section GNU Manuals
 
 The preferred way to document part of the GNU system is to write a
-manual in the Texinfo formatting language.  See the Texinfo manual,
-either the hardcopy, or the on-line version available through
-@code{info} or the Emacs Info subsystem (@kbd{C-h i}).
+manual in the Texinfo formatting language.  This makes it possible to
+produce a good quality formatted book, using @TeX{}, and to generate an
+Info file.  It is also possible to generate HTML output from Texinfo
+source.  See the Texinfo manual, either the hardcopy, or the on-line
+version available through @code{info} or the Emacs Info subsystem
+(@kbd{C-h i}).
 
 Programmers often find it most natural to structure the documentation
 following the structure of the implementation, which they know.  But
@@ -2587,6 +2624,8 @@ It should be set up for convenient access to each topic through Info,
 and for reading straight through (appendixes aside).  A GNU manual
 should give a good introduction to a beginner reading through from the
 start, and should also provide all the details that hackers want.
+The Bison manual is a good example of this---please take a look at it
+to see what we mean.
 
 That is not as hard as it first sounds.  Arrange each chapter as a
 logical breakdown of its topic, but order the sections, and write their
@@ -2611,7 +2650,7 @@ bugs @emph{in the manual}.
 
 Please do not use the term ``pathname'' that is used in Unix
 documentation; use ``file name'' (two words) instead.  We use the term
-``path'' only for search paths, which are lists of file names.
+``path'' only for search paths, which are lists of directory names.
 
 Please do not use the term ``illegal'' to refer to erroneous input to a
 computer program.  Please use ``invalid'' for this, and reserve the term
@@ -2626,7 +2665,7 @@ also contain this information.  If the manual is changing more
 frequently than or independent of the program, also state a version
 number for the manual in both of these places.
 
-Each program documented in the manual should should have a node named
+Each program documented in the manual should have a node named
 @samp{@var{program} Invocation} or @samp{Invoking @var{program}}.  This
 node (together with its subnodes, if any) should describe the program's
 command line arguments and how to run it (the sort of information people
@@ -2644,6 +2683,18 @@ quickly reading just this part of its manual.
 If one manual describes several programs, it should have such a node for
 each program described.
 
+@node License for Manuals
+@section License for Manuals
+
+If the manual contains a copy of the GNU GPL or GNU LGPL, or if it
+contains chapters that make political or personal statements, please
+copy the distribution terms of the GNU Emacs Manual, and adapt it by
+modifying appropriately the list of special chapters that may not be
+modified or deleted.
+
+If the manual does not contain any such chapters, then imitate the
+simpler distribution terms of the Texinfo manual.
+
 @node NEWS File
 @section The NEWS File
 
index 5cb7a89d58b4e1edc66bdfe2c1721ae268e7754e..6f33fa0f0ead6d1043faebb52e0f067904bf8a19 100644 (file)
@@ -621,6 +621,10 @@ AC_CACHE_VAL(ac_cv_path_install,
             grep dspmsg $ac_dir/$ac_prog >/dev/null 2>&1; then
            # AIX install.  It has an incompatible calling convention.
            :
+         elif test $ac_prog = install &&
+           grep pwplus $ac_dir/$ac_prog >/dev/null 2>&1; then
+           # program-specific install script used by HP pwplus--don't use.
+           :
          else
            ac_cv_path_install="$ac_dir/$ac_prog -c"
            break 2
index e05abcd4ad7bd49eac7cc5f4efc0f37b076aaf58..6d9778decedc4a0560d1c616e7384b74333b1bdf 100644 (file)
@@ -3,7 +3,7 @@
 @setfilename standards.info
 @settitle GNU Coding Standards
 @c This date is automagically updated when you save this file:
-@set lastupdate February  9, 1999
+@set lastupdate March 26, 1999
 @c %**end of header
 
 @ifinfo
@@ -290,9 +290,16 @@ non-@sc{ansi} compilers).  And if a program is already written in
 @sc{ansi} C, there's no need to convert it to support non-@sc{ansi}
 compilers.
 
+If you don't know non-@sc{ansi} C, there's no need to learn it; just
+write in @sc{ansi} C.
+
 However, it is easy to support non-@sc{ansi} compilers in most programs,
-so you might still consider doing so when you write a program.  Instead
-of writing function definitions in @sc{ansi} prototype form,
+so you might still consider doing so when you write a program.  And if a
+program you are maintaining has such support, you should try to keep it
+working.
+
+To support pre-@sc{ansi} C, instead of writing function definitions in
+@sc{ansi} prototype form,
 
 @example
 int
@@ -319,11 +326,22 @@ int foo (int, int);
 
 You need such a declaration anyway, in a header file, to get the benefit
 of @sc{ansi} C prototypes in all the files where the function is called.
-And once you have it, you lose nothing by writing the function
-definition in the pre-@sc{ansi} style.
-
-If you don't know non-@sc{ansi} C, there's no need to learn it; just
-write in @sc{ansi} C.
+And once you have the declaration, you normally lose nothing by writing
+the function definition in the pre-@sc{ansi} style.
+
+This technique does not work for integer types narrower than @code{int}.
+If you think of an argument as being of a type narrower than @code{int},
+declare it as @code{int} instead.
+
+There are a few special cases where this technique is hard to use.  For
+example, if a function argument needs to hold the system type
+@code{dev_t}, you run into trouble, because @code{dev_t} is shorter than
+@code{int} on some machines; but you cannot use @code{int} instead,
+because @code{dev_t} is wider than @code{int} on some machines.  There
+is no type you can safely use on all machines in a non-@sc{ansi}
+definition.  The only way to support non-@sc{ansi} C and pass such an
+argument is to check the width of @code{dev_t} using Autoconf and choose
+the argument type accordingly.  This may not be worth the trouble.
 
 @node Source Language
 @section Using Languages Other Than C
@@ -597,7 +615,7 @@ and @samp{--help}.
 
 @table @code
 @item --version
-This option should direct the program to information about its name,
+This option should direct the program to print information about its name,
 version, origin and legal status, all on standard output, and then exit
 successfully.  Other options and arguments should be ignored once this
 is seen, and the program should not perform its normal function.
@@ -881,6 +899,9 @@ Used in @code{tar} and @code{cpio}.
 @item dereference-args
 @samp{-D} in @code{du}.
 
+@item device
+Specify an I/O device (special file name).
+
 @item diacritics
 @samp{-d} in @code{recode}.
 
@@ -1460,6 +1481,9 @@ Used in @code{tar} and @code{cp}.
 @item prompt
 @samp{-p} in @code{ed}.
 
+@item proxy
+Specify an HTTP proxy.
+
 @item query-user
 @samp{-X} in @code{shar}.
 
@@ -1692,6 +1716,9 @@ Used in GDB and @code{objdump}.
 @item time
 Used in @code{ls} and @code{touch}.
 
+@item timeout
+Specify how long to wait before giving up on some operation.
+
 @item to-stdout
 @samp{-O} in @code{tar}.
 
@@ -2158,7 +2185,7 @@ Don't make the program ugly to placate @code{lint}.  Please don't insert any
 casts to @code{void}.  Zero without a cast is perfectly fine as a null
 pointer constant, except when calling a varargs function.
 
-@node  Names
+@node Names
 @section Naming Variables and Functions
 
 The names of global variables and functions in a program serve as
@@ -2170,6 +2197,10 @@ comments.
 Local variable names can be shorter, because they are used only within
 one context, where (presumably) comments explain their purpose.
 
+Try to limit your use of abbreviations in symbol names.  It is ok to
+make a few abbreviations, explain what they mean, and then use them
+frequently, but don't use lots of obscure abbreviations.
+
 Please use underscores to separate words in a name, so that the Emacs
 word commands can be useful within them.  Stick to lower case; reserve
 upper case for macros and @code{enum} constants, and for name-prefixes
@@ -2273,7 +2304,7 @@ that pass their arguments along to @code{printf} and friends:
 @example
 error (s, a1, a2, a3)
      char *s;
-     int a1, a2, a3;
+     char *a1, *a2, *a3;
 @{
   fprintf (stderr, "error: ");
   fprintf (stderr, s, a1, a2, a3);
@@ -2281,16 +2312,18 @@ error (s, a1, a2, a3)
 @end example
 
 @noindent
-In practice, this works on all machines, and it is much simpler than any
-``correct'' alternative.  Be sure @emph{not} to use a prototype
-for such functions.
+In practice, this works on all machines, since a pointer is generally
+the widest possible kind of argument, and it is much simpler than any
+``correct'' alternative.  Be sure @emph{not} to use a prototype for such
+functions.
 
 However, avoid casting pointers to integers unless you really need to.
-These assumptions really reduce portability, and in most programs they
-are easy to avoid.  In the cases where casting pointers to integers is
-essential---such as, a Lisp interpreter which stores type information as
-well as an address in one word---it is ok to do so, but you'll have to
-make explicit provisions to handle different word sizes.
+Outside of special situations, such casts greatly reduce portability,
+and in most programs they are easy to avoid.  In the cases where casting
+pointers to integers is essential---such as, a Lisp interpreter which
+stores type information as well as an address in one word---it is ok to
+do it, but you'll have to make explicit provisions to handle different
+word sizes.
 
 @node System Functions
 @section Calling System Functions
@@ -2533,6 +2566,7 @@ all these kinds of files.
 @menu
 * GNU Manuals::                 Writing proper manuals.
 * Manual Structure Details::    Specific structure conventions.
+* License for Manuals::         Writing the distribution terms for a manual.
 * NEWS File::                   NEWS files supplement manuals.
 * Change Logs::                 Recording Changes
 * Man Pages::                   Man pages are secondary.
@@ -2544,9 +2578,12 @@ all these kinds of files.
 @section GNU Manuals
 
 The preferred way to document part of the GNU system is to write a
-manual in the Texinfo formatting language.  See the Texinfo manual,
-either the hardcopy, or the on-line version available through
-@code{info} or the Emacs Info subsystem (@kbd{C-h i}).
+manual in the Texinfo formatting language.  This makes it possible to
+produce a good quality formatted book, using @TeX{}, and to generate an
+Info file.  It is also possible to generate HTML output from Texinfo
+source.  See the Texinfo manual, either the hardcopy, or the on-line
+version available through @code{info} or the Emacs Info subsystem
+(@kbd{C-h i}).
 
 Programmers often find it most natural to structure the documentation
 following the structure of the implementation, which they know.  But
@@ -2587,6 +2624,8 @@ It should be set up for convenient access to each topic through Info,
 and for reading straight through (appendixes aside).  A GNU manual
 should give a good introduction to a beginner reading through from the
 start, and should also provide all the details that hackers want.
+The Bison manual is a good example of this---please take a look at it
+to see what we mean.
 
 That is not as hard as it first sounds.  Arrange each chapter as a
 logical breakdown of its topic, but order the sections, and write their
@@ -2611,7 +2650,7 @@ bugs @emph{in the manual}.
 
 Please do not use the term ``pathname'' that is used in Unix
 documentation; use ``file name'' (two words) instead.  We use the term
-``path'' only for search paths, which are lists of file names.
+``path'' only for search paths, which are lists of directory names.
 
 Please do not use the term ``illegal'' to refer to erroneous input to a
 computer program.  Please use ``invalid'' for this, and reserve the term
@@ -2626,7 +2665,7 @@ also contain this information.  If the manual is changing more
 frequently than or independent of the program, also state a version
 number for the manual in both of these places.
 
-Each program documented in the manual should should have a node named
+Each program documented in the manual should have a node named
 @samp{@var{program} Invocation} or @samp{Invoking @var{program}}.  This
 node (together with its subnodes, if any) should describe the program's
 command line arguments and how to run it (the sort of information people
@@ -2644,6 +2683,18 @@ quickly reading just this part of its manual.
 If one manual describes several programs, it should have such a node for
 each program described.
 
+@node License for Manuals
+@section License for Manuals
+
+If the manual contains a copy of the GNU GPL or GNU LGPL, or if it
+contains chapters that make political or personal statements, please
+copy the distribution terms of the GNU Emacs Manual, and adapt it by
+modifying appropriately the list of special chapters that may not be
+modified or deleted.
+
+If the manual does not contain any such chapters, then imitate the
+simpler distribution terms of the Texinfo manual.
+
 @node NEWS File
 @section The NEWS File