X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Flibcore%2Flc_printf.h;h=c6e79099d4ddb622530cec16ddf852cb5acd0aff;hb=d2b8adc12afc99ec5f04d530638803356f8be9f6;hp=0d48e73c1085288f6ed228125236871dd1c6deb2;hpb=662bc34895ef0a6803c91aa6b9fcabc5d70b3d60;p=libfirm diff --git a/ir/libcore/lc_printf.h b/ir/libcore/lc_printf.h index 0d48e73c1..c6e79099d 100644 --- a/ir/libcore/lc_printf.h +++ b/ir/libcore/lc_printf.h @@ -1,30 +1,13 @@ /* - libcore: library for basic data structures and algorithms. - Copyright (C) 2005 IPD Goos, Universit"at Karlsruhe, Germany - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library 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 - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA -*/ - - + * This file is part of libFirm. + * Copyright (C) 2012 IPD Goos, Universit"at Karlsruhe, Germany + */ /** * Flexible printf(). * @author Sebastian Hack * @date 3.1.2005 */ - #ifndef _LIBCORE_LC_PRINTF_H #define _LIBCORE_LC_PRINTF_H @@ -35,27 +18,28 @@ #include -#include "lc_config.h" #include "lc_appendable.h" typedef struct lc_arg_occ_t { - int width; /**< The width, or 0 if not given. */ - int precision; /**< The precision, or 0 if not given */ - - const char *modifier; /**< A string of of modifiers preceding the - conversion specifier. Attention: This string is not - zero terminated. Use @c modifier_length to get the - number of valid chars in it. */ - size_t modifier_length; /**< The number of valid chars in @c modifier. */ - char conversion; /**< The conversion specifier. */ - int lc_arg_type; /**< The type of the argument as determined by the - @c get_lc_arg_type member function of the handler. */ - - unsigned flag_hash : 1; /**< @c # flag was seen. */ - unsigned flag_zero : 1; /**< @c 0 flag was seen. */ - unsigned flag_minus : 1; /**< @c - flag was seen. */ - unsigned flag_plus : 1; /**< @c + flag was seen. */ - unsigned flag_space : 1; /**< A space flag was seen. */ + int width; /**< The width, or 0 if not given. */ + int precision; /**< The precision, or 0 if not given */ + + const char *modifier; /**< A string of of modifiers preceding the + conversion specifier. Attention: This string + is not zero terminated. Use + @c modifier_length to get the number of + valid chars in it. */ + size_t modifier_length; /**< The number of valid chars in @c modifier. */ + char conversion; /**< The conversion specifier. */ + int lc_arg_type; /**< The type of the argument as determined by + the @c get_lc_arg_type member function of + the handler. */ + + unsigned flag_hash : 1; /**< @c # flag was seen. */ + unsigned flag_zero : 1; /**< @c 0 flag was seen. */ + unsigned flag_minus : 1; /**< @c - flag was seen. */ + unsigned flag_plus : 1; /**< @c + flag was seen. */ + unsigned flag_space : 1; /**< A space flag was seen. */ } lc_arg_occ_t; /** @@ -64,13 +48,13 @@ typedef struct lc_arg_occ_t { * @c ARG_TYPE macro is the name of the union member preceded by $c v_ */ typedef union { -#define LC_ARG_TYPE(type,name) type v_ ## name; +#define LC_ARG_TYPE(type,name,va_type) type v_ ## name; #include "lc_printf_arg_types.def" #undef LC_ARG_TYPE } lc_arg_value_t; enum { -#define LC_ARG_TYPE(type,name) lc_arg_type_ ## name, +#define LC_ARG_TYPE(type,name,va_type) lc_arg_type_ ## name, #include "lc_printf_arg_types.def" #undef LC_ARG_TYPE lc_arg_type_last