예제 #1
0
파일: xmltok_ns.c 프로젝트: AzerTyQsdF/osx
int NS(XmlInitEncoding)(INIT_ENCODING *p, const ENCODING **encPtr, const char *name)
{
  int i = getEncodingIndex(name);
  if (i == UNKNOWN_ENC)
    return 0;
  INIT_ENC_INDEX(p) = (char)i;
  p->initEnc.scanners[XML_PROLOG_STATE] = NS(initScanProlog);
  p->initEnc.scanners[XML_CONTENT_STATE] = NS(initScanContent);
  p->initEnc.updatePosition = initUpdatePosition;
  p->encPtr = encPtr;
  *encPtr = &(p->initEnc);
  return 1;
}
예제 #2
0
static const ENCODING *
NS(findEncoding)(const ENCODING *enc, const char *ptr, const char *end)
{
#define ENCODING_MAX 128
  char buf[ENCODING_MAX];
  char *p = buf;
  int i;
  XmlUtf8Convert(enc, &ptr, end, &p, p + ENCODING_MAX - 1);
  if (ptr != end)
    return 0;
  *p = 0;
  if (streqci(buf, KW_UTF_16) && enc->minBytesPerChar == 2)
    return enc;
  i = getEncodingIndex(buf);
  if (i == UNKNOWN_ENC)
    return 0;
  return NS(encodings)[i];
}
예제 #3
0
int
NS(xmlrpc_XmlInitEncoding)(INIT_ENCODING *   const p,
                           const ENCODING ** const encPP,
                           const char *      const name) {

    int const index = getEncodingIndex(name);

    int retval;

    if (index == UNKNOWN_ENC)
        retval = 0;
    else {
        SET_INIT_ENC_INDEX(p, index);
        p->initEnc.scanners[XML_PROLOG_STATE] = NS(initScanProlog);
        p->initEnc.scanners[XML_CONTENT_STATE] = NS(initScanContent);
        p->initEnc.updatePosition = initUpdatePosition;
        p->encPtr = encPP;
        *encPP = &(p->initEnc);

        retval = 1;
    }
    return retval;
}