&& table[i] != i)
&& table[i] != (int)i)
XmlInitUnknownEncoding(void *mem,		       int *table,		       int (*convert)(void *userData, const char *p),		       void *userData){  int i;  struct unknown_encoding *e = mem;  for (i = 0; i < sizeof(struct normal_encoding); i++)    ((char *)mem)[i] = ((char *)&latin1_encoding)[i];  for (i = 0; i < 128; i++)    if (latin1_encoding.type[i] != BT_OTHER        && latin1_encoding.type[i] != BT_NONXML	&& table[i] != i)      return 0;  for (i = 0; i < 256; i++) {    int c = table[i];    if (c == -1) {      e->normal.type[i] = BT_MALFORM;      /* This shouldn't really get used. */      e->utf16[i] = 0xFFFF;      e->utf8[i][0] = 1;      e->utf8[i][1] = 0;    }    else if (c < 0) {      if (c < -4)	return 0;      e->normal.type[i] = BT_LEAD2 - (c + 2);      e->utf8[i][0] = 0;      e->utf16[i] = 0;    }    else if (c < 0x80) {      if (latin1_encoding.type[c] != BT_OTHER	  && latin1_encoding.type[c] != BT_NONXML	  && c != i)	return 0;      e->normal.type[i] = latin1_encoding.type[c];      e->utf8[i][0] = 1;      e->utf8[i][1] = (char)c;      e->utf16[i] = c == 0 ? 0xFFFF : c;    }    else if (checkCharRefNumber(c) < 0) {      e->normal.type[i] = BT_NONXML;      /* This shouldn't really get used. */      e->utf16[i] = 0xFFFF;      e->utf8[i][0] = 1;      e->utf8[i][1] = 0;    }    else {      if (c > 0xFFFF)	return 0;      if (UCS2_GET_NAMING(nmstrtPages, c >> 8, c & 0xff))	e->normal.type[i] = BT_NMSTRT;      else if (UCS2_GET_NAMING(namePages, c >> 8, c & 0xff))	e->normal.type[i] = BT_NAME;      else	e->normal.type[i] = BT_OTHER;      e->utf8[i][0] = (char)XmlUtf8Encode(c, e->utf8[i] + 1);      e->utf16[i] = c;    }  }  e->userData = userData;  e->convert = convert;  if (convert) {    e->normal.isName2 = unknown_isName;    e->normal.isName3 = unknown_isName;    e->normal.isName4 = unknown_isName;    e->normal.isNmstrt2 = unknown_isNmstrt;    e->normal.isNmstrt3 = unknown_isNmstrt;    e->normal.isNmstrt4 = unknown_isNmstrt;    e->normal.isInvalid2 = unknown_isInvalid;    e->normal.isInvalid3 = unknown_isInvalid;    e->normal.isInvalid4 = unknown_isInvalid;  }  e->normal.enc.utf8Convert = unknown_toUtf8;  e->normal.enc.utf16Convert = unknown_toUtf16;  return &(e->normal.enc);}