2001-07-22  Bruno Haible  <haible@clisp.cons.org>

	* intl/libintl.h (ngettext, dngettext, dcngettext): Use both msgid1
	and msgid2 for printf format argument checking.
This commit is contained in:
Ulrich Drepper 2001-07-24 22:16:09 +00:00
parent 0db597422f
commit f369623d6d
5 changed files with 21 additions and 5 deletions

View File

@ -1,3 +1,8 @@
2001-07-22 Bruno Haible <haible@clisp.cons.org>
* intl/libintl.h (ngettext, dngettext, dcngettext): Use both msgid1
and msgid2 for printf format argument checking.
2001-07-24 Ulrich Drepper <drepper@redhat.com> 2001-07-24 Ulrich Drepper <drepper@redhat.com>
* iconv/gconv_cache.c (find_module): Don't allocate room for the * iconv/gconv_cache.c (find_module): Don't allocate room for the

View File

@ -54,20 +54,20 @@ extern char *__dcgettext (__const char *__domainname,
number N. */ number N. */
extern char *ngettext (__const char *__msgid1, __const char *__msgid2, extern char *ngettext (__const char *__msgid1, __const char *__msgid2,
unsigned long int __n) unsigned long int __n)
__THROW __attribute_format_arg__ (1); __THROW __attribute_format_arg__ (1) __attribute_format_arg__ (2);
/* Similar to `dgettext' but select the plural form corresponding to the /* Similar to `dgettext' but select the plural form corresponding to the
number N. */ number N. */
extern char *dngettext (__const char *__domainname, __const char *__msgid1, extern char *dngettext (__const char *__domainname, __const char *__msgid1,
__const char *__msgid2, unsigned long int __n) __const char *__msgid2, unsigned long int __n)
__THROW __attribute_format_arg__ (2); __THROW __attribute_format_arg__ (2) __attribute_format_arg__ (3);
/* Similar to `dcgettext' but select the plural form corresponding to the /* Similar to `dcgettext' but select the plural form corresponding to the
number N. */ number N. */
extern char *dcngettext (__const char *__domainname, __const char *__msgid1, extern char *dcngettext (__const char *__domainname, __const char *__msgid1,
__const char *__msgid2, unsigned long int __n, __const char *__msgid2, unsigned long int __n,
int __category) int __category)
__THROW __attribute_format_arg__ (2); __THROW __attribute_format_arg__ (2) __attribute_format_arg__ (3);
/* Set the current default message catalog to DOMAINNAME. /* Set the current default message catalog to DOMAINNAME.

View File

@ -1,3 +1,8 @@
2001-07-24 Ulrich Drepper <drepper@redhat.com>
* tst-context.c (main): Print explanation before bailing out
because context handling is not supported.
2001-07-23 Ulrich Drepper <drepper@redhat.com> 2001-07-23 Ulrich Drepper <drepper@redhat.com>
* Makefile (tests): Add tst-context. * Makefile (tests): Add tst-context.

View File

@ -67,7 +67,10 @@ main (void)
if (getcontext (&mctx) != 0) if (getcontext (&mctx) != 0)
{ {
if (errno == ENOSYS) if (errno == ENOSYS)
exit (0); {
puts ("context handling not supported");
exit (0);
}
printf ("%s: getcontext: %m\n", __FUNCTION__); printf ("%s: getcontext: %m\n", __FUNCTION__);
exit (1); exit (1);

View File

@ -162,7 +162,10 @@
/* At some point during the gcc 2.8 development the `format_arg' attribute /* At some point during the gcc 2.8 development the `format_arg' attribute
for functions was introduced. We don't want to use it unconditionally for functions was introduced. We don't want to use it unconditionally
(although this would be possible) since it generates warnings. */ (although this would be possible) since it generates warnings.
If several `format_arg' attributes are given for the same function, in
gcc-3.0 and older, all but the last one are ignored. In newer gccs,
all designated arguments are considered. */
#if __GNUC_PREREQ (2,8) #if __GNUC_PREREQ (2,8)
# define __attribute_format_arg__(x) __attribute__ ((__format_arg__ (x))) # define __attribute_format_arg__(x) __attribute__ ((__format_arg__ (x)))
#else #else