(*
 * Summary: Unicode character range checking
 * Description: this module exports interfaces for the character
 *               range validation APIs
 *
 * This file is automatically generated from the cvs source
 * definition files using the genChRanges.py Python script
 *
 * Generation date: Mon Mar 27 11:09:48 2006
 * Sources: chvalid.def
 * Author: William Brack <wbrack@mmm.com.hk>
 *)

{$IFDEF POINTER}
  xmlChSRangePtr = ^xmlChSRange;
  xmlChLRangePtr = ^xmlChLRange;
  xmlChRangeGroupPtr = ^xmlChRangeGroup;
{$ENDIF}

{$IFDEF TYPE}
(*
 * Define our typedefs and structures
 *
 *)
  xmlChSRange = record
    low   : cushort;
    high  : cushort;
  end;

  xmlChLRange = record
    low   : cuint;
    high  : cuint;
  end;

  xmlChRangeGroup = record
    nbShortRange  : cint;
    nbLongRange   : cint;
    shortRange    : xmlChSRangePtr;
    longRange     : xmlChLRangePtr;
  end;
{$ENDIF}

{$IFDEF FUNCTION}
(**
 * Range checking routine
 *)
function xmlCharInRange(val: cint; group: xmlChRangeGroupPtr): cbool; EXTDECL; external xml2lib;

(**
 * xmlIsBaseChar_ch:
 * @c: char to validate
 *
 * Automatically generated by genChRanges.py
 *)
function xmlIsBaseChar_ch(c: cint): cbool;

(**
 * xmlIsBaseCharQ:
 * @c: char to validate
 *
 * Automatically generated by genChRanges.py
 *)
function xmlIsBaseCharQ(c: cint): cbool;

{$IFNDEF NO_EXTERNAL_VARS}
var
  xmlIsBaseCharGroup: xmlChRangeGroup; cvar; external;
  __xmlIsBaseCharGroup: xmlChRangeGroupPtr = @xmlIsBaseCharGroup;
{$ELSE}
var
  __xmlIsBaseCharGroup: xmlChRangeGroupPtr;
{$ENDIF}

(**
 * xmlIsBlank_ch:
 * @c: char to validate
 *
 * Automatically generated by genChRanges.py
 *)
function xmlIsBlank_ch(c: cint): cbool;

(**
 * xmlIsBlankQ:
 * @c: char to validate
 *
 * Automatically generated by genChRanges.py
 *)
function xmlIsBlankQ(c: cint): cbool;

(**
 * xmlIsChar_ch:
 * @c: char to validate
 *
 * Automatically generated by genChRanges.py
 *)
function xmlIsChar_ch(c: cint): cbool;

(**
 * xmlIsCharQ:
 * @c: char to validate
 *
 * Automatically generated by genChRanges.py
 *)
function xmlIsCharQ(c: cint): cbool;

{$IFNDEF NO_EXTERNAL_VARS}
var
  xmlIsCharGroup: xmlChRangeGroup; cvar; external;
  __xmlIsCharGroup: xmlChRangeGroupPtr = @xmlIsCharGroup;
{$ELSE}
var
  __xmlIsCharGroup: xmlChRangeGroupPtr;
{$ENDIF}

(**
 * xmlIsCombiningQ:
 * @c: char to validate
 *
 * Automatically generated by genChRanges.py
 *)
function xmlIsCombiningQ(c: cint): cbool;

{$IFNDEF NO_EXTERNAL_VARS}
var
  xmlIsCombiningGroup: xmlChRangeGroup; cvar; external;
  __xmlIsCombiningGroup: xmlChRangeGroupPtr = @xmlIsCombiningGroup;
{$ELSE}
var
  __xmlIsCombiningGroup: xmlChRangeGroupPtr;
{$ENDIF}

(**
 * xmlIsDigit_ch:
 * @c: char to validate
 *
 * Automatically generated by genChRanges.py
 *)
function xmlIsDigit_ch(c: cint): cbool;

(**
 * xmlIsDigitQ:
 * @c: char to validate
 *
 * Automatically generated by genChRanges.py
 *)
function xmlIsDigitQ(c: cint): cbool;

{$IFNDEF NO_EXTERNAL_VARS}
var
  xmlIsDigitGroup: xmlChRangeGroup; cvar; external;
  __xmlIsDigitGroup: xmlChRangeGroupPtr = @xmlIsDigitGroup;
{$ELSE}
var
  __xmlIsDigitGroup: xmlChRangeGroupPtr;
{$ENDIF}

(**
 * xmlIsExtender_ch:
 * @c: char to validate
 *
 * Automatically generated by genChRanges.py
 *)
function xmlIsExtender_ch(c: cint): cbool;

(**
 * xmlIsExtenderQ:
 * @c: char to validate
 *
 * Automatically generated by genChRanges.py
 *)
function xmlIsExtenderQ(c: cint): cbool;

{$IFNDEF NO_EXTERNAL_VARS}
var
  xmlIsExtenderGroup: xmlChRangeGroup; cvar; external;
  __xmlIsExtenderGroup: xmlChRangeGroupPtr = @xmlIsExtenderGroup;
{$ELSE}
var
  __xmlIsExtenderGroup: xmlChRangeGroupPtr;
{$ENDIF}

(**
 * xmlIsIdeographicQ:
 * @c: char to validate
 *
 * Automatically generated by genChRanges.py
 *)
function xmlIsIdeographicQ(c: cint): cbool;

type
  pchar_tab = ^char_tab;
  char_tab = array[0..255] of cbool;

{$IFNDEF NO_EXTERNAL_VARS}
var
  xmlIsIdeographicGroup: xmlChRangeGroup; cvar; external;
  __xmlIsIdeographicGroup: xmlChRangeGroupPtr = @xmlIsIdeographicGroup;
  
  xmlIsPubidChar_tab: char_tab; cvar; external;
  __xmlIsPubidChar_tab: pchar_tab = @xmlIsPubidChar_tab;
{$ELSE}
var
  __xmlIsIdeographicGroup: xmlChRangeGroupPtr;
  __xmlIsPubidChar_tab: pchar_tab;
{$ENDIF}

(**
 * xmlIsPubidChar_ch:
 * @c: char to validate
 *
 * Automatically generated by genChRanges.py
 *)
function xmlIsPubidChar_ch(c: cint): cbool;

(**
 * xmlIsPubidCharQ:
 * @c: char to validate
 *
 * Automatically generated by genChRanges.py
 *)
function xmlIsPubidCharQ(c: cint): cbool;

function xmlIsBaseChar(ch: cuint): cbool; EXTDECL; external xml2lib;
function xmlIsBlank(ch: cuint): cbool; EXTDECL; external xml2lib;
function xmlIsChar(ch: cuint): cbool; EXTDECL; external xml2lib;
function xmlIsCombining(ch: cuint): cbool; EXTDECL; external xml2lib;
function xmlIsDigit(ch: cuint): cbool; EXTDECL; external xml2lib;
function xmlIsExtender(ch: cuint): cbool; EXTDECL; external xml2lib;
function xmlIsIdeographic(ch: cuint): cbool; EXTDECL; external xml2lib;
function xmlIsPubidChar(ch: cuint): cbool; EXTDECL; external xml2lib;
{$ENDIF}
