Annotation of embedaddon/libxml2/trio.h, revision 1.1

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

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>