From cbbcaf2369b2111d9388ce54ea18854319dbfab3 Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Fri, 6 Feb 2009 20:13:07 +0000 Subject: * debug/xtrace.sh: Unify translatable messages. * elf/ldd.bash.in: Likewise. * elf/sprof.c: Likewise. * locale/programs/locale.c: Likewise. * malloc/memusage.sh: Likewise. * nss/getent.c: Likewise. 2009-02-06 Joseph Myers * debug/pcprofiledump.c (print_version, argp_program_version_hook): New function. * elf/ldconfig.c (more_help): New function. (argp): Use it. * elf/sln.c (usage): New function. (main): Support --help and --version. * malloc/memusagestat.c (print_version): New function. (argp_program_version_hook): New variable. * nscd/nscd.c (more_help): New function. (argp): Use it. * posix/getconf.c (main): Send --version output to stdout. Support --help. * sunrpc/rpc_main.c (usage, options_usage): Take STREAM and STATUS arguments. All callers changed. (print_version): New function. (parseargs): Support --help and --version. * sunrpc/rpcinfo.c (usage): Take STREAM argument. All callers changed. (print_version): New function. (main): Use getopt_long. Support --help and --version. * sysdeps/unix/sysv/linux/lddlibc4.c (main): Support --help and --version. 2009-02-06 Ulrich Drepper --- elf/ldconfig.c | 22 +++++++++++++++++++++- elf/ldd.bash.in | 6 ++++-- elf/sln.c | 52 ++++++++++++++++++++++++++++++++++++++++++---------- elf/sprof.c | 28 ++++++++++++++++++++++++---- 4 files changed, 91 insertions(+), 17 deletions(-) (limited to 'elf') diff --git a/elf/ldconfig.c b/elf/ldconfig.c index d7ad8c8..78a0f0c 100644 --- a/elf/ldconfig.c +++ b/elf/ldconfig.c @@ -132,6 +132,9 @@ static void print_version (FILE *stream, struct argp_state *state); void (*argp_program_version_hook) (FILE *, struct argp_state *) = print_version; +/* Function to print some extra text in the help message. */ +static char *more_help (int key, const char *text, void *input); + /* Definitions of arguments for argp functions. */ static const struct argp_option options[] = { @@ -161,7 +164,7 @@ static error_t parse_opt (int key, char *arg, struct argp_state *state); /* Data structure to communicate with argp functions. */ static struct argp argp = { - options, parse_opt, NULL, doc, NULL, NULL, NULL + options, parse_opt, NULL, doc, NULL, more_help, NULL }; /* Check if string corresponds to an important hardware capability or @@ -288,6 +291,23 @@ parse_opt (int key, char *arg, struct argp_state *state) return 0; } +/* Print bug-reporting information in the help message. */ +static char * +more_help (int key, const char *text, void *input) +{ + switch (key) + { + case ARGP_KEY_HELP_EXTRA: + /* We print some extra information. */ + return strdup (gettext ("\ +For bug reporting instructions, please see:\n\ +.\n")); + default: + break; + } + return (char *) text; +} + /* Print the version information. */ static void print_version (FILE *stream, struct argp_state *state) diff --git a/elf/ldd.bash.in b/elf/ldd.bash.in index ffd125d..1bbefe2 100644 --- a/elf/ldd.bash.in +++ b/elf/ldd.bash.in @@ -52,8 +52,10 @@ warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -r, --function-relocs process data and function relocations -u, --unused print unused direct dependencies -v, --verbose print all information -For bug reporting instructions, please see: -." +" + echo $"For bug reporting instructions, please see: +. +" exit 0 ;; -d | --d | --da | --dat | --data | --data- | --data-r | --data-re | \ diff --git a/elf/sln.c b/elf/sln.c index 8e66510..a8210c1 100644 --- a/elf/sln.c +++ b/elf/sln.c @@ -1,5 +1,5 @@ /* `sln' program to create symbolic links between files. - Copyright (C) 1998, 1999, 2001 Free Software Foundation, Inc. + Copyright (C) 1998, 1999, 2001, 2009 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -16,9 +16,15 @@ License along with the GNU C Library; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ - + +#ifdef HAVE_CONFIG_H +# include "config.h" +#endif + #include #include +#include +#include #include #include #include @@ -28,19 +34,37 @@ #include #include +#include "../version.h" + +#define PACKAGE _libc_intl_domainname + #if !defined S_ISDIR && defined S_IFDIR #define S_ISDIR(m) (((m) & S_IFMT) == S_IFDIR) #endif static int makesymlink (const char *src, const char *dest); static int makesymlinks (const char *file); +static void usage (void); int main (int argc, char **argv) { + /* Set locale via LC_ALL. */ + setlocale (LC_ALL, ""); + + /* Set the text message domain. */ + textdomain (PACKAGE); + switch (argc) { case 2: + if (strcmp (argv[1], "--version") == 0) { + printf ("sln (GNU libc) %s\n", VERSION); + return 0; + } else if (strcmp (argv[1], "--help") == 0) { + usage (); + return 0; + } return makesymlinks (argv [1]); break; @@ -49,12 +73,20 @@ main (int argc, char **argv) break; default: - printf ("Usage: %s src dest|file\n", argv [0]); + usage (); return 1; break; } } +static void +usage (void) +{ + printf (_("Usage: sln src dest|file\n\n")); + printf (_("For bug reporting instructions, please see:\n\ +.\n")); +} + static int makesymlinks (file) const char *file; @@ -75,7 +107,7 @@ makesymlinks (file) fp = fopen (file, "r"); if (fp == NULL) { - fprintf (stderr, "%s: file open error: %m\n", file); + fprintf (stderr, _("%s: file open error: %m\n"), file); return 1; } } @@ -112,7 +144,7 @@ makesymlinks (file) ++cp; if (*cp == '\0') { - fprintf (stderr, "No target in line %d\n", lineno); + fprintf (stderr, _("No target in line %d\n"), lineno); ret = 1; continue; } @@ -144,13 +176,13 @@ makesymlink (src, dest) { if (S_ISDIR (stats.st_mode)) { - fprintf (stderr, "%s: destination must not be a directory\n", + fprintf (stderr, _("%s: destination must not be a directory\n"), dest); return 1; } else if (unlink (dest) && errno != ENOENT) { - fprintf (stderr, "%s: failed to remove the old destination\n", + fprintf (stderr, _("%s: failed to remove the old destination\n"), dest); return 1; } @@ -158,7 +190,7 @@ makesymlink (src, dest) else if (errno != ENOENT) { error = strerror (errno); - fprintf (stderr, "%s: invalid destination: %s\n", dest, error); + fprintf (stderr, _("%s: invalid destination: %s\n"), dest, error); return -1; } @@ -173,7 +205,7 @@ makesymlink (src, dest) { error = strerror (errno); unlink (dest); - fprintf (stderr, "Invalid link from \"%s\" to \"%s\": %s\n", + fprintf (stderr, _("Invalid link from \"%s\" to \"%s\": %s\n"), src, dest, error); return 1; } @@ -182,7 +214,7 @@ makesymlink (src, dest) else { error = strerror (errno); - fprintf (stderr, "Invalid link from \"%s\" to \"%s\": %s\n", + fprintf (stderr, _("Invalid link from \"%s\" to \"%s\": %s\n"), src, dest, error); return 1; } diff --git a/elf/sprof.c b/elf/sprof.c index 4244e05..ad723f3 100644 --- a/elf/sprof.c +++ b/elf/sprof.c @@ -86,9 +86,9 @@ static const struct argp_option options[] = }; /* Short description of program. */ -static const char doc[] = N_("Read and display shared object profiling data.\v\ -For bug reporting instructions, please see:\n\ -.\n"); +static const char doc[] = N_("Read and display shared object profiling data."); +//For bug reporting instructions, please see:\n \ +//.\n"); /* Strings for arguments in help texts. */ static const char args_doc[] = N_("SHOBJ [PROFDATA]"); @@ -96,10 +96,13 @@ static const char args_doc[] = N_("SHOBJ [PROFDATA]"); /* Prototype for option handler. */ static error_t parse_opt (int key, char *arg, struct argp_state *state); +/* Function to print some extra text in the help message. */ +static char *more_help (int key, const char *text, void *input); + /* Data structure to communicate with argp functions. */ static struct argp argp = { - options, parse_opt, args_doc, doc + options, parse_opt, args_doc, doc, NULL, more_help }; @@ -347,6 +350,23 @@ parse_opt (int key, char *arg, struct argp_state *state) } +static char * +more_help (int key, const char *text, void *input) +{ + switch (key) + { + case ARGP_KEY_HELP_EXTRA: + /* We print some extra information. */ + return strdup (gettext ("\ +For bug reporting instructions, please see:\n\ +.\n")); + default: + break; + } + return (char *) text; +} + + /* Print the version information. */ static void print_version (FILE *stream, struct argp_state *state) -- cgit v1.1