diff options
-rw-r--r-- | gcc/ChangeLog | 9 | ||||
-rw-r--r-- | gcc/collect2.c | 26 | ||||
-rw-r--r-- | gcc/collect2.h | 1 | ||||
-rw-r--r-- | gcc/intl.c | 13 | ||||
-rw-r--r-- | gcc/intl.h | 5 |
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 _ |