summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/ChangeLog9
-rw-r--r--gcc/collect2.c26
-rw-r--r--gcc/collect2.h1
-rw-r--r--gcc/intl.c13
-rw-r--r--gcc/intl.h5
5 files changed, 51 insertions, 3 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index b7f04af484b..beff68bb2eb 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,12 @@
+2010-02-14 Marco Poletti <poletti.marco@gmail.com>
+
+ * intl.c (fake_ngettext): New function.
+ * intl.h (fake_ngettext): Declare.
+ (ngettext): Define macro.
+ * collect2.c (notice_translated): New function.
+ (main): Use notice_translated and ngettext.
+ * collect2.h (notice_translated): Declare.
+
2010-02-14 Steven Bosscher <steven@gcc.gnu.org>
* reorg.c (delete_computation): Comment fixes.
diff --git a/gcc/collect2.c b/gcc/collect2.c
index 914015f06f9..120369a2662 100644
--- a/gcc/collect2.c
+++ b/gcc/collect2.c
@@ -430,6 +430,17 @@ notice (const char *cmsgid, ...)
va_end (ap);
}
+/* Notify user of a non-error, without translating the format string. */
+void
+notice_translated (const char *cmsgid, ...)
+{
+ va_list ap;
+
+ va_start (ap, cmsgid);
+ vfprintf (stderr, cmsgid, ap);
+ va_end (ap);
+}
+
/* Die when sys call fails. */
void
@@ -1809,9 +1820,18 @@ main (int argc, char **argv)
if (debug)
{
- notice ("%d constructor(s) found\n", constructors.number);
- notice ("%d destructor(s) found\n", destructors.number);
- notice ("%d frame table(s) found\n", frame_tables.number);
+ notice_translated (ngettext ("%d constructor found\n",
+ "%d constructors found\n",
+ constructors.number),
+ constructors.number);
+ notice_translated (ngettext ("%d destructor found\n",
+ "%d destructors found\n",
+ destructors.number),
+ destructors.number);
+ notice_translated (ngettext("%d frame table found\n",
+ "%d frame tables found\n",
+ frame_tables.number),
+ frame_tables.number);
}
/* If the scan exposed nothing of special interest, there's no need to
diff --git a/gcc/collect2.h b/gcc/collect2.h
index 81113cfb68b..4095734accc 100644
--- a/gcc/collect2.h
+++ b/gcc/collect2.h
@@ -41,6 +41,7 @@ extern char *temporary_firstobj;
extern int vflag, debug;
extern void error (const char *, ...) ATTRIBUTE_PRINTF_1;
+extern void notice_translated (const char *, ...) ATTRIBUTE_PRINTF_1;
extern void notice (const char *, ...) ATTRIBUTE_PRINTF_1;
extern void fatal (const char *, ...) ATTRIBUTE_PRINTF_1 ATTRIBUTE_NORETURN;
extern void fatal_perror (const char *, ...)
diff --git a/gcc/intl.c b/gcc/intl.c
index 63de3ec4d83..47e0b3da051 100644
--- a/gcc/intl.c
+++ b/gcc/intl.c
@@ -121,6 +121,19 @@ gcc_gettext_width (const char *msgstr)
#endif /* ENABLE_NLS */
+#ifndef ENABLE_NLS
+
+const char *
+fake_ngettext (const char *singular, const char *plural, unsigned long n)
+{
+ if (n == 1UL)
+ return singular;
+
+ return plural;
+}
+
+#endif
+
/* Return the indent for successive lines, using the width of
the STR. STR must have been translated already. The string
must be freed by the caller. */
diff --git a/gcc/intl.h b/gcc/intl.h
index 2df9b178c00..61a9434a5cd 100644
--- a/gcc/intl.h
+++ b/gcc/intl.h
@@ -38,8 +38,13 @@ extern size_t gcc_gettext_width (const char *);
# define bindtextdomain(domain, directory) (domain)
# undef gettext
# define gettext(msgid) (msgid)
+# define ngettext(singular,plural,n) fake_ngettext(singular,plural,n)
# define gcc_init_libintl() /* nothing */
# define gcc_gettext_width(s) strlen(s)
+
+extern const char *fake_ngettext(const char *singular,const char *plural,
+ unsigned long int n);
+
#endif
#ifndef _