diff options
Diffstat (limited to 'elf')
-rw-r--r-- | elf/ldconfig.c | 22 | ||||
-rw-r--r-- | elf/ldd.bash.in | 6 | ||||
-rw-r--r-- | elf/sln.c | 52 | ||||
-rw-r--r-- | elf/sprof.c | 28 |
4 files changed, 91 insertions, 17 deletions
diff --git a/elf/ldconfig.c b/elf/ldconfig.c index d7ad8c8812..78a0f0c2a8 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\ +<http://www.gnu.org/software/libc/bugs.html>.\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 ffd125dadf..1bbefe2ff0 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: -<http://www.gnu.org/software/libc/bugs.html>." +" + echo $"For bug reporting instructions, please see: +<http://www.gnu.org/software/libc/bugs.html>. +" exit 0 ;; -d | --d | --da | --dat | --data | --data- | --data-r | --data-re | \ diff --git a/elf/sln.c b/elf/sln.c index 8e66510bb2..a8210c1fc0 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 <error.h> #include <errno.h> +#include <libintl.h> +#include <locale.h> #include <sys/types.h> #include <sys/stat.h> #include <unistd.h> @@ -28,19 +34,37 @@ #include <string.h> #include <limits.h> +#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\ +<http://www.gnu.org/software/libc/bugs.html>.\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 4244e05c38..ad723f3416 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\ -<http://www.gnu.org/software/libc/bugs.html>.\n"); +static const char doc[] = N_("Read and display shared object profiling data."); +//For bug reporting instructions, please see:\n \ +//<http://www.gnu.org/software/libc/bugs.html>.\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\ +<http://www.gnu.org/software/libc/bugs.html>.\n")); + default: + break; + } + return (char *) text; +} + + /* Print the version information. */ static void print_version (FILE *stream, struct argp_state *state) |