00001 /* 00002 ******************************************************************************* 00003 * 00004 * Copyright (C) 1998-1999, International Business Machines 00005 * Corporation and others. All Rights Reserved. 00006 * 00007 ******************************************************************************* 00008 * 00009 * File uscanf.h 00010 * 00011 * Modification History: 00012 * 00013 * Date Name Description 00014 * 12/02/98 stephen Creation. 00015 * 03/13/99 stephen Modified for new C API. 00016 ******************************************************************************* 00017 */ 00018 00019 #ifndef USCANF_H 00020 #define USCANF_H 00021 00022 #include "unicode/ustdio.h" 00023 #include "ufmt_cmn.h" 00024 00028 struct u_scanf_spec_info { 00029 UChar fSpec; /* Format specification */ 00030 00031 int32_t fWidth; /* Width */ 00032 00033 UChar fPadChar; /* Padding character */ 00034 00035 UBool fIsLongDouble; /* L flag */ 00036 UBool fIsShort; /* h flag */ 00037 UBool fIsLong; /* l flag */ 00038 UBool fIsLongLong; /* ll flag */ 00039 }; 00040 typedef struct u_scanf_spec_info u_scanf_spec_info; 00041 00054 typedef int32_t (*u_scanf_info) (const u_scanf_spec_info *info, 00055 int32_t *argtypes, 00056 int32_t n); 00057 00073 typedef int32_t (*u_scanf_handler) (UFILE *stream, 00074 const u_scanf_spec_info *info, 00075 ufmt_args *args, 00076 const UChar *fmt, 00077 int32_t *consumed); 00078 00088 int32_t 00089 u_scanf_register_handler (UChar spec, 00090 u_scanf_info info, 00091 u_scanf_handler handler); 00092 00093 #endif 00094