Annotation of embedaddon/expat/lib/expat_external.h, revision 1.1

1.1     ! misho       1: /* Copyright (c) 1998, 1999, 2000 Thai Open Source Software Center Ltd
        !             2:    See the file COPYING for copying permission.
        !             3: */
        !             4: 
        !             5: #ifndef Expat_External_INCLUDED
        !             6: #define Expat_External_INCLUDED 1
        !             7: 
        !             8: /* External API definitions */
        !             9: 
        !            10: #if defined(_MSC_EXTENSIONS) && !defined(__BEOS__) && !defined(__CYGWIN__)
        !            11: #define XML_USE_MSC_EXTENSIONS 1
        !            12: #endif
        !            13: 
        !            14: /* Expat tries very hard to make the API boundary very specifically
        !            15:    defined.  There are two macros defined to control this boundary;
        !            16:    each of these can be defined before including this header to
        !            17:    achieve some different behavior, but doing so it not recommended or
        !            18:    tested frequently.
        !            19: 
        !            20:    XMLCALL    - The calling convention to use for all calls across the
        !            21:                 "library boundary."  This will default to cdecl, and
        !            22:                 try really hard to tell the compiler that's what we
        !            23:                 want.
        !            24: 
        !            25:    XMLIMPORT  - Whatever magic is needed to note that a function is
        !            26:                 to be imported from a dynamically loaded library
        !            27:                 (.dll, .so, or .sl, depending on your platform).
        !            28: 
        !            29:    The XMLCALL macro was added in Expat 1.95.7.  The only one which is
        !            30:    expected to be directly useful in client code is XMLCALL.
        !            31: 
        !            32:    Note that on at least some Unix versions, the Expat library must be
        !            33:    compiled with the cdecl calling convention as the default since
        !            34:    system headers may assume the cdecl convention.
        !            35: */
        !            36: #ifndef XMLCALL
        !            37: #if defined(_MSC_VER)
        !            38: #define XMLCALL __cdecl
        !            39: #elif defined(__GNUC__) && defined(__i386) && !defined(__INTEL_COMPILER)
        !            40: #define XMLCALL __attribute__((cdecl))
        !            41: #else
        !            42: /* For any platform which uses this definition and supports more than
        !            43:    one calling convention, we need to extend this definition to
        !            44:    declare the convention used on that platform, if it's possible to
        !            45:    do so.
        !            46: 
        !            47:    If this is the case for your platform, please file a bug report
        !            48:    with information on how to identify your platform via the C
        !            49:    pre-processor and how to specify the same calling convention as the
        !            50:    platform's malloc() implementation.
        !            51: */
        !            52: #define XMLCALL
        !            53: #endif
        !            54: #endif  /* not defined XMLCALL */
        !            55: 
        !            56: 
        !            57: #if !defined(XML_STATIC) && !defined(XMLIMPORT)
        !            58: #ifndef XML_BUILDING_EXPAT
        !            59: /* using Expat from an application */
        !            60: 
        !            61: #ifdef XML_USE_MSC_EXTENSIONS
        !            62: #define XMLIMPORT __declspec(dllimport)
        !            63: #endif
        !            64: 
        !            65: #endif
        !            66: #endif  /* not defined XML_STATIC */
        !            67: 
        !            68: 
        !            69: /* If we didn't define it above, define it away: */
        !            70: #ifndef XMLIMPORT
        !            71: #define XMLIMPORT
        !            72: #endif
        !            73: 
        !            74: 
        !            75: #define XMLPARSEAPI(type) XMLIMPORT type XMLCALL
        !            76: 
        !            77: #ifdef __cplusplus
        !            78: extern "C" {
        !            79: #endif
        !            80: 
        !            81: #ifdef XML_UNICODE_WCHAR_T
        !            82: #define XML_UNICODE
        !            83: #endif
        !            84: 
        !            85: #ifdef XML_UNICODE     /* Information is UTF-16 encoded. */
        !            86: #ifdef XML_UNICODE_WCHAR_T
        !            87: typedef wchar_t XML_Char;
        !            88: typedef wchar_t XML_LChar;
        !            89: #else
        !            90: typedef unsigned short XML_Char;
        !            91: typedef char XML_LChar;
        !            92: #endif /* XML_UNICODE_WCHAR_T */
        !            93: #else                  /* Information is UTF-8 encoded. */
        !            94: typedef char XML_Char;
        !            95: typedef char XML_LChar;
        !            96: #endif /* XML_UNICODE */
        !            97: 
        !            98: #ifdef XML_LARGE_SIZE  /* Use large integers for file/stream positions. */
        !            99: #if defined(XML_USE_MSC_EXTENSIONS) && _MSC_VER < 1400
        !           100: typedef __int64 XML_Index; 
        !           101: typedef unsigned __int64 XML_Size;
        !           102: #else
        !           103: typedef long long XML_Index;
        !           104: typedef unsigned long long XML_Size;
        !           105: #endif
        !           106: #else
        !           107: typedef long XML_Index;
        !           108: typedef unsigned long XML_Size;
        !           109: #endif /* XML_LARGE_SIZE */
        !           110: 
        !           111: #ifdef __cplusplus
        !           112: }
        !           113: #endif
        !           114: 
        !           115: #endif /* not Expat_External_INCLUDED */

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