aboutsummaryrefslogtreecommitdiff
path: root/elf
diff options
context:
space:
mode:
Diffstat (limited to 'elf')
-rw-r--r--elf/ldconfig.c22
-rw-r--r--elf/ldd.bash.in6
-rw-r--r--elf/sln.c52
-rw-r--r--elf/sprof.c28
4 files changed, 91 insertions, 17 deletions
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\
+<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 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:
-<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 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 <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 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\
-<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)