summaryrefslogtreecommitdiff
path: root/lib/version-etc.c
diff options
context:
space:
mode:
authorJim Meyering <jim@meyering.net>2003-09-18 19:39:12 +0000
committerJim Meyering <jim@meyering.net>2003-09-18 19:39:12 +0000
commitc6ec14449470fce01a93bd0724ea3146c3ba3e7e (patch)
tree6a222465ed5113f2f2f011396c07b2cefcae946f /lib/version-etc.c
parent2c5fbb29a6c44279b909a2a781cd2c3cb84bad0f (diff)
downloadcoreutils-c6ec14449470fce01a93bd0724ea3146c3ba3e7e.tar.xz
revert previous change
Diffstat (limited to 'lib/version-etc.c')
-rw-r--r--lib/version-etc.c104
1 files changed, 12 insertions, 92 deletions
diff --git a/lib/version-etc.c b/lib/version-etc.c
index 031c2e921..663aa8dcf 100644
--- a/lib/version-etc.c
+++ b/lib/version-etc.c
@@ -21,13 +21,9 @@
# include <config.h>
#endif
-#include <stdarg.h>
#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
#include "unlocked-io.h"
#include "version-etc.h"
-#include "xalloc.h"
#include "gettext.h"
#define _(msgid) gettext (msgid)
@@ -39,77 +35,26 @@ char* version_etc_copyright =
"Copyright (C) 2003 Free Software Foundation, Inc.";
-/* Like version_etc, below, but with the NULL-terminated author list
- provided via a variable of type va_list. */
-void
-version_etc_va (FILE *stream,
- char const *command_name, char const *package,
- char const *version, va_list authors)
-{
- unsigned int n_authors;
- va_list saved_authors;
+/* Display the --version information the standard way.
-#ifdef __va_copy
- __va_copy (saved_authors, authors);
-#else
- saved_authors = authors;
-#endif
+ If COMMAND_NAME is NULL, the PACKAGE is asumed to be the name of
+ the program. The formats are therefore:
- for (n_authors = 0; va_arg (authors, char const *); ++n_authors)
- {
- /* empty */
- }
- va_end (authors);
+ PACKAGE VERSION
- if (n_authors == 0)
- abort ();
+ or
+ COMMAND_NAME (PACKAGE) VERSION. */
+void
+version_etc (FILE *stream,
+ const char *command_name, const char *package,
+ const char *version, const char *authors)
+{
if (command_name)
fprintf (stream, "%s (%s) %s\n", command_name, package, version);
else
fprintf (stream, "%s %s\n", package, version);
-
- switch (n_authors)
- {
- case 1:
- vfprintf (stream, _("Written by %s.\n"), saved_authors);
- break;
- case 2:
- vfprintf (stream, _("Written by %s and %s.\n"), saved_authors);
- break;
- case 3:
- vfprintf (stream, _("Written by %s, %s, and %s.\n"), saved_authors);
- break;
- case 4:
- vfprintf (stream, _("Written by %s, %s, %s, and %s.\n"), saved_authors);
- break;
- default:
- {
-
- /* Note that the following must have one `%s' and one `%%s'. */
-#define FMT_TEMPLATE _("Written by %sand %%s.\n")
-
- /* for the string "%s, %s, ..., %s, " */
- size_t s_len = (n_authors - 1) * strlen ("%s, ");
- char *s_fmt = xmalloc (s_len + 1);
-
- /* This could be a few bytes tighter, but don't bother because
- that'd just make it a little more fragile. */
- char *full_fmt = xmalloc (strlen (FMT_TEMPLATE) + s_len + 1);
-
- unsigned int i;
- char *s = s_fmt;
- for (i = 0; i < n_authors - 1; i++)
- s = stpcpy (s, "%s, ");
- sprintf (full_fmt, FMT_TEMPLATE, s_fmt);
- free (s_fmt);
-
- vfprintf (stream, full_fmt, saved_authors);
- free (full_fmt);
- }
- break;
- }
- va_end (saved_authors);
+ fprintf (stream, _("Written by %s.\n"), authors);
putc ('\n', stream);
fputs (version_etc_copyright, stream);
@@ -120,28 +65,3 @@ This is free software; see the source for copying conditions. There is NO\n\
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n"),
stream);
}
-
-
-/* Display the --version information the standard way.
-
- If COMMAND_NAME is NULL, the PACKAGE is asumed to be the name of
- the program. The formats are therefore:
-
- PACKAGE VERSION
-
- or
-
- COMMAND_NAME (PACKAGE) VERSION.
-
- There must be one or more author names (each as a separate string)
- after the VERSION argument, and the final argument must be `NULL'. */
-void
-version_etc (FILE *stream,
- char const *command_name, char const *package,
- char const *version, ...)
-{
- va_list authors;
-
- va_start (authors, version);
- version_etc_va (stream, command_name, package, version, authors);
-}