Annotation of embedaddon/expat/lib/expat_external.h, revision 1.1.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>