At Tue, 15 Jan 2002 09:41:22 +0900,
Tomohiro KUBOTA wrote:
> Translated messages of gcc-2.95/cpp-2.95/g++-2.95/g77-2.95 is not
> displayed well.  All non-ASCII characters are replaced with "?"
> (question mark).

This problem is resolved with the attached patch.
This patch disables setlocale(LC_MESSAGES, ...) if MULTIBYTE_CHARS
is disabled, because MULTIBYTE_CHARS kick on setlocale(LC_CTYPE, ...),
but this flag is currently off for safety reason on linux.

The patch for debian/rules.patch:

--- debian/rules.patch.vanilla  Sun Jan 20 01:24:47 2002
+++ debian/rules.patch  Sun Jan 20 01:25:57 2002
@@ -60,13 +60,13 @@
        libstdc++-out-of-mem libstdc++-wstring \
        libstdc++-bastring \
        gcc-manpage cpp-dos-newlines libio-doc gcc-doc \
-       strength-red
+       strength-red gcc-message
 all_patches += bootstrap cpp-macro-doc \
        gcc-default-arch \
        libstdc++-out-of-mem libstdc++-wstring \
        libstdc++-bastring \
        gcc-manpage cpp-dos-newlines libio-doc gcc-doc \
-       strength-red
+       strength-red gcc-message
 min_patches += bootstrap cpp-macro-doc \
        libio-doc gcc-doc
 

The new patch for debian/patches/gcc-messages.dpatch:


#! /bin/sh -e

# All lines beginning with `# DPATCH:' are a description of the patch.
# DP: avoid setlocale(LC_MESSAGES, ...) not to set LC_MESSAGES, because
# DP: some environment except for setting LANG=C fail to display libc 
# DP: message.

if [ $# -eq 3 -a "$2" = '-d' ]; then
    pdir="-d $3"
elif [ $# -ne 1 ]; then
    echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
    exit 1
fi
case "$1" in
    -patch) patch $pdir -f --no-backup-if-mismatch -p0 < $0;;
    -unpatch) patch $pdir -f --no-backup-if-mismatch -R -p0 < $0;;
    *)
        echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
        exit 1
esac
exit 0

2002-01-20  GOTO Masanori  <[EMAIL PROTECTED]>

        * cccp.c: avoid setlocale(LC_MESSAGES, ...) if MULTIBYTE_CHARS is not 
set.
        * collect2.c: likewise.
        * cppmain.c: likewise.
        * gcc.c: likewise.
        * gcov.c: likewise.
        * protoize.c: likewise.
        * toplev.c: likewise.

--- gcc.vanilla/cccp.c  Wed Sep 19 13:32:46 2001
+++ gcc/cccp.c  Sun Jan 20 00:56:45 2002
@@ -1246,7 +1246,9 @@
 #endif
 
 #ifdef HAVE_LC_MESSAGES
+#ifdef MULTIBYTE_CHARS
   setlocale (LC_MESSAGES, "");
+#endif
 #endif
   (void) bindtextdomain (PACKAGE, localedir);
   (void) textdomain (PACKAGE);
--- gcc.vanilla/collect2.c      Fri Jan 26 04:39:42 2001
+++ gcc/collect2.c      Sun Jan 20 00:57:10 2002
@@ -1018,7 +1018,9 @@
 #endif
 
 #ifdef HAVE_LC_MESSAGES
+#ifdef MULTIBYTE_CHARS
   setlocale (LC_MESSAGES, "");
+#endif
 #endif
   (void) bindtextdomain (PACKAGE, localedir);
   (void) textdomain (PACKAGE);
--- gcc.vanilla/cppmain.c       Tue May 11 00:24:36 1999
+++ gcc/cppmain.c       Sun Jan 20 00:57:39 2002
@@ -53,7 +53,9 @@
   progname = p;
 
 #ifdef HAVE_LC_MESSAGES
+#ifdef MULTIBYTE_CHARS
   setlocale (LC_MESSAGES, "");
+#endif
 #endif
   (void) bindtextdomain (PACKAGE, localedir);
   (void) textdomain (PACKAGE);
--- gcc.vanilla/gcc.c   Wed Oct  3 13:33:43 2001
+++ gcc/gcc.c   Sun Jan 20 00:58:00 2002
@@ -4654,7 +4654,9 @@
   programname = p;
 
 #ifdef HAVE_LC_MESSAGES
+#ifdef MULTIBYTE_CHARS
   setlocale (LC_MESSAGES, "");
+#endif
 #endif
   (void) bindtextdomain (PACKAGE, localedir);
   (void) textdomain (PACKAGE);
--- gcc.vanilla/gcov.c  Sat Apr 17 04:52:19 1999
+++ gcc/gcov.c  Sun Jan 20 00:58:30 2002
@@ -227,7 +227,9 @@
      char **argv;
 {
 #ifdef HAVE_LC_MESSAGES
+#ifdef MULTIBYTE_CHARS
   setlocale (LC_MESSAGES, "");
+#endif
 #endif
   (void) bindtextdomain (PACKAGE, localedir);
   (void) textdomain (PACKAGE);
--- gcc.vanilla/protoize.c      Sat Apr 17 04:52:36 1999
+++ gcc/protoize.c      Sun Jan 20 00:56:14 2002
@@ -4559,7 +4559,9 @@
   pname = pname ? pname+1 : argv[0];
 
 #ifdef HAVE_LC_MESSAGES
+#ifdef MULTIBYTE_CHARS
   setlocale (LC_MESSAGES, "");
+#endif
 #endif
   (void) bindtextdomain (PACKAGE, localedir);
   (void) textdomain (PACKAGE);
--- gcc.vanilla/toplev.c        Sat Apr  7 13:32:43 2001
+++ gcc/toplev.c        Sun Jan 20 00:59:14 2002
@@ -4791,7 +4791,9 @@
 #endif
 
 #ifdef HAVE_LC_MESSAGES
+#ifdef MULTIBYTE_CHARS
   setlocale (LC_MESSAGES, "");
+#endif
 #endif
   (void) bindtextdomain (PACKAGE, localedir);
   (void) textdomain (PACKAGE);


The test result of this patch:

[EMAIL PROTECTED]:~/debian/sample/gcc/gcc-2.95-2.95.4.ds8/build-native/gcc> 
./xgcc aaa
xgcc: aaa: No such file or directory
xgcc: No input files
[EMAIL PROTECTED]:~/debian/sample/gcc/gcc-2.95-2.95.4.ds8/build-native/gcc> 
setenv | grep LANG
LANG=ja_JP.eucJP

-- gotom


Reply via email to