r= ((sizeof(big5_map) / sizeof(cnstobig5))-1);
r= ((sizeof(big5_map) / sizeof(big5tocns))-1);
PRIVATE XP_Bool intl_convbig5tocns(uint16 big5, uint16* cns, uint8* cnsplane){  uint16 big5seq = BIG5TOSEQ(big5);  uint32 l,m,r;  /* do binary search to the table */  l=0;  r= ((sizeof(big5_map) / sizeof(cnstobig5))-1);  m= (l+r)/2; ;    while(1)  {    if( (big5_map[m].big5fromseq <= big5seq ) && (big5seq <= big5_map[m].big5toseq ) )    {      uint16 cnsseq = big5_map[m].cnsfromseq + big5seq - big5_map[m].big5fromseq;      *cns = SEQTOCNS(cnsseq);      *cnsplane = big5_map[m].cnsplane;      return TRUE;    }    if( (l > m) || ( m > r))      return FALSE;    if( big5seq <= big5_map[m].big5fromseq )     {      r = m - 1;    } else {      l = m + 1;    }    m = (l+r) >> 1;  }  return FALSE;}