Back to index

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

Go to the source code of this file.

Defines

#define ENC_ISO_8859_7_TO_LOWER_CASE(c)   EncISO_8859_7_ToLowerCaseTable[c]
#define ENC_IS_ISO_8859_7_CTYPE(code, ctype)   ((EncISO_8859_7_CtypeTable[code] & ctype) != 0)

Functions

static int iso_8859_7_mbc_to_normalize (OnigAmbigType flag, const UChar **pp, const UChar *end, UChar *lower)
static int iso_8859_7_is_mbc_ambiguous (OnigAmbigType flag, const UChar **pp, const UChar *end)
static int iso_8859_7_is_code_ctype (OnigCodePoint code, unsigned int ctype)
static int iso_8859_7_get_all_pair_ambig_codes (OnigAmbigType flag, const OnigPairAmbigCodes **ccs)

Variables

static const UChar EncISO_8859_7_ToLowerCaseTable [256]
static const unsigned short EncISO_8859_7_CtypeTable [256]
OnigEncodingType OnigEncodingISO_8859_7

Define Documentation

#define ENC_IS_ISO_8859_7_CTYPE (   code,
  ctype 
)    ((EncISO_8859_7_CtypeTable[code] & ctype) != 0)

Definition at line 33 of file iso8859_7.c.

Definition at line 32 of file iso8859_7.c.


Function Documentation

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

Definition at line 161 of file iso8859_7.c.

{
  static const OnigPairAmbigCodes cc[] = {
    { 0xb6, 0xdc },
    { 0xb8, 0xdd },
    { 0xb9, 0xde },
    { 0xba, 0xdf },
    { 0xbc, 0xfc },
    { 0xbe, 0xfd },
    { 0xbf, 0xfe },

    { 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, 0xb6 },
    { 0xdd, 0xb8 },
    { 0xde, 0xb9 },
    { 0xdf, 0xba },

    { 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, 0xbc },
    { 0xfd, 0xbe },
    { 0xfe, 0xbf }
  };

  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 iso_8859_7_is_code_ctype ( OnigCodePoint  code,
unsigned int  ctype 
) [static]

Definition at line 152 of file iso8859_7.c.

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

Definition at line 126 of file iso8859_7.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_7_CtypeTable[*p] &
             (ONIGENC_CTYPE_UPPER | ONIGENC_CTYPE_LOWER));

    if ((v | ONIGENC_CTYPE_LOWER) != 0) {
      if (*p == 0xc0 || *p == 0xe0)
        return FALSE;
      else
        return TRUE;
    }

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

Definition at line 107 of file iso8859_7.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_7_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_7_CtypeTable[256] [static]

Definition at line 71 of file iso8859_7.c.

Definition at line 36 of file iso8859_7.c.