1a66dd5f0b030e773d3af602682150eebdc9f2bddShimeng (Simon) Wang/************************************************************************* 2a66dd5f0b030e773d3af602682150eebdc9f2bddShimeng (Simon) Wang * 3df143a5041f03a22808b59c76698770b74692815Selim Gurun * $Id$ 4a66dd5f0b030e773d3af602682150eebdc9f2bddShimeng (Simon) Wang * 5a66dd5f0b030e773d3af602682150eebdc9f2bddShimeng (Simon) Wang * Copyright (C) 1998 Bjorn Reese and Daniel Stenberg. 6a66dd5f0b030e773d3af602682150eebdc9f2bddShimeng (Simon) Wang * 7a66dd5f0b030e773d3af602682150eebdc9f2bddShimeng (Simon) Wang * Permission to use, copy, modify, and distribute this software for any 8a66dd5f0b030e773d3af602682150eebdc9f2bddShimeng (Simon) Wang * purpose with or without fee is hereby granted, provided that the above 9a66dd5f0b030e773d3af602682150eebdc9f2bddShimeng (Simon) Wang * copyright notice and this permission notice appear in all copies. 10a66dd5f0b030e773d3af602682150eebdc9f2bddShimeng (Simon) Wang * 11a66dd5f0b030e773d3af602682150eebdc9f2bddShimeng (Simon) Wang * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED 12a66dd5f0b030e773d3af602682150eebdc9f2bddShimeng (Simon) Wang * WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF 13a66dd5f0b030e773d3af602682150eebdc9f2bddShimeng (Simon) Wang * MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE AUTHORS AND 14a66dd5f0b030e773d3af602682150eebdc9f2bddShimeng (Simon) Wang * CONTRIBUTORS ACCEPT NO RESPONSIBILITY IN ANY CONCEIVABLE MANNER. 15a66dd5f0b030e773d3af602682150eebdc9f2bddShimeng (Simon) Wang * 16a66dd5f0b030e773d3af602682150eebdc9f2bddShimeng (Simon) Wang ************************************************************************* 17a66dd5f0b030e773d3af602682150eebdc9f2bddShimeng (Simon) Wang * 18a66dd5f0b030e773d3af602682150eebdc9f2bddShimeng (Simon) Wang * http://ctrio.sourceforge.net/ 19a66dd5f0b030e773d3af602682150eebdc9f2bddShimeng (Simon) Wang * 20a66dd5f0b030e773d3af602682150eebdc9f2bddShimeng (Simon) Wang ************************************************************************/ 21a66dd5f0b030e773d3af602682150eebdc9f2bddShimeng (Simon) Wang 22a66dd5f0b030e773d3af602682150eebdc9f2bddShimeng (Simon) Wang#ifndef TRIO_TRIO_H 23a66dd5f0b030e773d3af602682150eebdc9f2bddShimeng (Simon) Wang#define TRIO_TRIO_H 24a66dd5f0b030e773d3af602682150eebdc9f2bddShimeng (Simon) Wang 25a66dd5f0b030e773d3af602682150eebdc9f2bddShimeng (Simon) Wang#if !defined(WITHOUT_TRIO) 26a66dd5f0b030e773d3af602682150eebdc9f2bddShimeng (Simon) Wang 27a66dd5f0b030e773d3af602682150eebdc9f2bddShimeng (Simon) Wang/* 28a66dd5f0b030e773d3af602682150eebdc9f2bddShimeng (Simon) Wang * Use autoconf defines if present. Packages using trio must define 29a66dd5f0b030e773d3af602682150eebdc9f2bddShimeng (Simon) Wang * HAVE_CONFIG_H as a compiler option themselves. 30a66dd5f0b030e773d3af602682150eebdc9f2bddShimeng (Simon) Wang */ 3194442ad4107000e6d49f9b85a46a591495a57632Selim Gurun#if defined(TRIO_HAVE_CONFIG_H) 32df143a5041f03a22808b59c76698770b74692815Selim Gurun# include "config.h" 33a66dd5f0b030e773d3af602682150eebdc9f2bddShimeng (Simon) Wang#endif 34a66dd5f0b030e773d3af602682150eebdc9f2bddShimeng (Simon) Wang 35a66dd5f0b030e773d3af602682150eebdc9f2bddShimeng (Simon) Wang#include "triodef.h" 36a66dd5f0b030e773d3af602682150eebdc9f2bddShimeng (Simon) Wang 37a66dd5f0b030e773d3af602682150eebdc9f2bddShimeng (Simon) Wang#include <stdio.h> 38a66dd5f0b030e773d3af602682150eebdc9f2bddShimeng (Simon) Wang#include <stdlib.h> 39a66dd5f0b030e773d3af602682150eebdc9f2bddShimeng (Simon) Wang#if defined(TRIO_COMPILER_ANCIENT) 40a66dd5f0b030e773d3af602682150eebdc9f2bddShimeng (Simon) Wang# include <varargs.h> 41a66dd5f0b030e773d3af602682150eebdc9f2bddShimeng (Simon) Wang#else 42a66dd5f0b030e773d3af602682150eebdc9f2bddShimeng (Simon) Wang# include <stdarg.h> 43a66dd5f0b030e773d3af602682150eebdc9f2bddShimeng (Simon) Wang#endif 44a66dd5f0b030e773d3af602682150eebdc9f2bddShimeng (Simon) Wang 45a66dd5f0b030e773d3af602682150eebdc9f2bddShimeng (Simon) Wang#ifdef __cplusplus 46a66dd5f0b030e773d3af602682150eebdc9f2bddShimeng (Simon) Wangextern "C" { 47a66dd5f0b030e773d3af602682150eebdc9f2bddShimeng (Simon) Wang#endif 48a66dd5f0b030e773d3af602682150eebdc9f2bddShimeng (Simon) Wang 49a66dd5f0b030e773d3af602682150eebdc9f2bddShimeng (Simon) Wang/* 50a66dd5f0b030e773d3af602682150eebdc9f2bddShimeng (Simon) Wang * Error codes. 51a66dd5f0b030e773d3af602682150eebdc9f2bddShimeng (Simon) Wang * 52a66dd5f0b030e773d3af602682150eebdc9f2bddShimeng (Simon) Wang * Remember to add a textual description to trio_strerror. 53a66dd5f0b030e773d3af602682150eebdc9f2bddShimeng (Simon) Wang */ 54a66dd5f0b030e773d3af602682150eebdc9f2bddShimeng (Simon) Wangenum { 55a66dd5f0b030e773d3af602682150eebdc9f2bddShimeng (Simon) Wang TRIO_EOF = 1, 56a66dd5f0b030e773d3af602682150eebdc9f2bddShimeng (Simon) Wang TRIO_EINVAL = 2, 57a66dd5f0b030e773d3af602682150eebdc9f2bddShimeng (Simon) Wang TRIO_ETOOMANY = 3, 58a66dd5f0b030e773d3af602682150eebdc9f2bddShimeng (Simon) Wang TRIO_EDBLREF = 4, 59a66dd5f0b030e773d3af602682150eebdc9f2bddShimeng (Simon) Wang TRIO_EGAP = 5, 60a66dd5f0b030e773d3af602682150eebdc9f2bddShimeng (Simon) Wang TRIO_ENOMEM = 6, 61a66dd5f0b030e773d3af602682150eebdc9f2bddShimeng (Simon) Wang TRIO_ERANGE = 7, 62a66dd5f0b030e773d3af602682150eebdc9f2bddShimeng (Simon) Wang TRIO_ERRNO = 8, 63a66dd5f0b030e773d3af602682150eebdc9f2bddShimeng (Simon) Wang TRIO_ECUSTOM = 9 64a66dd5f0b030e773d3af602682150eebdc9f2bddShimeng (Simon) Wang}; 65a66dd5f0b030e773d3af602682150eebdc9f2bddShimeng (Simon) Wang 66a66dd5f0b030e773d3af602682150eebdc9f2bddShimeng (Simon) Wang/* Error macros */ 67a66dd5f0b030e773d3af602682150eebdc9f2bddShimeng (Simon) Wang#define TRIO_ERROR_CODE(x) ((-(x)) & 0x00FF) 68a66dd5f0b030e773d3af602682150eebdc9f2bddShimeng (Simon) Wang#define TRIO_ERROR_POSITION(x) ((-(x)) >> 8) 69a66dd5f0b030e773d3af602682150eebdc9f2bddShimeng (Simon) Wang#define TRIO_ERROR_NAME(x) trio_strerror(x) 70a66dd5f0b030e773d3af602682150eebdc9f2bddShimeng (Simon) Wang 71a66dd5f0b030e773d3af602682150eebdc9f2bddShimeng (Simon) Wangtypedef int (*trio_outstream_t) TRIO_PROTO((trio_pointer_t, int)); 72a66dd5f0b030e773d3af602682150eebdc9f2bddShimeng (Simon) Wangtypedef int (*trio_instream_t) TRIO_PROTO((trio_pointer_t)); 73a66dd5f0b030e773d3af602682150eebdc9f2bddShimeng (Simon) Wang 74a66dd5f0b030e773d3af602682150eebdc9f2bddShimeng (Simon) WangTRIO_CONST char *trio_strerror TRIO_PROTO((int)); 75a66dd5f0b030e773d3af602682150eebdc9f2bddShimeng (Simon) Wang 76a66dd5f0b030e773d3af602682150eebdc9f2bddShimeng (Simon) Wang/************************************************************************* 77a66dd5f0b030e773d3af602682150eebdc9f2bddShimeng (Simon) Wang * Print Functions 78a66dd5f0b030e773d3af602682150eebdc9f2bddShimeng (Simon) Wang */ 79a66dd5f0b030e773d3af602682150eebdc9f2bddShimeng (Simon) Wang 80a66dd5f0b030e773d3af602682150eebdc9f2bddShimeng (Simon) Wangint trio_printf TRIO_PROTO((TRIO_CONST char *format, ...)); 81a66dd5f0b030e773d3af602682150eebdc9f2bddShimeng (Simon) Wangint trio_vprintf TRIO_PROTO((TRIO_CONST char *format, va_list args)); 82a66dd5f0b030e773d3af602682150eebdc9f2bddShimeng (Simon) Wangint trio_printfv TRIO_PROTO((TRIO_CONST char *format, void **args)); 83a66dd5f0b030e773d3af602682150eebdc9f2bddShimeng (Simon) Wang 84a66dd5f0b030e773d3af602682150eebdc9f2bddShimeng (Simon) Wangint trio_fprintf TRIO_PROTO((FILE *file, TRIO_CONST char *format, ...)); 85a66dd5f0b030e773d3af602682150eebdc9f2bddShimeng (Simon) Wangint trio_vfprintf TRIO_PROTO((FILE *file, TRIO_CONST char *format, va_list args)); 86a66dd5f0b030e773d3af602682150eebdc9f2bddShimeng (Simon) Wangint trio_fprintfv TRIO_PROTO((FILE *file, TRIO_CONST char *format, void **args)); 87a66dd5f0b030e773d3af602682150eebdc9f2bddShimeng (Simon) Wang 88a66dd5f0b030e773d3af602682150eebdc9f2bddShimeng (Simon) Wangint trio_dprintf TRIO_PROTO((int fd, TRIO_CONST char *format, ...)); 89a66dd5f0b030e773d3af602682150eebdc9f2bddShimeng (Simon) Wangint trio_vdprintf TRIO_PROTO((int fd, TRIO_CONST char *format, va_list args)); 90a66dd5f0b030e773d3af602682150eebdc9f2bddShimeng (Simon) Wangint trio_dprintfv TRIO_PROTO((int fd, TRIO_CONST char *format, void **args)); 91a66dd5f0b030e773d3af602682150eebdc9f2bddShimeng (Simon) Wang 92a66dd5f0b030e773d3af602682150eebdc9f2bddShimeng (Simon) Wangint trio_cprintf TRIO_PROTO((trio_outstream_t stream, trio_pointer_t closure, 93a66dd5f0b030e773d3af602682150eebdc9f2bddShimeng (Simon) Wang TRIO_CONST char *format, ...)); 94a66dd5f0b030e773d3af602682150eebdc9f2bddShimeng (Simon) Wangint trio_vcprintf TRIO_PROTO((trio_outstream_t stream, trio_pointer_t closure, 95a66dd5f0b030e773d3af602682150eebdc9f2bddShimeng (Simon) Wang TRIO_CONST char *format, va_list args)); 96a66dd5f0b030e773d3af602682150eebdc9f2bddShimeng (Simon) Wangint trio_cprintfv TRIO_PROTO((trio_outstream_t stream, trio_pointer_t closure, 97a66dd5f0b030e773d3af602682150eebdc9f2bddShimeng (Simon) Wang TRIO_CONST char *format, void **args)); 98a66dd5f0b030e773d3af602682150eebdc9f2bddShimeng (Simon) Wang 99a66dd5f0b030e773d3af602682150eebdc9f2bddShimeng (Simon) Wangint trio_sprintf TRIO_PROTO((char *buffer, TRIO_CONST char *format, ...)); 100a66dd5f0b030e773d3af602682150eebdc9f2bddShimeng (Simon) Wangint trio_vsprintf TRIO_PROTO((char *buffer, TRIO_CONST char *format, va_list args)); 101a66dd5f0b030e773d3af602682150eebdc9f2bddShimeng (Simon) Wangint trio_sprintfv TRIO_PROTO((char *buffer, TRIO_CONST char *format, void **args)); 102a66dd5f0b030e773d3af602682150eebdc9f2bddShimeng (Simon) Wang 103a66dd5f0b030e773d3af602682150eebdc9f2bddShimeng (Simon) Wangint trio_snprintf TRIO_PROTO((char *buffer, size_t max, TRIO_CONST char *format, ...)); 104a66dd5f0b030e773d3af602682150eebdc9f2bddShimeng (Simon) Wangint trio_vsnprintf TRIO_PROTO((char *buffer, size_t bufferSize, TRIO_CONST char *format, 105a66dd5f0b030e773d3af602682150eebdc9f2bddShimeng (Simon) Wang va_list args)); 106a66dd5f0b030e773d3af602682150eebdc9f2bddShimeng (Simon) Wangint trio_snprintfv TRIO_PROTO((char *buffer, size_t bufferSize, TRIO_CONST char *format, 107a66dd5f0b030e773d3af602682150eebdc9f2bddShimeng (Simon) Wang void **args)); 108a66dd5f0b030e773d3af602682150eebdc9f2bddShimeng (Simon) Wang 109a66dd5f0b030e773d3af602682150eebdc9f2bddShimeng (Simon) Wangint trio_snprintfcat TRIO_PROTO((char *buffer, size_t max, TRIO_CONST char *format, ...)); 110a66dd5f0b030e773d3af602682150eebdc9f2bddShimeng (Simon) Wangint trio_vsnprintfcat TRIO_PROTO((char *buffer, size_t bufferSize, TRIO_CONST char *format, 111a66dd5f0b030e773d3af602682150eebdc9f2bddShimeng (Simon) Wang va_list args)); 112a66dd5f0b030e773d3af602682150eebdc9f2bddShimeng (Simon) Wang 113a66dd5f0b030e773d3af602682150eebdc9f2bddShimeng (Simon) Wangchar *trio_aprintf TRIO_PROTO((TRIO_CONST char *format, ...)); 114a66dd5f0b030e773d3af602682150eebdc9f2bddShimeng (Simon) Wangchar *trio_vaprintf TRIO_PROTO((TRIO_CONST char *format, va_list args)); 115a66dd5f0b030e773d3af602682150eebdc9f2bddShimeng (Simon) Wang 116a66dd5f0b030e773d3af602682150eebdc9f2bddShimeng (Simon) Wangint trio_asprintf TRIO_PROTO((char **ret, TRIO_CONST char *format, ...)); 117a66dd5f0b030e773d3af602682150eebdc9f2bddShimeng (Simon) Wangint trio_vasprintf TRIO_PROTO((char **ret, TRIO_CONST char *format, va_list args)); 118a66dd5f0b030e773d3af602682150eebdc9f2bddShimeng (Simon) Wang 119a66dd5f0b030e773d3af602682150eebdc9f2bddShimeng (Simon) Wang/************************************************************************* 120a66dd5f0b030e773d3af602682150eebdc9f2bddShimeng (Simon) Wang * Scan Functions 121a66dd5f0b030e773d3af602682150eebdc9f2bddShimeng (Simon) Wang */ 122a66dd5f0b030e773d3af602682150eebdc9f2bddShimeng (Simon) Wangint trio_scanf TRIO_PROTO((TRIO_CONST char *format, ...)); 123a66dd5f0b030e773d3af602682150eebdc9f2bddShimeng (Simon) Wangint trio_vscanf TRIO_PROTO((TRIO_CONST char *format, va_list args)); 124a66dd5f0b030e773d3af602682150eebdc9f2bddShimeng (Simon) Wangint trio_scanfv TRIO_PROTO((TRIO_CONST char *format, void **args)); 125a66dd5f0b030e773d3af602682150eebdc9f2bddShimeng (Simon) Wang 126a66dd5f0b030e773d3af602682150eebdc9f2bddShimeng (Simon) Wangint trio_fscanf TRIO_PROTO((FILE *file, TRIO_CONST char *format, ...)); 127a66dd5f0b030e773d3af602682150eebdc9f2bddShimeng (Simon) Wangint trio_vfscanf TRIO_PROTO((FILE *file, TRIO_CONST char *format, va_list args)); 128a66dd5f0b030e773d3af602682150eebdc9f2bddShimeng (Simon) Wangint trio_fscanfv TRIO_PROTO((FILE *file, TRIO_CONST char *format, void **args)); 129a66dd5f0b030e773d3af602682150eebdc9f2bddShimeng (Simon) Wang 130a66dd5f0b030e773d3af602682150eebdc9f2bddShimeng (Simon) Wangint trio_dscanf TRIO_PROTO((int fd, TRIO_CONST char *format, ...)); 131a66dd5f0b030e773d3af602682150eebdc9f2bddShimeng (Simon) Wangint trio_vdscanf TRIO_PROTO((int fd, TRIO_CONST char *format, va_list args)); 132a66dd5f0b030e773d3af602682150eebdc9f2bddShimeng (Simon) Wangint trio_dscanfv TRIO_PROTO((int fd, TRIO_CONST char *format, void **args)); 133a66dd5f0b030e773d3af602682150eebdc9f2bddShimeng (Simon) Wang 134a66dd5f0b030e773d3af602682150eebdc9f2bddShimeng (Simon) Wangint trio_cscanf TRIO_PROTO((trio_instream_t stream, trio_pointer_t closure, 135a66dd5f0b030e773d3af602682150eebdc9f2bddShimeng (Simon) Wang TRIO_CONST char *format, ...)); 136a66dd5f0b030e773d3af602682150eebdc9f2bddShimeng (Simon) Wangint trio_vcscanf TRIO_PROTO((trio_instream_t stream, trio_pointer_t closure, 137a66dd5f0b030e773d3af602682150eebdc9f2bddShimeng (Simon) Wang TRIO_CONST char *format, va_list args)); 138a66dd5f0b030e773d3af602682150eebdc9f2bddShimeng (Simon) Wangint trio_cscanfv TRIO_PROTO((trio_instream_t stream, trio_pointer_t closure, 139a66dd5f0b030e773d3af602682150eebdc9f2bddShimeng (Simon) Wang TRIO_CONST char *format, void **args)); 140a66dd5f0b030e773d3af602682150eebdc9f2bddShimeng (Simon) Wang 141a66dd5f0b030e773d3af602682150eebdc9f2bddShimeng (Simon) Wangint trio_sscanf TRIO_PROTO((TRIO_CONST char *buffer, TRIO_CONST char *format, ...)); 142a66dd5f0b030e773d3af602682150eebdc9f2bddShimeng (Simon) Wangint trio_vsscanf TRIO_PROTO((TRIO_CONST char *buffer, TRIO_CONST char *format, va_list args)); 143a66dd5f0b030e773d3af602682150eebdc9f2bddShimeng (Simon) Wangint trio_sscanfv TRIO_PROTO((TRIO_CONST char *buffer, TRIO_CONST char *format, void **args)); 144a66dd5f0b030e773d3af602682150eebdc9f2bddShimeng (Simon) Wang 145a66dd5f0b030e773d3af602682150eebdc9f2bddShimeng (Simon) Wang/************************************************************************* 146a66dd5f0b030e773d3af602682150eebdc9f2bddShimeng (Simon) Wang * Locale Functions 147a66dd5f0b030e773d3af602682150eebdc9f2bddShimeng (Simon) Wang */ 148a66dd5f0b030e773d3af602682150eebdc9f2bddShimeng (Simon) Wangvoid trio_locale_set_decimal_point TRIO_PROTO((char *decimalPoint)); 149a66dd5f0b030e773d3af602682150eebdc9f2bddShimeng (Simon) Wangvoid trio_locale_set_thousand_separator TRIO_PROTO((char *thousandSeparator)); 150a66dd5f0b030e773d3af602682150eebdc9f2bddShimeng (Simon) Wangvoid trio_locale_set_grouping TRIO_PROTO((char *grouping)); 151a66dd5f0b030e773d3af602682150eebdc9f2bddShimeng (Simon) Wang 152a66dd5f0b030e773d3af602682150eebdc9f2bddShimeng (Simon) Wang/************************************************************************* 153a66dd5f0b030e773d3af602682150eebdc9f2bddShimeng (Simon) Wang * Renaming 154a66dd5f0b030e773d3af602682150eebdc9f2bddShimeng (Simon) Wang */ 155a66dd5f0b030e773d3af602682150eebdc9f2bddShimeng (Simon) Wang#ifdef TRIO_REPLACE_STDIO 156a66dd5f0b030e773d3af602682150eebdc9f2bddShimeng (Simon) Wang/* Replace the <stdio.h> functions */ 157a66dd5f0b030e773d3af602682150eebdc9f2bddShimeng (Simon) Wang#ifndef HAVE_PRINTF 158a66dd5f0b030e773d3af602682150eebdc9f2bddShimeng (Simon) Wang# define printf trio_printf 159a66dd5f0b030e773d3af602682150eebdc9f2bddShimeng (Simon) Wang#endif 160a66dd5f0b030e773d3af602682150eebdc9f2bddShimeng (Simon) Wang#ifndef HAVE_VPRINTF 161a66dd5f0b030e773d3af602682150eebdc9f2bddShimeng (Simon) Wang# define vprintf trio_vprintf 162a66dd5f0b030e773d3af602682150eebdc9f2bddShimeng (Simon) Wang#endif 163a66dd5f0b030e773d3af602682150eebdc9f2bddShimeng (Simon) Wang#ifndef HAVE_FPRINTF 164a66dd5f0b030e773d3af602682150eebdc9f2bddShimeng (Simon) Wang# define fprintf trio_fprintf 165a66dd5f0b030e773d3af602682150eebdc9f2bddShimeng (Simon) Wang#endif 166a66dd5f0b030e773d3af602682150eebdc9f2bddShimeng (Simon) Wang#ifndef HAVE_VFPRINTF 167a66dd5f0b030e773d3af602682150eebdc9f2bddShimeng (Simon) Wang# define vfprintf trio_vfprintf 168a66dd5f0b030e773d3af602682150eebdc9f2bddShimeng (Simon) Wang#endif 169a66dd5f0b030e773d3af602682150eebdc9f2bddShimeng (Simon) Wang#ifndef HAVE_SPRINTF 170a66dd5f0b030e773d3af602682150eebdc9f2bddShimeng (Simon) Wang# define sprintf trio_sprintf 171a66dd5f0b030e773d3af602682150eebdc9f2bddShimeng (Simon) Wang#endif 172a66dd5f0b030e773d3af602682150eebdc9f2bddShimeng (Simon) Wang#ifndef HAVE_VSPRINTF 173a66dd5f0b030e773d3af602682150eebdc9f2bddShimeng (Simon) Wang# define vsprintf trio_vsprintf 174a66dd5f0b030e773d3af602682150eebdc9f2bddShimeng (Simon) Wang#endif 175a66dd5f0b030e773d3af602682150eebdc9f2bddShimeng (Simon) Wang#ifndef HAVE_SNPRINTF 176a66dd5f0b030e773d3af602682150eebdc9f2bddShimeng (Simon) Wang# define snprintf trio_snprintf 177a66dd5f0b030e773d3af602682150eebdc9f2bddShimeng (Simon) Wang#endif 178a66dd5f0b030e773d3af602682150eebdc9f2bddShimeng (Simon) Wang#ifndef HAVE_VSNPRINTF 179a66dd5f0b030e773d3af602682150eebdc9f2bddShimeng (Simon) Wang# define vsnprintf trio_vsnprintf 180a66dd5f0b030e773d3af602682150eebdc9f2bddShimeng (Simon) Wang#endif 181a66dd5f0b030e773d3af602682150eebdc9f2bddShimeng (Simon) Wang#ifndef HAVE_SCANF 182a66dd5f0b030e773d3af602682150eebdc9f2bddShimeng (Simon) Wang# define scanf trio_scanf 183a66dd5f0b030e773d3af602682150eebdc9f2bddShimeng (Simon) Wang#endif 184a66dd5f0b030e773d3af602682150eebdc9f2bddShimeng (Simon) Wang#ifndef HAVE_VSCANF 185a66dd5f0b030e773d3af602682150eebdc9f2bddShimeng (Simon) Wang# define vscanf trio_vscanf 186a66dd5f0b030e773d3af602682150eebdc9f2bddShimeng (Simon) Wang#endif 187a66dd5f0b030e773d3af602682150eebdc9f2bddShimeng (Simon) Wang#ifndef HAVE_FSCANF 188a66dd5f0b030e773d3af602682150eebdc9f2bddShimeng (Simon) Wang# define fscanf trio_fscanf 189a66dd5f0b030e773d3af602682150eebdc9f2bddShimeng (Simon) Wang#endif 190a66dd5f0b030e773d3af602682150eebdc9f2bddShimeng (Simon) Wang#ifndef HAVE_VFSCANF 191a66dd5f0b030e773d3af602682150eebdc9f2bddShimeng (Simon) Wang# define vfscanf trio_vfscanf 192a66dd5f0b030e773d3af602682150eebdc9f2bddShimeng (Simon) Wang#endif 193a66dd5f0b030e773d3af602682150eebdc9f2bddShimeng (Simon) Wang#ifndef HAVE_SSCANF 194a66dd5f0b030e773d3af602682150eebdc9f2bddShimeng (Simon) Wang# define sscanf trio_sscanf 195a66dd5f0b030e773d3af602682150eebdc9f2bddShimeng (Simon) Wang#endif 196a66dd5f0b030e773d3af602682150eebdc9f2bddShimeng (Simon) Wang#ifndef HAVE_VSSCANF 197a66dd5f0b030e773d3af602682150eebdc9f2bddShimeng (Simon) Wang# define vsscanf trio_vsscanf 198a66dd5f0b030e773d3af602682150eebdc9f2bddShimeng (Simon) Wang#endif 199a66dd5f0b030e773d3af602682150eebdc9f2bddShimeng (Simon) Wang/* These aren't stdio functions, but we make them look similar */ 200a66dd5f0b030e773d3af602682150eebdc9f2bddShimeng (Simon) Wang#define dprintf trio_dprintf 201a66dd5f0b030e773d3af602682150eebdc9f2bddShimeng (Simon) Wang#define vdprintf trio_vdprintf 202a66dd5f0b030e773d3af602682150eebdc9f2bddShimeng (Simon) Wang#define aprintf trio_aprintf 203a66dd5f0b030e773d3af602682150eebdc9f2bddShimeng (Simon) Wang#define vaprintf trio_vaprintf 204a66dd5f0b030e773d3af602682150eebdc9f2bddShimeng (Simon) Wang#define asprintf trio_asprintf 205a66dd5f0b030e773d3af602682150eebdc9f2bddShimeng (Simon) Wang#define vasprintf trio_vasprintf 206a66dd5f0b030e773d3af602682150eebdc9f2bddShimeng (Simon) Wang#define dscanf trio_dscanf 207a66dd5f0b030e773d3af602682150eebdc9f2bddShimeng (Simon) Wang#define vdscanf trio_vdscanf 208a66dd5f0b030e773d3af602682150eebdc9f2bddShimeng (Simon) Wang#endif 209a66dd5f0b030e773d3af602682150eebdc9f2bddShimeng (Simon) Wang 210a66dd5f0b030e773d3af602682150eebdc9f2bddShimeng (Simon) Wang#ifdef __cplusplus 211a66dd5f0b030e773d3af602682150eebdc9f2bddShimeng (Simon) Wang} /* extern "C" */ 212a66dd5f0b030e773d3af602682150eebdc9f2bddShimeng (Simon) Wang#endif 213a66dd5f0b030e773d3af602682150eebdc9f2bddShimeng (Simon) Wang 214a66dd5f0b030e773d3af602682150eebdc9f2bddShimeng (Simon) Wang#endif /* WITHOUT_TRIO */ 215a66dd5f0b030e773d3af602682150eebdc9f2bddShimeng (Simon) Wang 216a66dd5f0b030e773d3af602682150eebdc9f2bddShimeng (Simon) Wang#endif /* TRIO_TRIO_H */ 217