diff options
| author | George Hazan <george.hazan@gmail.com> | 2014-03-22 13:34:19 +0000 | 
|---|---|---|
| committer | George Hazan <george.hazan@gmail.com> | 2014-03-22 13:34:19 +0000 | 
| commit | 79b554fe05162550656da3c4e459fb717dc4dadf (patch) | |
| tree | 34b5856bb397b145e2a6e6b317742b73ff53ec9f /protocols/Sametime/src/glib/gnulib/printf-args.c | |
| parent | 739fd4137010dc56881cf8328770b3175a2f2696 (diff) | |
glib inlined into SameTime
git-svn-id: http://svn.miranda-ng.org/main/trunk@8685 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c
Diffstat (limited to 'protocols/Sametime/src/glib/gnulib/printf-args.c')
| -rw-r--r-- | protocols/Sametime/src/glib/gnulib/printf-args.c | 133 | 
1 files changed, 133 insertions, 0 deletions
diff --git a/protocols/Sametime/src/glib/gnulib/printf-args.c b/protocols/Sametime/src/glib/gnulib/printf-args.c new file mode 100644 index 0000000000..75a2a5497f --- /dev/null +++ b/protocols/Sametime/src/glib/gnulib/printf-args.c @@ -0,0 +1,133 @@ +/* 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, +   USA.  */ + +#ifdef HAVE_CONFIG_H +# include <config.h> +#endif + +#include "g-gnulib.h" + +/* Specification.  */ +#include "printf-args.h" + +#ifdef STATIC +STATIC +#endif +int +printf_fetchargs (va_list args, arguments *a) +{ +  unsigned int 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 +#ifdef HAVE_INT64_AND_I64 +      case TYPE_INT64: +	ap->a.a_int64 = va_arg (args, __int64); +	break; +      case TYPE_UINT64: +	ap->a.a_uint64 = va_arg (args, unsigned __int64); +	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: +#ifdef _WIN32 +	ap->a.a_wide_char = va_arg (args, int); +#else +	ap->a.a_wide_char = va_arg (args, wint_t); +#endif +	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; +}  | 
