15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/************************************************************************* 25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * 35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * $Id$ 45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * 55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Copyright (C) 1998 Bjorn Reese and Daniel Stenberg. 65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * 75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Permission to use, copy, modify, and distribute this software for any 85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * purpose with or without fee is hereby granted, provided that the above 95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * copyright notice and this permission notice appear in all copies. 105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * 115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED 125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF 135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE AUTHORS AND 145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * CONTRIBUTORS ACCEPT NO RESPONSIBILITY IN ANY CONCEIVABLE MANNER. 155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * 165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ************************************************************************* 175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * 185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * http://ctrio.sourceforge.net/ 195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * 205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ************************************************************************/ 215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef TRIO_TRIO_H 235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define TRIO_TRIO_H 245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if !defined(WITHOUT_TRIO) 265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* 285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Use autoconf defines if present. Packages using trio must define 295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * HAVE_CONFIG_H as a compiler option themselves. 305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if defined(HAVE_CONFIG_H) 325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# include <config.h> 335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "triodef.h" 365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include <stdio.h> 385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include <stdlib.h> 395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if defined(TRIO_COMPILER_ANCIENT) 405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# include <varargs.h> 415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#else 425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# include <stdarg.h> 435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifdef __cplusplus 465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)extern "C" { 475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* 505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Error codes. 515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * 525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Remember to add a textual description to trio_strerror. 535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)enum { 555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) TRIO_EOF = 1, 565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) TRIO_EINVAL = 2, 575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) TRIO_ETOOMANY = 3, 585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) TRIO_EDBLREF = 4, 595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) TRIO_EGAP = 5, 605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) TRIO_ENOMEM = 6, 615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) TRIO_ERANGE = 7, 625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) TRIO_ERRNO = 8, 635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) TRIO_ECUSTOM = 9 645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}; 655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* Error macros */ 675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define TRIO_ERROR_CODE(x) ((-(x)) & 0x00FF) 685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define TRIO_ERROR_POSITION(x) ((-(x)) >> 8) 695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define TRIO_ERROR_NAME(x) trio_strerror(x) 705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef int (*trio_outstream_t) TRIO_PROTO((trio_pointer_t, int)); 725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef int (*trio_instream_t) TRIO_PROTO((trio_pointer_t)); 735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)TRIO_CONST char *trio_strerror TRIO_PROTO((int)); 755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/************************************************************************* 775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Print Functions 785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)int trio_printf TRIO_PROTO((TRIO_CONST char *format, ...)); 815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)int trio_vprintf TRIO_PROTO((TRIO_CONST char *format, va_list args)); 825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)int trio_printfv TRIO_PROTO((TRIO_CONST char *format, void **args)); 835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)int trio_fprintf TRIO_PROTO((FILE *file, TRIO_CONST char *format, ...)); 855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)int trio_vfprintf TRIO_PROTO((FILE *file, TRIO_CONST char *format, va_list args)); 865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)int trio_fprintfv TRIO_PROTO((FILE *file, TRIO_CONST char *format, void **args)); 875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)int trio_dprintf TRIO_PROTO((int fd, TRIO_CONST char *format, ...)); 895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)int trio_vdprintf TRIO_PROTO((int fd, TRIO_CONST char *format, va_list args)); 905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)int trio_dprintfv TRIO_PROTO((int fd, TRIO_CONST char *format, void **args)); 915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)int trio_cprintf TRIO_PROTO((trio_outstream_t stream, trio_pointer_t closure, 935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) TRIO_CONST char *format, ...)); 945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)int trio_vcprintf TRIO_PROTO((trio_outstream_t stream, trio_pointer_t closure, 955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) TRIO_CONST char *format, va_list args)); 965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)int trio_cprintfv TRIO_PROTO((trio_outstream_t stream, trio_pointer_t closure, 975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) TRIO_CONST char *format, void **args)); 985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)int trio_sprintf TRIO_PROTO((char *buffer, TRIO_CONST char *format, ...)); 1005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)int trio_vsprintf TRIO_PROTO((char *buffer, TRIO_CONST char *format, va_list args)); 1015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)int trio_sprintfv TRIO_PROTO((char *buffer, TRIO_CONST char *format, void **args)); 1025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)int trio_snprintf TRIO_PROTO((char *buffer, size_t max, TRIO_CONST char *format, ...)); 1045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)int trio_vsnprintf TRIO_PROTO((char *buffer, size_t bufferSize, TRIO_CONST char *format, 1055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) va_list args)); 1065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)int trio_snprintfv TRIO_PROTO((char *buffer, size_t bufferSize, TRIO_CONST char *format, 1075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void **args)); 1085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)int trio_snprintfcat TRIO_PROTO((char *buffer, size_t max, TRIO_CONST char *format, ...)); 1105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)int trio_vsnprintfcat TRIO_PROTO((char *buffer, size_t bufferSize, TRIO_CONST char *format, 1115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) va_list args)); 1125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)char *trio_aprintf TRIO_PROTO((TRIO_CONST char *format, ...)); 1145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)char *trio_vaprintf TRIO_PROTO((TRIO_CONST char *format, va_list args)); 1155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)int trio_asprintf TRIO_PROTO((char **ret, TRIO_CONST char *format, ...)); 1175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)int trio_vasprintf TRIO_PROTO((char **ret, TRIO_CONST char *format, va_list args)); 1185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/************************************************************************* 1205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Scan Functions 1215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 1225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)int trio_scanf TRIO_PROTO((TRIO_CONST char *format, ...)); 1235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)int trio_vscanf TRIO_PROTO((TRIO_CONST char *format, va_list args)); 1245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)int trio_scanfv TRIO_PROTO((TRIO_CONST char *format, void **args)); 1255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)int trio_fscanf TRIO_PROTO((FILE *file, TRIO_CONST char *format, ...)); 1275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)int trio_vfscanf TRIO_PROTO((FILE *file, TRIO_CONST char *format, va_list args)); 1285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)int trio_fscanfv TRIO_PROTO((FILE *file, TRIO_CONST char *format, void **args)); 1295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)int trio_dscanf TRIO_PROTO((int fd, TRIO_CONST char *format, ...)); 1315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)int trio_vdscanf TRIO_PROTO((int fd, TRIO_CONST char *format, va_list args)); 1325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)int trio_dscanfv TRIO_PROTO((int fd, TRIO_CONST char *format, void **args)); 1335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)int trio_cscanf TRIO_PROTO((trio_instream_t stream, trio_pointer_t closure, 1355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) TRIO_CONST char *format, ...)); 1365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)int trio_vcscanf TRIO_PROTO((trio_instream_t stream, trio_pointer_t closure, 1375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) TRIO_CONST char *format, va_list args)); 1385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)int trio_cscanfv TRIO_PROTO((trio_instream_t stream, trio_pointer_t closure, 1395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) TRIO_CONST char *format, void **args)); 1405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)int trio_sscanf TRIO_PROTO((TRIO_CONST char *buffer, TRIO_CONST char *format, ...)); 1425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)int trio_vsscanf TRIO_PROTO((TRIO_CONST char *buffer, TRIO_CONST char *format, va_list args)); 1435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)int trio_sscanfv TRIO_PROTO((TRIO_CONST char *buffer, TRIO_CONST char *format, void **args)); 1445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/************************************************************************* 1465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Locale Functions 1475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 1485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void trio_locale_set_decimal_point TRIO_PROTO((char *decimalPoint)); 1495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void trio_locale_set_thousand_separator TRIO_PROTO((char *thousandSeparator)); 1505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void trio_locale_set_grouping TRIO_PROTO((char *grouping)); 1515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/************************************************************************* 1535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Renaming 1545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 1555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifdef TRIO_REPLACE_STDIO 1565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* Replace the <stdio.h> functions */ 1575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef HAVE_PRINTF 1585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define printf trio_printf 1595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 1605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef HAVE_VPRINTF 1615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define vprintf trio_vprintf 1625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 1635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef HAVE_FPRINTF 1645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define fprintf trio_fprintf 1655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 1665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef HAVE_VFPRINTF 1675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define vfprintf trio_vfprintf 1685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 1695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef HAVE_SPRINTF 1705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define sprintf trio_sprintf 1715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 1725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef HAVE_VSPRINTF 1735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define vsprintf trio_vsprintf 1745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 1755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef HAVE_SNPRINTF 1765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define snprintf trio_snprintf 1775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 1785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef HAVE_VSNPRINTF 1795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define vsnprintf trio_vsnprintf 1805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 1815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef HAVE_SCANF 1825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define scanf trio_scanf 1835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 1845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef HAVE_VSCANF 1855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define vscanf trio_vscanf 1865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 1875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef HAVE_FSCANF 1885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define fscanf trio_fscanf 1895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 1905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef HAVE_VFSCANF 1915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define vfscanf trio_vfscanf 1925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 1935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef HAVE_SSCANF 1945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define sscanf trio_sscanf 1955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 1965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef HAVE_VSSCANF 1975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define vsscanf trio_vsscanf 1985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 1995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* These aren't stdio functions, but we make them look similar */ 2005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define dprintf trio_dprintf 2015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define vdprintf trio_vdprintf 2025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define aprintf trio_aprintf 2035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define vaprintf trio_vaprintf 2045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define asprintf trio_asprintf 2055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define vasprintf trio_vasprintf 2065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define dscanf trio_dscanf 2075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define vdscanf trio_vdscanf 2085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 2095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifdef __cplusplus 2115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} /* extern "C" */ 2125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 2135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif /* WITHOUT_TRIO */ 2155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif /* TRIO_TRIO_H */ 217