192ad210417f318c8f0142fd0aee8d2893d83b8e8Daniel Veillard/************************************************************************* 292ad210417f318c8f0142fd0aee8d2893d83b8e8Daniel Veillard * 392ad210417f318c8f0142fd0aee8d2893d83b8e8Daniel Veillard * $Id$ 492ad210417f318c8f0142fd0aee8d2893d83b8e8Daniel Veillard * 592ad210417f318c8f0142fd0aee8d2893d83b8e8Daniel Veillard * Copyright (C) 1998 Bjorn Reese and Daniel Stenberg. 692ad210417f318c8f0142fd0aee8d2893d83b8e8Daniel Veillard * 792ad210417f318c8f0142fd0aee8d2893d83b8e8Daniel Veillard * Permission to use, copy, modify, and distribute this software for any 892ad210417f318c8f0142fd0aee8d2893d83b8e8Daniel Veillard * purpose with or without fee is hereby granted, provided that the above 992ad210417f318c8f0142fd0aee8d2893d83b8e8Daniel Veillard * copyright notice and this permission notice appear in all copies. 1092ad210417f318c8f0142fd0aee8d2893d83b8e8Daniel Veillard * 1192ad210417f318c8f0142fd0aee8d2893d83b8e8Daniel Veillard * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED 1292ad210417f318c8f0142fd0aee8d2893d83b8e8Daniel Veillard * WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF 1392ad210417f318c8f0142fd0aee8d2893d83b8e8Daniel Veillard * MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE AUTHORS AND 1492ad210417f318c8f0142fd0aee8d2893d83b8e8Daniel Veillard * CONTRIBUTORS ACCEPT NO RESPONSIBILITY IN ANY CONCEIVABLE MANNER. 1592ad210417f318c8f0142fd0aee8d2893d83b8e8Daniel Veillard * 16026d29f41e252619bcc5655865c9548642cd93f7Bjorn Reese ************************************************************************* 17026d29f41e252619bcc5655865c9548642cd93f7Bjorn Reese * 18026d29f41e252619bcc5655865c9548642cd93f7Bjorn Reese * http://ctrio.sourceforge.net/ 19026d29f41e252619bcc5655865c9548642cd93f7Bjorn Reese * 2092ad210417f318c8f0142fd0aee8d2893d83b8e8Daniel Veillard ************************************************************************/ 2192ad210417f318c8f0142fd0aee8d2893d83b8e8Daniel Veillard 2270a9da54eb200cd5c5ceafb72aff72c39021c94cBjorn Reese#ifndef TRIO_TRIO_H 2370a9da54eb200cd5c5ceafb72aff72c39021c94cBjorn Reese#define TRIO_TRIO_H 2492ad210417f318c8f0142fd0aee8d2893d83b8e8Daniel Veillard 25b7c29c38f507ac62cc85df9b897762fc84f05a68Daniel Veillard#if !defined(WITHOUT_TRIO) 2692ad210417f318c8f0142fd0aee8d2893d83b8e8Daniel Veillard 2792ad210417f318c8f0142fd0aee8d2893d83b8e8Daniel Veillard/* 2870a9da54eb200cd5c5ceafb72aff72c39021c94cBjorn Reese * Use autoconf defines if present. Packages using trio must define 2970a9da54eb200cd5c5ceafb72aff72c39021c94cBjorn Reese * HAVE_CONFIG_H as a compiler option themselves. 3070a9da54eb200cd5c5ceafb72aff72c39021c94cBjorn Reese */ 315706b6d8767e3c3f2e5b277b54e1af68035bc111Daniel Richard G#if defined(TRIO_HAVE_CONFIG_H) 32ec5b1fd1f492f8f68d19cf7601ac84778bd7331eWilliam M. Brack# include "config.h" 3370a9da54eb200cd5c5ceafb72aff72c39021c94cBjorn Reese#endif 3470a9da54eb200cd5c5ceafb72aff72c39021c94cBjorn Reese 35b7c29c38f507ac62cc85df9b897762fc84f05a68Daniel Veillard#include "triodef.h" 3670a9da54eb200cd5c5ceafb72aff72c39021c94cBjorn Reese 37a48ed3d6de02b6a78e08ff1321eed720dea117e7Daniel Veillard#include <stdio.h> 38a48ed3d6de02b6a78e08ff1321eed720dea117e7Daniel Veillard#include <stdlib.h> 39a48ed3d6de02b6a78e08ff1321eed720dea117e7Daniel Veillard#if defined(TRIO_COMPILER_ANCIENT) 40a48ed3d6de02b6a78e08ff1321eed720dea117e7Daniel Veillard# include <varargs.h> 41a48ed3d6de02b6a78e08ff1321eed720dea117e7Daniel Veillard#else 42a48ed3d6de02b6a78e08ff1321eed720dea117e7Daniel Veillard# include <stdarg.h> 43a48ed3d6de02b6a78e08ff1321eed720dea117e7Daniel Veillard#endif 44a48ed3d6de02b6a78e08ff1321eed720dea117e7Daniel Veillard 45906ec8a0cadacfc0711b9ebeba0025f1848cea55Bjorn Reese#ifdef __cplusplus 46906ec8a0cadacfc0711b9ebeba0025f1848cea55Bjorn Reeseextern "C" { 47906ec8a0cadacfc0711b9ebeba0025f1848cea55Bjorn Reese#endif 48906ec8a0cadacfc0711b9ebeba0025f1848cea55Bjorn Reese 4970a9da54eb200cd5c5ceafb72aff72c39021c94cBjorn Reese/* 5092ad210417f318c8f0142fd0aee8d2893d83b8e8Daniel Veillard * Error codes. 5192ad210417f318c8f0142fd0aee8d2893d83b8e8Daniel Veillard * 5292ad210417f318c8f0142fd0aee8d2893d83b8e8Daniel Veillard * Remember to add a textual description to trio_strerror. 5392ad210417f318c8f0142fd0aee8d2893d83b8e8Daniel Veillard */ 5492ad210417f318c8f0142fd0aee8d2893d83b8e8Daniel Veillardenum { 5592ad210417f318c8f0142fd0aee8d2893d83b8e8Daniel Veillard TRIO_EOF = 1, 5692ad210417f318c8f0142fd0aee8d2893d83b8e8Daniel Veillard TRIO_EINVAL = 2, 5792ad210417f318c8f0142fd0aee8d2893d83b8e8Daniel Veillard TRIO_ETOOMANY = 3, 5892ad210417f318c8f0142fd0aee8d2893d83b8e8Daniel Veillard TRIO_EDBLREF = 4, 5992ad210417f318c8f0142fd0aee8d2893d83b8e8Daniel Veillard TRIO_EGAP = 5, 6092ad210417f318c8f0142fd0aee8d2893d83b8e8Daniel Veillard TRIO_ENOMEM = 6, 61026d29f41e252619bcc5655865c9548642cd93f7Bjorn Reese TRIO_ERANGE = 7, 62b7c29c38f507ac62cc85df9b897762fc84f05a68Daniel Veillard TRIO_ERRNO = 8, 63b7c29c38f507ac62cc85df9b897762fc84f05a68Daniel Veillard TRIO_ECUSTOM = 9 6492ad210417f318c8f0142fd0aee8d2893d83b8e8Daniel Veillard}; 6592ad210417f318c8f0142fd0aee8d2893d83b8e8Daniel Veillard 66b7c29c38f507ac62cc85df9b897762fc84f05a68Daniel Veillard/* Error macros */ 67b7c29c38f507ac62cc85df9b897762fc84f05a68Daniel Veillard#define TRIO_ERROR_CODE(x) ((-(x)) & 0x00FF) 68b7c29c38f507ac62cc85df9b897762fc84f05a68Daniel Veillard#define TRIO_ERROR_POSITION(x) ((-(x)) >> 8) 69b7c29c38f507ac62cc85df9b897762fc84f05a68Daniel Veillard#define TRIO_ERROR_NAME(x) trio_strerror(x) 70b7c29c38f507ac62cc85df9b897762fc84f05a68Daniel Veillard 71b7c29c38f507ac62cc85df9b897762fc84f05a68Daniel Veillardtypedef int (*trio_outstream_t) TRIO_PROTO((trio_pointer_t, int)); 72b7c29c38f507ac62cc85df9b897762fc84f05a68Daniel Veillardtypedef int (*trio_instream_t) TRIO_PROTO((trio_pointer_t)); 73b7c29c38f507ac62cc85df9b897762fc84f05a68Daniel Veillard 74b7c29c38f507ac62cc85df9b897762fc84f05a68Daniel VeillardTRIO_CONST char *trio_strerror TRIO_PROTO((int)); 7570a9da54eb200cd5c5ceafb72aff72c39021c94cBjorn Reese 7670a9da54eb200cd5c5ceafb72aff72c39021c94cBjorn Reese/************************************************************************* 7770a9da54eb200cd5c5ceafb72aff72c39021c94cBjorn Reese * Print Functions 7892ad210417f318c8f0142fd0aee8d2893d83b8e8Daniel Veillard */ 7992ad210417f318c8f0142fd0aee8d2893d83b8e8Daniel Veillard 80b7c29c38f507ac62cc85df9b897762fc84f05a68Daniel Veillardint trio_printf TRIO_PROTO((TRIO_CONST char *format, ...)); 81b7c29c38f507ac62cc85df9b897762fc84f05a68Daniel Veillardint trio_vprintf TRIO_PROTO((TRIO_CONST char *format, va_list args)); 82b7c29c38f507ac62cc85df9b897762fc84f05a68Daniel Veillardint trio_printfv TRIO_PROTO((TRIO_CONST char *format, void **args)); 8370a9da54eb200cd5c5ceafb72aff72c39021c94cBjorn Reese 84b7c29c38f507ac62cc85df9b897762fc84f05a68Daniel Veillardint trio_fprintf TRIO_PROTO((FILE *file, TRIO_CONST char *format, ...)); 85b7c29c38f507ac62cc85df9b897762fc84f05a68Daniel Veillardint trio_vfprintf TRIO_PROTO((FILE *file, TRIO_CONST char *format, va_list args)); 86b7c29c38f507ac62cc85df9b897762fc84f05a68Daniel Veillardint trio_fprintfv TRIO_PROTO((FILE *file, TRIO_CONST char *format, void **args)); 8770a9da54eb200cd5c5ceafb72aff72c39021c94cBjorn Reese 88b7c29c38f507ac62cc85df9b897762fc84f05a68Daniel Veillardint trio_dprintf TRIO_PROTO((int fd, TRIO_CONST char *format, ...)); 89b7c29c38f507ac62cc85df9b897762fc84f05a68Daniel Veillardint trio_vdprintf TRIO_PROTO((int fd, TRIO_CONST char *format, va_list args)); 90b7c29c38f507ac62cc85df9b897762fc84f05a68Daniel Veillardint trio_dprintfv TRIO_PROTO((int fd, TRIO_CONST char *format, void **args)); 9170a9da54eb200cd5c5ceafb72aff72c39021c94cBjorn Reese 92b7c29c38f507ac62cc85df9b897762fc84f05a68Daniel Veillardint trio_cprintf TRIO_PROTO((trio_outstream_t stream, trio_pointer_t closure, 93b7c29c38f507ac62cc85df9b897762fc84f05a68Daniel Veillard TRIO_CONST char *format, ...)); 94b7c29c38f507ac62cc85df9b897762fc84f05a68Daniel Veillardint trio_vcprintf TRIO_PROTO((trio_outstream_t stream, trio_pointer_t closure, 95b7c29c38f507ac62cc85df9b897762fc84f05a68Daniel Veillard TRIO_CONST char *format, va_list args)); 96b7c29c38f507ac62cc85df9b897762fc84f05a68Daniel Veillardint trio_cprintfv TRIO_PROTO((trio_outstream_t stream, trio_pointer_t closure, 97b7c29c38f507ac62cc85df9b897762fc84f05a68Daniel Veillard TRIO_CONST char *format, void **args)); 98b7c29c38f507ac62cc85df9b897762fc84f05a68Daniel Veillard 99b7c29c38f507ac62cc85df9b897762fc84f05a68Daniel Veillardint trio_sprintf TRIO_PROTO((char *buffer, TRIO_CONST char *format, ...)); 100b7c29c38f507ac62cc85df9b897762fc84f05a68Daniel Veillardint trio_vsprintf TRIO_PROTO((char *buffer, TRIO_CONST char *format, va_list args)); 101b7c29c38f507ac62cc85df9b897762fc84f05a68Daniel Veillardint trio_sprintfv TRIO_PROTO((char *buffer, TRIO_CONST char *format, void **args)); 10270a9da54eb200cd5c5ceafb72aff72c39021c94cBjorn Reese 103b7c29c38f507ac62cc85df9b897762fc84f05a68Daniel Veillardint trio_snprintf TRIO_PROTO((char *buffer, size_t max, TRIO_CONST char *format, ...)); 104b7c29c38f507ac62cc85df9b897762fc84f05a68Daniel Veillardint trio_vsnprintf TRIO_PROTO((char *buffer, size_t bufferSize, TRIO_CONST char *format, 105b7c29c38f507ac62cc85df9b897762fc84f05a68Daniel Veillard va_list args)); 106b7c29c38f507ac62cc85df9b897762fc84f05a68Daniel Veillardint trio_snprintfv TRIO_PROTO((char *buffer, size_t bufferSize, TRIO_CONST char *format, 107b7c29c38f507ac62cc85df9b897762fc84f05a68Daniel Veillard void **args)); 10870a9da54eb200cd5c5ceafb72aff72c39021c94cBjorn Reese 109b7c29c38f507ac62cc85df9b897762fc84f05a68Daniel Veillardint trio_snprintfcat TRIO_PROTO((char *buffer, size_t max, TRIO_CONST char *format, ...)); 110b7c29c38f507ac62cc85df9b897762fc84f05a68Daniel Veillardint trio_vsnprintfcat TRIO_PROTO((char *buffer, size_t bufferSize, TRIO_CONST char *format, 111b7c29c38f507ac62cc85df9b897762fc84f05a68Daniel Veillard va_list args)); 11270a9da54eb200cd5c5ceafb72aff72c39021c94cBjorn Reese 113b7c29c38f507ac62cc85df9b897762fc84f05a68Daniel Veillardchar *trio_aprintf TRIO_PROTO((TRIO_CONST char *format, ...)); 114b7c29c38f507ac62cc85df9b897762fc84f05a68Daniel Veillardchar *trio_vaprintf TRIO_PROTO((TRIO_CONST char *format, va_list args)); 11570a9da54eb200cd5c5ceafb72aff72c39021c94cBjorn Reese 116b7c29c38f507ac62cc85df9b897762fc84f05a68Daniel Veillardint trio_asprintf TRIO_PROTO((char **ret, TRIO_CONST char *format, ...)); 117b7c29c38f507ac62cc85df9b897762fc84f05a68Daniel Veillardint trio_vasprintf TRIO_PROTO((char **ret, TRIO_CONST char *format, va_list args)); 11892ad210417f318c8f0142fd0aee8d2893d83b8e8Daniel Veillard 11970a9da54eb200cd5c5ceafb72aff72c39021c94cBjorn Reese/************************************************************************* 12070a9da54eb200cd5c5ceafb72aff72c39021c94cBjorn Reese * Scan Functions 12170a9da54eb200cd5c5ceafb72aff72c39021c94cBjorn Reese */ 122b7c29c38f507ac62cc85df9b897762fc84f05a68Daniel Veillardint trio_scanf TRIO_PROTO((TRIO_CONST char *format, ...)); 123b7c29c38f507ac62cc85df9b897762fc84f05a68Daniel Veillardint trio_vscanf TRIO_PROTO((TRIO_CONST char *format, va_list args)); 124b7c29c38f507ac62cc85df9b897762fc84f05a68Daniel Veillardint trio_scanfv TRIO_PROTO((TRIO_CONST char *format, void **args)); 125b7c29c38f507ac62cc85df9b897762fc84f05a68Daniel Veillard 126b7c29c38f507ac62cc85df9b897762fc84f05a68Daniel Veillardint trio_fscanf TRIO_PROTO((FILE *file, TRIO_CONST char *format, ...)); 127b7c29c38f507ac62cc85df9b897762fc84f05a68Daniel Veillardint trio_vfscanf TRIO_PROTO((FILE *file, TRIO_CONST char *format, va_list args)); 128b7c29c38f507ac62cc85df9b897762fc84f05a68Daniel Veillardint trio_fscanfv TRIO_PROTO((FILE *file, TRIO_CONST char *format, void **args)); 12970a9da54eb200cd5c5ceafb72aff72c39021c94cBjorn Reese 130b7c29c38f507ac62cc85df9b897762fc84f05a68Daniel Veillardint trio_dscanf TRIO_PROTO((int fd, TRIO_CONST char *format, ...)); 131b7c29c38f507ac62cc85df9b897762fc84f05a68Daniel Veillardint trio_vdscanf TRIO_PROTO((int fd, TRIO_CONST char *format, va_list args)); 132b7c29c38f507ac62cc85df9b897762fc84f05a68Daniel Veillardint trio_dscanfv TRIO_PROTO((int fd, TRIO_CONST char *format, void **args)); 13370a9da54eb200cd5c5ceafb72aff72c39021c94cBjorn Reese 134b7c29c38f507ac62cc85df9b897762fc84f05a68Daniel Veillardint trio_cscanf TRIO_PROTO((trio_instream_t stream, trio_pointer_t closure, 135b7c29c38f507ac62cc85df9b897762fc84f05a68Daniel Veillard TRIO_CONST char *format, ...)); 136b7c29c38f507ac62cc85df9b897762fc84f05a68Daniel Veillardint trio_vcscanf TRIO_PROTO((trio_instream_t stream, trio_pointer_t closure, 137b7c29c38f507ac62cc85df9b897762fc84f05a68Daniel Veillard TRIO_CONST char *format, va_list args)); 138b7c29c38f507ac62cc85df9b897762fc84f05a68Daniel Veillardint trio_cscanfv TRIO_PROTO((trio_instream_t stream, trio_pointer_t closure, 139b7c29c38f507ac62cc85df9b897762fc84f05a68Daniel Veillard TRIO_CONST char *format, void **args)); 14070a9da54eb200cd5c5ceafb72aff72c39021c94cBjorn Reese 141b7c29c38f507ac62cc85df9b897762fc84f05a68Daniel Veillardint trio_sscanf TRIO_PROTO((TRIO_CONST char *buffer, TRIO_CONST char *format, ...)); 142b7c29c38f507ac62cc85df9b897762fc84f05a68Daniel Veillardint trio_vsscanf TRIO_PROTO((TRIO_CONST char *buffer, TRIO_CONST char *format, va_list args)); 143b7c29c38f507ac62cc85df9b897762fc84f05a68Daniel Veillardint trio_sscanfv TRIO_PROTO((TRIO_CONST char *buffer, TRIO_CONST char *format, void **args)); 144b7c29c38f507ac62cc85df9b897762fc84f05a68Daniel Veillard 145b7c29c38f507ac62cc85df9b897762fc84f05a68Daniel Veillard/************************************************************************* 146b7c29c38f507ac62cc85df9b897762fc84f05a68Daniel Veillard * Locale Functions 147b7c29c38f507ac62cc85df9b897762fc84f05a68Daniel Veillard */ 148b7c29c38f507ac62cc85df9b897762fc84f05a68Daniel Veillardvoid trio_locale_set_decimal_point TRIO_PROTO((char *decimalPoint)); 149b7c29c38f507ac62cc85df9b897762fc84f05a68Daniel Veillardvoid trio_locale_set_thousand_separator TRIO_PROTO((char *thousandSeparator)); 150b7c29c38f507ac62cc85df9b897762fc84f05a68Daniel Veillardvoid trio_locale_set_grouping TRIO_PROTO((char *grouping)); 15192ad210417f318c8f0142fd0aee8d2893d83b8e8Daniel Veillard 15270a9da54eb200cd5c5ceafb72aff72c39021c94cBjorn Reese/************************************************************************* 15370a9da54eb200cd5c5ceafb72aff72c39021c94cBjorn Reese * Renaming 15470a9da54eb200cd5c5ceafb72aff72c39021c94cBjorn Reese */ 15592ad210417f318c8f0142fd0aee8d2893d83b8e8Daniel Veillard#ifdef TRIO_REPLACE_STDIO 15692ad210417f318c8f0142fd0aee8d2893d83b8e8Daniel Veillard/* Replace the <stdio.h> functions */ 15770a9da54eb200cd5c5ceafb72aff72c39021c94cBjorn Reese#ifndef HAVE_PRINTF 15866693cef33687e9d2b9f6c83c14687803b618a5fPatrick Monnerat# undef printf 15970a9da54eb200cd5c5ceafb72aff72c39021c94cBjorn Reese# define printf trio_printf 16070a9da54eb200cd5c5ceafb72aff72c39021c94cBjorn Reese#endif 16170a9da54eb200cd5c5ceafb72aff72c39021c94cBjorn Reese#ifndef HAVE_VPRINTF 16266693cef33687e9d2b9f6c83c14687803b618a5fPatrick Monnerat# undef vprintf 16370a9da54eb200cd5c5ceafb72aff72c39021c94cBjorn Reese# define vprintf trio_vprintf 16470a9da54eb200cd5c5ceafb72aff72c39021c94cBjorn Reese#endif 16570a9da54eb200cd5c5ceafb72aff72c39021c94cBjorn Reese#ifndef HAVE_FPRINTF 16666693cef33687e9d2b9f6c83c14687803b618a5fPatrick Monnerat# undef fprintf 16770a9da54eb200cd5c5ceafb72aff72c39021c94cBjorn Reese# define fprintf trio_fprintf 16870a9da54eb200cd5c5ceafb72aff72c39021c94cBjorn Reese#endif 16970a9da54eb200cd5c5ceafb72aff72c39021c94cBjorn Reese#ifndef HAVE_VFPRINTF 17066693cef33687e9d2b9f6c83c14687803b618a5fPatrick Monnerat# undef vfprintf 17170a9da54eb200cd5c5ceafb72aff72c39021c94cBjorn Reese# define vfprintf trio_vfprintf 17270a9da54eb200cd5c5ceafb72aff72c39021c94cBjorn Reese#endif 17370a9da54eb200cd5c5ceafb72aff72c39021c94cBjorn Reese#ifndef HAVE_SPRINTF 17466693cef33687e9d2b9f6c83c14687803b618a5fPatrick Monnerat# undef sprintf 17570a9da54eb200cd5c5ceafb72aff72c39021c94cBjorn Reese# define sprintf trio_sprintf 17670a9da54eb200cd5c5ceafb72aff72c39021c94cBjorn Reese#endif 17770a9da54eb200cd5c5ceafb72aff72c39021c94cBjorn Reese#ifndef HAVE_VSPRINTF 17866693cef33687e9d2b9f6c83c14687803b618a5fPatrick Monnerat# undef vsprintf 17970a9da54eb200cd5c5ceafb72aff72c39021c94cBjorn Reese# define vsprintf trio_vsprintf 18070a9da54eb200cd5c5ceafb72aff72c39021c94cBjorn Reese#endif 18170a9da54eb200cd5c5ceafb72aff72c39021c94cBjorn Reese#ifndef HAVE_SNPRINTF 18266693cef33687e9d2b9f6c83c14687803b618a5fPatrick Monnerat# undef snprintf 18370a9da54eb200cd5c5ceafb72aff72c39021c94cBjorn Reese# define snprintf trio_snprintf 18470a9da54eb200cd5c5ceafb72aff72c39021c94cBjorn Reese#endif 18570a9da54eb200cd5c5ceafb72aff72c39021c94cBjorn Reese#ifndef HAVE_VSNPRINTF 18666693cef33687e9d2b9f6c83c14687803b618a5fPatrick Monnerat# undef vsnprintf 18770a9da54eb200cd5c5ceafb72aff72c39021c94cBjorn Reese# define vsnprintf trio_vsnprintf 18870a9da54eb200cd5c5ceafb72aff72c39021c94cBjorn Reese#endif 18970a9da54eb200cd5c5ceafb72aff72c39021c94cBjorn Reese#ifndef HAVE_SCANF 19066693cef33687e9d2b9f6c83c14687803b618a5fPatrick Monnerat# undef scanf 19170a9da54eb200cd5c5ceafb72aff72c39021c94cBjorn Reese# define scanf trio_scanf 19270a9da54eb200cd5c5ceafb72aff72c39021c94cBjorn Reese#endif 19370a9da54eb200cd5c5ceafb72aff72c39021c94cBjorn Reese#ifndef HAVE_VSCANF 19466693cef33687e9d2b9f6c83c14687803b618a5fPatrick Monnerat# undef vscanf 19570a9da54eb200cd5c5ceafb72aff72c39021c94cBjorn Reese# define vscanf trio_vscanf 19670a9da54eb200cd5c5ceafb72aff72c39021c94cBjorn Reese#endif 19770a9da54eb200cd5c5ceafb72aff72c39021c94cBjorn Reese#ifndef HAVE_FSCANF 19866693cef33687e9d2b9f6c83c14687803b618a5fPatrick Monnerat# undef fscanf 19970a9da54eb200cd5c5ceafb72aff72c39021c94cBjorn Reese# define fscanf trio_fscanf 20070a9da54eb200cd5c5ceafb72aff72c39021c94cBjorn Reese#endif 20170a9da54eb200cd5c5ceafb72aff72c39021c94cBjorn Reese#ifndef HAVE_VFSCANF 20266693cef33687e9d2b9f6c83c14687803b618a5fPatrick Monnerat# undef vfscanf 20370a9da54eb200cd5c5ceafb72aff72c39021c94cBjorn Reese# define vfscanf trio_vfscanf 20470a9da54eb200cd5c5ceafb72aff72c39021c94cBjorn Reese#endif 20570a9da54eb200cd5c5ceafb72aff72c39021c94cBjorn Reese#ifndef HAVE_SSCANF 20666693cef33687e9d2b9f6c83c14687803b618a5fPatrick Monnerat# undef sscanf 20770a9da54eb200cd5c5ceafb72aff72c39021c94cBjorn Reese# define sscanf trio_sscanf 20870a9da54eb200cd5c5ceafb72aff72c39021c94cBjorn Reese#endif 20970a9da54eb200cd5c5ceafb72aff72c39021c94cBjorn Reese#ifndef HAVE_VSSCANF 21066693cef33687e9d2b9f6c83c14687803b618a5fPatrick Monnerat# undef vsscanf 21170a9da54eb200cd5c5ceafb72aff72c39021c94cBjorn Reese# define vsscanf trio_vsscanf 21270a9da54eb200cd5c5ceafb72aff72c39021c94cBjorn Reese#endif 21392ad210417f318c8f0142fd0aee8d2893d83b8e8Daniel Veillard/* These aren't stdio functions, but we make them look similar */ 21492ad210417f318c8f0142fd0aee8d2893d83b8e8Daniel Veillard#define dprintf trio_dprintf 21592ad210417f318c8f0142fd0aee8d2893d83b8e8Daniel Veillard#define vdprintf trio_vdprintf 21692ad210417f318c8f0142fd0aee8d2893d83b8e8Daniel Veillard#define aprintf trio_aprintf 21792ad210417f318c8f0142fd0aee8d2893d83b8e8Daniel Veillard#define vaprintf trio_vaprintf 21892ad210417f318c8f0142fd0aee8d2893d83b8e8Daniel Veillard#define asprintf trio_asprintf 21992ad210417f318c8f0142fd0aee8d2893d83b8e8Daniel Veillard#define vasprintf trio_vasprintf 22092ad210417f318c8f0142fd0aee8d2893d83b8e8Daniel Veillard#define dscanf trio_dscanf 22192ad210417f318c8f0142fd0aee8d2893d83b8e8Daniel Veillard#define vdscanf trio_vdscanf 22292ad210417f318c8f0142fd0aee8d2893d83b8e8Daniel Veillard#endif 22392ad210417f318c8f0142fd0aee8d2893d83b8e8Daniel Veillard 224906ec8a0cadacfc0711b9ebeba0025f1848cea55Bjorn Reese#ifdef __cplusplus 225906ec8a0cadacfc0711b9ebeba0025f1848cea55Bjorn Reese} /* extern "C" */ 226906ec8a0cadacfc0711b9ebeba0025f1848cea55Bjorn Reese#endif 227906ec8a0cadacfc0711b9ebeba0025f1848cea55Bjorn Reese 228906ec8a0cadacfc0711b9ebeba0025f1848cea55Bjorn Reese#endif /* WITHOUT_TRIO */ 22970a9da54eb200cd5c5ceafb72aff72c39021c94cBjorn Reese 23070a9da54eb200cd5c5ceafb72aff72c39021c94cBjorn Reese#endif /* TRIO_TRIO_H */ 231