about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog4
-rw-r--r--debug/pcprofiledump.c17
2 files changed, 15 insertions, 6 deletions
diff --git a/ChangeLog b/ChangeLog
index c884b4fd58..2ffbc3c955 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,9 @@
 2007-08-21  Ulrich Drepper  <drepper@redhat.com>
 
+	[BZ #4925]
+	* debug/pcprofiledump.c: Turn on internationalization by calling
+	setlocale.  Patch mostly by Benno Schulenberg.
+
 	[BZ #4936]
 	* iconv/gconv.c (__gconv): If flush was successful, clear rest of
 	the state.
diff --git a/debug/pcprofiledump.c b/debug/pcprofiledump.c
index 210e5089e9..62c0d73f40 100644
--- a/debug/pcprofiledump.c
+++ b/debug/pcprofiledump.c
@@ -1,5 +1,5 @@
 /* Dump information generated by PC profiling.
-   Copyright (C) 1999, 2002 Free Software Foundation, Inc.
+   Copyright (C) 1999, 2002, 2007 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@cygnus.com>, 1999.
 
@@ -37,6 +37,7 @@
 
 #include "../version.h"
 
+#define PACKAGE _libc_intl_domainname
 
 #ifndef _
 # define _(Str) gettext (Str)
@@ -75,14 +76,17 @@ static struct argp argp =
 int
 main (int argc, char *argv[])
 {
-  int fd;
-  int remaining;
-  int must_swap;
-  uint32_t word;
+  /* Set locale via LC_ALL.  */
+  setlocale (LC_ALL, "");
+
+  /* Set the text message domain.  */
+  textdomain (PACKAGE);
 
   /* Parse and process arguments.  */
+  int remaining;
   argp_parse (&argp, argc, argv, 0, &remaining, NULL);
 
+  int fd;
   if (remaining == argc)
     fd = STDIN_FILENO;
   else if (remaining + 1 != argc)
@@ -102,11 +106,12 @@ main (int argc, char *argv[])
 
   /* Read the first 4-byte word.  It contains the information about
      the word size and the endianess.  */
+  uint32_t word;
   if (TEMP_FAILURE_RETRY (read (fd, &word, 4)) != 4)
     error (EXIT_FAILURE, errno, _("cannot read header"));
 
   /* Check whether we have to swap the byte order.  */
-  must_swap = (word & 0xfffffff0) == bswap_32 (0xdeb00000);
+  int must_swap = (word & 0xfffffff0) == bswap_32 (0xdeb00000);
   if (must_swap)
     word = bswap_32 (word);