This is the mail archive of the
gdb-patches@sources.redhat.com
mailing list for the GDB project.
Re: RFA: start of i18n
Andrew> And the rest. Just suggest moving:
Andrew> [ ... ]
Andrew> to "gdb_locale.h" and then including that.
Ok, I did that. New patch appended. I still have gdb_locale.h
included in defs.h. My rationale is that most files will eventually
want to use these macros. Is this how you'd like it to be done? If
not I can easily remove the #include from defs.h and just include it
in each .c file by need.
Andrew> Does src/Makefile.in:all-gdb need any dependency tweaks?
Not yet. That will come with the addition of the po directory.
Tom
Index: ChangeLog
from Tom Tromey <tromey@redhat.com>
* gdb_locale.h: New file.
* Makefile.in (GDB_CFLAGS): Define LOCALEDIR.
(defs_h): Added gdb_locale.h.
* configure, config.in: Rebuilt.
* configure.in (PACKAGE): Define.
* defs.h: Include gdb_locale.h.
* main.c (captured_main): Call setlocale, bindtextdomain,
textdomain.
Index: Makefile.in
===================================================================
RCS file: /cvs/src/src/gdb/Makefile.in,v
retrieving revision 1.209
diff -u -r1.209 Makefile.in
--- Makefile.in 14 Jun 2002 22:30:41 -0000 1.209
+++ Makefile.in 21 Jun 2002 22:54:14 -0000
@@ -312,7 +312,7 @@
# your system doesn't have fcntl.h in /usr/include (which is where it
# should be according to Posix).
DEFS = @DEFS@
-GDB_CFLAGS = -I. -I$(srcdir) -I$(srcdir)/config $(DEFS)
+GDB_CFLAGS = -I. -I$(srcdir) -I$(srcdir)/config -DLOCALEDIR="\"$(prefix)/share/locale\"" $(DEFS)
# M{H,T}_CFLAGS, if defined, have host- and target-dependent CFLAGS
# from the config directory.
@@ -619,7 +619,7 @@
cp_abi_h = cp-abi.h
dcache_h = dcache.h
defs_h = defs.h $(xm_h) $(tm_h) $(nm_h) config.status config.h \
- gdbarch.h ui-file.h $(INCLUDE_DIR)/gdb/signals.h
+ gdbarch.h ui-file.h $(INCLUDE_DIR)/gdb/signals.h gdb_locale.h
doublest_h = doublest.h $(floatformat_h)
dwarf2cfi_h = dwarf2cfi.h
event_loop_h = event-loop.h
Index: configure.in
===================================================================
RCS file: /cvs/src/src/gdb/configure.in,v
retrieving revision 1.87
diff -u -r1.87 configure.in
--- configure.in 11 May 2002 00:40:25 -0000 1.87
+++ configure.in 21 Jun 2002 22:54:20 -0000
@@ -33,10 +33,11 @@
AC_CONFIG_AUX_DIR(`cd $srcdir;pwd`/..)
AC_CANONICAL_SYSTEM
-dnl gdb doesn't use gettext, but bfd does. We call this to ensure we
-dnl link with the correct libraries.
+dnl Set up for gettext. PACKAGE is used when we call bindtextdomain.
ALL_LINGUAS=
CY_GNU_GETTEXT
+AC_DEFINE(PACKAGE, "gdb", [Name of this package. ])
+
dnl List of object files added by configure.
Index: defs.h
===================================================================
RCS file: /cvs/src/src/gdb/defs.h,v
retrieving revision 1.89
diff -u -r1.89 defs.h
--- defs.h 15 Jun 2002 18:45:31 -0000 1.89
+++ defs.h 21 Jun 2002 22:54:21 -0000
@@ -39,6 +39,8 @@
#include <unistd.h>
#endif
+#include "gdb_locale.h"
+
/* For ``enum target_signal''. */
#include "gdb/signals.h"
Index: gdb_locale.h
===================================================================
RCS file: gdb_locale.h
diff -N gdb_locale.h
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ gdb_locale.h 21 Jun 2002 22:54:25 -0000
@@ -0,0 +1,46 @@
+/* GDB-friendly replacement for <locale.h>.
+ Copyright 2002 Free Software Foundation, Inc.
+
+ This file is part of GDB.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA. */
+
+#ifndef GDB_LOCALE_H
+#define GDB_LOCALE_H
+
+#ifdef HAVE_LOCALE_H
+# include <locale.h>
+#endif
+
+#ifdef ENABLE_NLS
+# include <libintl.h>
+# define _(String) gettext (String)
+# ifdef gettext_noop
+# define N_(String) gettext_noop (String)
+# else
+# define N_(String) (String)
+# endif
+#else
+# define gettext(Msgid) (Msgid)
+# define dgettext(Domainname, Msgid) (Msgid)
+# define dcgettext(Domainname, Msgid, Category) (Msgid)
+# define textdomain(Domainname) while (0) /* nothing */
+# define bindtextdomain(Domainname, Dirname) while (0) /* nothing */
+# define _(String) (String)
+# define N_(String) (String)
+#endif
+
+#endif /* GDB_LOCALE_H */
Index: main.c
===================================================================
RCS file: /cvs/src/src/gdb/main.c,v
retrieving revision 1.16
diff -u -r1.16 main.c
--- main.c 17 Jan 2002 22:15:17 -0000 1.16
+++ main.c 21 Jun 2002 22:54:28 -0000
@@ -157,6 +157,15 @@
long time_at_startup = get_run_time ();
+#if defined (HAVE_SETLOCALE) && defined (HAVE_LC_MESSAGES)
+ setlocale (LC_MESSAGES, "");
+#endif
+#if defined (HAVE_SETLOCALE)
+ setlocale (LC_CTYPE, "");
+#endif
+ bindtextdomain (PACKAGE, LOCALEDIR);
+ textdomain (PACKAGE);
+
START_PROGRESS (argv[0], 0);
#ifdef MPW