1  /* Print --version and bug-reporting information in a consistent format.
       2     Copyright (C) 1999, 2003, 2005, 2009-2022 Free Software Foundation, Inc.
       3  
       4     This file is free software: you can redistribute it and/or modify
       5     it under the terms of the GNU Lesser General Public License as
       6     published by the Free Software Foundation, either version 3 of the
       7     License, or (at your option) any later version.
       8  
       9     This file is distributed in the hope that it will be useful,
      10     but WITHOUT ANY WARRANTY; without even the implied warranty of
      11     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
      12     GNU Lesser General Public License for more details.
      13  
      14     You should have received a copy of the GNU Lesser General Public License
      15     along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
      16  
      17  /* Written by Jim Meyering. */
      18  
      19  #ifndef VERSION_ETC_H
      20  # define VERSION_ETC_H 1
      21  
      22  # include <stdarg.h>
      23  # include <stdio.h>
      24  
      25  # ifdef __cplusplus
      26  extern "C"
      27  {
      28  # endif
      29  
      30  extern const char version_etc_copyright[];
      31  
      32  /* The three functions below display the --version information in the
      33     standard way: command and package names, package version, followed
      34     by a short GPLv3+ notice and a list of up to 10 author names.
      35  
      36     If COMMAND_NAME is NULL, the PACKAGE is assumed to be the name of
      37     the program.  The formats are therefore:
      38  
      39     PACKAGE VERSION
      40  
      41     or
      42  
      43     COMMAND_NAME (PACKAGE) VERSION.
      44  
      45     The functions differ in the way they are passed author names: */
      46  
      47  /* N_AUTHORS names are supplied in array AUTHORS.  */
      48  extern void version_etc_arn (FILE *stream,
      49                               const char *command_name, const char *package,
      50                               const char *version,
      51                               const char * const * authors, size_t n_authors);
      52  
      53  /* Names are passed in the NULL-terminated array AUTHORS.  */
      54  extern void version_etc_ar (FILE *stream,
      55                              const char *command_name, const char *package,
      56                              const char *version, const char * const * authors);
      57  
      58  /* Names are passed in the NULL-terminated va_list.  */
      59  extern void version_etc_va (FILE *stream,
      60                              const char *command_name, const char *package,
      61                              const char *version, va_list authors);
      62  
      63  /* Names are passed as separate arguments, with an additional
      64     NULL argument at the end.  */
      65  extern void version_etc (FILE *stream,
      66                           const char *command_name, const char *package,
      67                           const char *version,
      68                           /* const char *author1, ..., NULL */ ...)
      69    _GL_ATTRIBUTE_SENTINEL ((0));
      70  
      71  /* Display the usual "Report bugs to" stanza.  */
      72  extern void emit_bug_reporting_address (void);
      73  
      74  # ifdef __cplusplus
      75  }
      76  # endif
      77  
      78  #endif /* VERSION_ETC_H */