Back to index

php5  5.3.10
Defines | Functions | Variables
iso8859_16.c File Reference
#include "regenc.h"

Go to the source code of this file.

Defines

#define ENC_ISO_8859_16_TO_LOWER_CASE(c)   EncISO_8859_16_ToLowerCaseTable[c]
#define ENC_IS_ISO_8859_16_CTYPE(code, ctype)   ((EncISO_8859_16_CtypeTable[code] & ctype) != 0)

Functions

static int mbc_to_normalize (OnigAmbigType flag, const UChar **pp, const UChar *end, UChar *lower)
static int is_mbc_ambiguous (OnigAmbigType flag, const UChar **pp, const UChar *end)
static int is_code_ctype (OnigCodePoint code, unsigned int ctype)
static int get_all_pair_ambig_codes (OnigAmbigType flag, const OnigPairAmbigCodes **ccs)

Variables

static const UChar EncISO_8859_16_ToLowerCaseTable [256]
static const unsigned short EncISO_8859_16_CtypeTable [256]
OnigEncodingType OnigEncodingISO_8859_16

Define Documentation

#define ENC_IS_ISO_8859_16_CTYPE (   code,
  ctype 
)    ((EncISO_8859_16_CtypeTable[code] & ctype) != 0)

Definition at line 33 of file iso8859_16.c.

Definition at line 32 of file iso8859_16.c.


Function Documentation

static int get_all_pair_ambig_codes ( OnigAmbigType  flag,
const OnigPairAmbigCodes **  ccs 
) [static]

Definition at line 161 of file iso8859_16.c.

{
  static const OnigPairAmbigCodes cc[] = {
   { 0xa1, 0xa2 },
   { 0xa2, 0xa1 },
   { 0xa3, 0xb3 },
   { 0xa6, 0xa8 },
   { 0xa8, 0xa6 },
   { 0xaa, 0xba },
   { 0xac, 0xae },
   { 0xae, 0xac },
   { 0xaf, 0xbf },

   { 0xb2, 0xb9 },
   { 0xb3, 0xa3 },
   { 0xb4, 0xb8 },
   { 0xb8, 0xb4 },
   { 0xb9, 0xb2 },
   { 0xba, 0xaa },
   { 0xbc, 0xbd },
   { 0xbd, 0xbc },
   { 0xbe, 0xff },
   { 0xbf, 0xaf },

   { 0xc0, 0xe0 },
   { 0xc1, 0xe1 },
   { 0xc2, 0xe2 },
   { 0xc3, 0xe3 },
   { 0xc4, 0xe4 },
   { 0xc5, 0xe5 },
   { 0xc6, 0xe6 },
   { 0xc7, 0xe7 },
   { 0xc8, 0xe8 },
   { 0xc9, 0xe9 },
   { 0xca, 0xea },
   { 0xcb, 0xeb },
   { 0xcc, 0xec },
   { 0xcd, 0xed },
   { 0xce, 0xee },
   { 0xcf, 0xef },

   { 0xd0, 0xf0 },
   { 0xd1, 0xf1 },
   { 0xd2, 0xf2 },
   { 0xd3, 0xf3 },
   { 0xd4, 0xf4 },
   { 0xd5, 0xf5 },
   { 0xd6, 0xf6 },
   { 0xd7, 0xf7 },
   { 0xd8, 0xf8 },
   { 0xd9, 0xf9 },
   { 0xda, 0xfa },
   { 0xdb, 0xfb },
   { 0xdc, 0xfc },
   { 0xdd, 0xfd },
   { 0xde, 0xfe },

   { 0xe0, 0xc0 },
   { 0xe1, 0xc1 },
   { 0xe2, 0xc2 },
   { 0xe3, 0xc3 },
   { 0xe4, 0xc4 },
   { 0xe5, 0xc5 },
   { 0xe6, 0xc6 },
   { 0xe7, 0xc7 },
   { 0xe8, 0xc8 },
   { 0xe9, 0xc9 },
   { 0xea, 0xca },
   { 0xeb, 0xcb },
   { 0xec, 0xcc },
   { 0xed, 0xcd },
   { 0xee, 0xce },
   { 0xef, 0xcf },

   { 0xf0, 0xd0 },
   { 0xf1, 0xd1 },
   { 0xf2, 0xd2 },
   { 0xf3, 0xd3 },
   { 0xf4, 0xd4 },
   { 0xf5, 0xd5 },
   { 0xf6, 0xd6 },
   { 0xf7, 0xd7 },
   { 0xf8, 0xd8 },
   { 0xf9, 0xd9 },
   { 0xfa, 0xda },
   { 0xfb, 0xdb },
   { 0xfc, 0xdc },
   { 0xfd, 0xdd },
   { 0xfe, 0xde },
   { 0xff, 0xbe }
  };

  if (flag == ONIGENC_AMBIGUOUS_MATCH_ASCII_CASE) {
    *ccs = OnigAsciiPairAmbigCodes;
    return 52;
  }
  if (flag == ONIGENC_AMBIGUOUS_MATCH_NONASCII_CASE) {
    *ccs = cc;
    return sizeof(cc) / sizeof(OnigPairAmbigCodes);
  }
  else
    return 0;
}
static int is_code_ctype ( OnigCodePoint  code,
unsigned int  ctype 
) [static]

Definition at line 152 of file iso8859_16.c.

{
  if (code < 256)
    return ENC_IS_ISO_8859_16_CTYPE(code, ctype);
  else
    return FALSE;
}
static int is_mbc_ambiguous ( OnigAmbigType  flag,
const UChar **  pp,
const UChar end 
) [static]

Definition at line 126 of file iso8859_16.c.

{
  const UChar* p = *pp;

  (*pp)++;
  if (((flag & ONIGENC_AMBIGUOUS_MATCH_ASCII_CASE) != 0 &&
       ONIGENC_IS_MBC_ASCII(p)) ||
      ((flag & ONIGENC_AMBIGUOUS_MATCH_NONASCII_CASE) != 0 &&
       !ONIGENC_IS_MBC_ASCII(p))) {
    int v = (EncISO_8859_16_CtypeTable[*p] &
             (ONIGENC_CTYPE_UPPER | ONIGENC_CTYPE_LOWER));

    if ((v | ONIGENC_CTYPE_LOWER) != 0) {
      /* 0xdf is lower case letter, but can't convert. */
      if (*p == 0xdf)
        return FALSE;
      else
        return TRUE;
    }

    return (v != 0 ? TRUE : FALSE);
  }
  return FALSE;
}
static int mbc_to_normalize ( OnigAmbigType  flag,
const UChar **  pp,
const UChar end,
UChar lower 
) [static]

Definition at line 107 of file iso8859_16.c.

{
  const UChar* p = *pp;

  if (((flag & ONIGENC_AMBIGUOUS_MATCH_ASCII_CASE) != 0 &&
       ONIGENC_IS_MBC_ASCII(p)) ||
      ((flag & ONIGENC_AMBIGUOUS_MATCH_NONASCII_CASE) != 0 &&
       !ONIGENC_IS_MBC_ASCII(p))) {
    *lower = ENC_ISO_8859_16_TO_LOWER_CASE(*p);
  }
  else {
    *lower = *p;
  }
  (*pp)++;
  return 1; /* return byte length of converted char to lower */
}

Variable Documentation

const unsigned short EncISO_8859_16_CtypeTable[256] [static]

Definition at line 71 of file iso8859_16.c.

Definition at line 36 of file iso8859_16.c.