Ignore:
Timestamp:
Aug 12, 2001, 5:34:51 PM (24 years ago)
Author:
umoeller
Message:

XML updates.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/helpers/xmltok_ns.c

    r38 r97  
    1 
    2 /*
    3  *sourcefile xmltok_ns.c
    4  *      part of the expat implementation. See xmlparse.c.
    5  *
    6  *      NOTE: This file must not be compiled directly. It is
    7  *      #include'd from xmltok.c several times.
    8  */
    9 
    10 /*
    11  *      Copyright (C) 2001 Ulrich M”ller.
    12  *      Copyright (c) 1998, 1999, 2000 Thai Open Source Software Center Ltd.
    13  *                                     and Clark Cooper.
    14  *
    15  *      Permission is hereby granted, free of charge, to any person obtaining
    16  *      a copy of this software and associated documentation files (the
    17  *      "Software"), to deal in the Software without restriction, including
    18  *      without limitation the rights to use, copy, modify, merge, publish,
    19  *      distribute, sublicense, and/or sell copies of the Software, and to
    20  *      permit persons to whom the Software is furnished to do so, subject to
    21  *      the following conditions:
    22  *
    23  *      The above copyright notice and this permission notice shall be included
    24  *      in all copies or substantial portions of the Software.
    25  *
    26  *      THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
    27  *      EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
    28  *      MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
    29  *      IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
    30  *      CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
    31  *      TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
    32  *      SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
    33  */
    34 
    35 const ENCODING* EXPATENTRY NS(XmlGetUtf8InternalEncoding) (void)
     1const ENCODING *NS(XmlGetUtf8InternalEncoding)(void)
    362{
    37     return &ns(internal_utf8_encoding).enc;
     3  return &ns(internal_utf8_encoding).enc;
    384}
    395
    40 const ENCODING* EXPATENTRY NS(XmlGetUtf16InternalEncoding) (void)
     6const ENCODING *NS(XmlGetUtf16InternalEncoding)(void)
    417{
    428#if XML_BYTE_ORDER == 12
    43     return &ns(internal_little2_encoding).enc;
     9  return &ns(internal_little2_encoding).enc;
    4410#elif XML_BYTE_ORDER == 21
    45     return &ns(internal_big2_encoding).enc;
     11  return &ns(internal_big2_encoding).enc;
    4612#else
    47     const short n = 1;
    48 
    49     return *(const char *)&n ? &ns(internal_little2_encoding).enc : &ns(internal_big2_encoding).enc;
     13  const short n = 1;
     14  return *(const char *)&n ? &ns(internal_little2_encoding).enc : &ns(internal_big2_encoding).enc;
    5015#endif
    5116}
    5217
    5318static
    54 const ENCODING *NS(encodings)[] =
    55 {
    56     &ns(latin1_encoding).enc,
    57         &ns(ascii_encoding).enc,
    58         &ns(utf8_encoding).enc,
    59         &ns(big2_encoding).enc,
    60         &ns(big2_encoding).enc,
    61         &ns(little2_encoding).enc,
    62         &ns(utf8_encoding).enc  /* NO_ENC */
     19const ENCODING *NS(encodings)[] = {
     20  &ns(latin1_encoding).enc,
     21  &ns(ascii_encoding).enc,
     22  &ns(utf8_encoding).enc,
     23  &ns(big2_encoding).enc,
     24  &ns(big2_encoding).enc,
     25  &ns(little2_encoding).enc,
     26  &ns(utf8_encoding).enc /* NO_ENC */
    6327};
    6428
    65 static int EXPATENTRY NS(initScanProlog)(const ENCODING * enc,
    66                                           const char *ptr,
    67                                           const char *end,
    68                                           const char **nextTokPtr)
     29static
     30int NS(initScanProlog)(const ENCODING *enc, const char *ptr, const char *end,
     31               const char **nextTokPtr)
    6932{
    70     return initScan(NS(encodings), (const INIT_ENCODING *)enc, XML_PROLOG_STATE, ptr, end, nextTokPtr);
     33  return initScan(NS(encodings), (const INIT_ENCODING *)enc, XML_PROLOG_STATE, ptr, end, nextTokPtr);
    7134}
    7235
    73 static int EXPATENTRY NS(initScanContent)(const ENCODING * enc,
    74                                            const char *ptr,
    75                                            const char *end,
    76                                            const char **nextTokPtr)
     36static
     37int NS(initScanContent)(const ENCODING *enc, const char *ptr, const char *end,
     38               const char **nextTokPtr)
    7739{
    78     return initScan(NS(encodings), (const INIT_ENCODING *)enc, XML_CONTENT_STATE, ptr, end, nextTokPtr);
     40  return initScan(NS(encodings), (const INIT_ENCODING *)enc, XML_CONTENT_STATE, ptr, end, nextTokPtr);
    7941}
    8042
    81 int EXPATENTRY NS(XmlInitEncoding)(INIT_ENCODING * p, const ENCODING ** encPtr, const char *name)
     43int NS(XmlInitEncoding)(INIT_ENCODING *p, const ENCODING **encPtr, const char *name)
    8244{
    83     int i = getEncodingIndex(name);
    84 
    85     if (i == UNKNOWN_ENC)
    86         return 0;
    87     SET_INIT_ENC_INDEX(p, i);
    88     p->initEnc.scanners[XML_PROLOG_STATE] = NS(initScanProlog);
    89     p->initEnc.scanners[XML_CONTENT_STATE] = NS(initScanContent);
    90     p->initEnc.updatePosition = initUpdatePosition;
    91     p->encPtr = encPtr;
    92     *encPtr = &(p->initEnc);
    93     return 1;
     45  int i = getEncodingIndex(name);
     46  if (i == UNKNOWN_ENC)
     47    return 0;
     48  SET_INIT_ENC_INDEX(p, i);
     49  p->initEnc.scanners[XML_PROLOG_STATE] = NS(initScanProlog);
     50  p->initEnc.scanners[XML_CONTENT_STATE] = NS(initScanContent);
     51  p->initEnc.updatePosition = initUpdatePosition;
     52  p->encPtr = encPtr;
     53  *encPtr = &(p->initEnc);
     54  return 1;
    9455}
    9556
    96 static const ENCODING* EXPATENTRY NS(findEncoding)(const ENCODING * enc,
    97                                                    const char *ptr,
    98                                                    const char *end)
     57static
     58const ENCODING *NS(findEncoding)(const ENCODING *enc, const char *ptr, const char *end)
    9959{
    10060#define ENCODING_MAX 128
    101     char buf[ENCODING_MAX];
    102     char *p = buf;
    103     int i;
    104 
    105     XmlUtf8Convert(enc, &ptr, end, &p, p + ENCODING_MAX - 1);
    106     if (ptr != end)
    107         return 0;
    108     *p = 0;
    109     if (streqci(buf, KW_UTF_16) && enc->minBytesPerChar == 2)
    110         return enc;
    111     i = getEncodingIndex(buf);
    112     if (i == UNKNOWN_ENC)
    113         return 0;
    114     return NS(encodings)[i];
     61  char buf[ENCODING_MAX];
     62  char *p = buf;
     63  int i;
     64  XmlUtf8Convert(enc, &ptr, end, &p, p + ENCODING_MAX - 1);
     65  if (ptr != end)
     66    return 0;
     67  *p = 0;
     68  if (streqci(buf, KW_UTF_16) && enc->minBytesPerChar == 2)
     69    return enc;
     70  i = getEncodingIndex(buf);
     71  if (i == UNKNOWN_ENC)
     72    return 0;
     73  return NS(encodings)[i];
    11574}
    11675
    117 int NS(XmlParseXmlDecl) (int isGeneralTextEntity,
    118                          const ENCODING * enc,
    119                          const char *ptr,
    120                          const char *end,
    121                          const char **badPtr,
    122                          const char **versionPtr,
    123                          const char **versionEndPtr,
    124                          const char **encodingName,
    125                          const ENCODING ** encoding,
    126                          int *standalone)
     76int NS(XmlParseXmlDecl)(int isGeneralTextEntity,
     77            const ENCODING *enc,
     78            const char *ptr,
     79            const char *end,
     80            const char **badPtr,
     81            const char **versionPtr,
     82            const char **versionEndPtr,
     83            const char **encodingName,
     84            const ENCODING **encoding,
     85            int *standalone)
    12786{
    128     return doParseXmlDecl(NS(findEncoding),
    129                           isGeneralTextEntity,
    130                           enc,
    131                           ptr,
    132                           end,
    133                           badPtr,
    134                           versionPtr,
    135                           versionEndPtr,
    136                           encodingName,
    137                           encoding,
    138                           standalone);
     87  return doParseXmlDecl(NS(findEncoding),
     88            isGeneralTextEntity,
     89            enc,
     90            ptr,
     91            end,
     92            badPtr,
     93            versionPtr,
     94            versionEndPtr,
     95            encodingName,
     96            encoding,
     97            standalone);
    13998}
Note: See TracChangeset for help on using the changeset viewer.