X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;f=lib%2Fprintf-parse.h;h=f3f4586606eb1e65d59d89d49800696fc6f2421a;hb=bae84310eb40472530384f6d5c7738f5dc03a62d;hp=97e432af1f8434974717ef0d1a7ca1aa4e495dd6;hpb=87b04f998fd3e668027074b5b5d37205d3cdfec3;p=gnulib.git diff --git a/lib/printf-parse.h b/lib/printf-parse.h index 97e432af1..f3f458660 100644 --- a/lib/printf-parse.h +++ b/lib/printf-parse.h @@ -1,20 +1,19 @@ /* Parse printf format string. - Copyright (C) 1999, 2002 Free Software Foundation, Inc. + 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) + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU 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. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU 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. */ + You should have received a copy of the GNU 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. */ #ifndef _PRINTF_PARSE_H #define _PRINTF_PARSE_H @@ -30,6 +29,9 @@ #define FLAG_ALT 16 /* # flag */ #define FLAG_ZERO 32 +/* arg_index value indicating that no argument is consumed. */ +#define ARG_NONE (~(size_t)0) + /* A parsed directive. */ typedef struct { @@ -38,22 +40,22 @@ typedef struct int flags; const char* width_start; const char* width_end; - int width_arg_index; + size_t width_arg_index; const char* precision_start; const char* precision_end; - int precision_arg_index; + size_t precision_arg_index; char conversion; /* d i o u x X f e E g G c s p n U % but not C S */ - int arg_index; + size_t arg_index; } char_directive; /* A parsed format string. */ typedef struct { - unsigned int count; + size_t count; char_directive *dir; - unsigned int max_width_length; - unsigned int max_precision_length; + size_t max_width_length; + size_t max_precision_length; } char_directives;