aboutsummaryrefslogtreecommitdiffstats
path: root/intl/printf-args.c
diff options
context:
space:
mode:
authorMarcus Brinkmann <[email protected]>2006-03-14 12:44:14 +0000
committerMarcus Brinkmann <[email protected]>2006-03-14 12:44:14 +0000
commite0006200c25df69965af5aea7e1a11fe67c70db7 (patch)
tree6d3444ef20371e9fbfa03f85bb58746b1d32b2ae /intl/printf-args.c
parent2006-03-06 Marcus Brinkmann <[email protected]> (diff)
downloadlibgpg-error-e0006200c25df69965af5aea7e1a11fe67c70db7.tar.gz
libgpg-error-e0006200c25df69965af5aea7e1a11fe67c70db7.zip
2006-03-14 Marcus Brinkmann <[email protected]>
Many files regenerated. * src/Makefile.am (gpg_error_CPPFLAGS, libgpg_error_la_CPPFLAGS): Add -I../intl. * Makefile.am (SUBDIRS): Add intl. * configure.ac (AC_CONFIG_FILES): Add intl/Makefile. (AM_GNU_GETTEXT_VERSION): Bump to 0.14.5. intl/ 2005-05-23 GNU <[email protected]> * Version 0.14.5 released. m4/ 2006-03-14 gettextize <[email protected]> * codeset.m4: Upgrade to gettext-0.14.5. * gettext.m4: Upgrade to gettext-0.14.5. * glibc2.m4: New file, from gettext-0.14.5. * glibc21.m4: Upgrade to gettext-0.14.5. * iconv.m4: Upgrade to gettext-0.14.5. * intdiv0.m4: Upgrade to gettext-0.14.5. * intmax.m4: New file, from gettext-0.14.5. * inttypes.m4: Upgrade to gettext-0.14.5. * inttypes_h.m4: Upgrade to gettext-0.14.5. * inttypes-pri.m4: Upgrade to gettext-0.14.5. * isc-posix.m4: Upgrade to gettext-0.14.5. * lcmessage.m4: Upgrade to gettext-0.14.5. * lib-ld.m4: Upgrade to gettext-0.14.5. * lib-link.m4: Upgrade to gettext-0.14.5. * lib-prefix.m4: Upgrade to gettext-0.14.5. * longdouble.m4: New file, from gettext-0.14.5. * longlong.m4: New file, from gettext-0.14.5. * nls.m4: Upgrade to gettext-0.14.5. * po.m4: Upgrade to gettext-0.14.5. * printf-posix.m4: New file, from gettext-0.14.5. * progtest.m4: Upgrade to gettext-0.14.5. * signed.m4: New file, from gettext-0.14.5. * size_max.m4: New file, from gettext-0.14.5. * stdint_h.m4: Upgrade to gettext-0.14.5. * uintmax_t.m4: Upgrade to gettext-0.14.5. * ulonglong.m4: Upgrade to gettext-0.14.5. * wchar_t.m4: New file, from gettext-0.14.5. * wint_t.m4: New file, from gettext-0.14.5. * xsize.m4: New file, from gettext-0.14.5. * Makefile.am (EXTRA_DIST): Add the new files. po/ 2006-03-14 gettextize <[email protected]> * Makefile.in.in: Upgrade to gettext-0.14.5. * Rules-quot: Upgrade to gettext-0.14.5.
Diffstat (limited to 'intl/printf-args.c')
-rw-r--r--intl/printf-args.c119
1 files changed, 119 insertions, 0 deletions
diff --git a/intl/printf-args.c b/intl/printf-args.c
new file mode 100644
index 0000000..f975901
--- /dev/null
+++ b/intl/printf-args.c
@@ -0,0 +1,119 @@
+/* Decomposed printf argument list.
+ Copyright (C) 1999, 2002-2003 Free Software Foundation, Inc.
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of the GNU Library General Public License as published
+ by the Free Software Foundation; either version 2, 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
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+ USA. */
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+/* Specification. */
+#include "printf-args.h"
+
+#ifdef STATIC
+STATIC
+#endif
+int
+printf_fetchargs (va_list args, arguments *a)
+{
+ size_t i;
+ argument *ap;
+
+ for (i = 0, ap = &a->arg[0]; i < a->count; i++, ap++)
+ switch (ap->type)
+ {
+ case TYPE_SCHAR:
+ ap->a.a_schar = va_arg (args, /*signed char*/ int);
+ break;
+ case TYPE_UCHAR:
+ ap->a.a_uchar = va_arg (args, /*unsigned char*/ int);
+ break;
+ case TYPE_SHORT:
+ ap->a.a_short = va_arg (args, /*short*/ int);
+ break;
+ case TYPE_USHORT:
+ ap->a.a_ushort = va_arg (args, /*unsigned short*/ int);
+ break;
+ case TYPE_INT:
+ ap->a.a_int = va_arg (args, int);
+ break;
+ case TYPE_UINT:
+ ap->a.a_uint = va_arg (args, unsigned int);
+ break;
+ case TYPE_LONGINT:
+ ap->a.a_longint = va_arg (args, long int);
+ break;
+ case TYPE_ULONGINT:
+ ap->a.a_ulongint = va_arg (args, unsigned long int);
+ break;
+#ifdef HAVE_LONG_LONG
+ case TYPE_LONGLONGINT:
+ ap->a.a_longlongint = va_arg (args, long long int);
+ break;
+ case TYPE_ULONGLONGINT:
+ ap->a.a_ulonglongint = va_arg (args, unsigned long long int);
+ break;
+#endif
+ case TYPE_DOUBLE:
+ ap->a.a_double = va_arg (args, double);
+ break;
+#ifdef HAVE_LONG_DOUBLE
+ case TYPE_LONGDOUBLE:
+ ap->a.a_longdouble = va_arg (args, long double);
+ break;
+#endif
+ case TYPE_CHAR:
+ ap->a.a_char = va_arg (args, int);
+ break;
+#ifdef HAVE_WINT_T
+ case TYPE_WIDE_CHAR:
+ ap->a.a_wide_char = va_arg (args, wint_t);
+ break;
+#endif
+ case TYPE_STRING:
+ ap->a.a_string = va_arg (args, const char *);
+ break;
+#ifdef HAVE_WCHAR_T
+ case TYPE_WIDE_STRING:
+ ap->a.a_wide_string = va_arg (args, const wchar_t *);
+ break;
+#endif
+ case TYPE_POINTER:
+ ap->a.a_pointer = va_arg (args, void *);
+ break;
+ case TYPE_COUNT_SCHAR_POINTER:
+ ap->a.a_count_schar_pointer = va_arg (args, signed char *);
+ break;
+ case TYPE_COUNT_SHORT_POINTER:
+ ap->a.a_count_short_pointer = va_arg (args, short *);
+ break;
+ case TYPE_COUNT_INT_POINTER:
+ ap->a.a_count_int_pointer = va_arg (args, int *);
+ break;
+ case TYPE_COUNT_LONGINT_POINTER:
+ ap->a.a_count_longint_pointer = va_arg (args, long int *);
+ break;
+#ifdef HAVE_LONG_LONG
+ case TYPE_COUNT_LONGLONGINT_POINTER:
+ ap->a.a_count_longlongint_pointer = va_arg (args, long long int *);
+ break;
+#endif
+ default:
+ /* Unknown type. */
+ return -1;
+ }
+ return 0;
+}