typedef uint32_t uint32;\r
typedef int32_t int32;\r
\r
-const uint32 UTF8_BOM = 0xBFBBEF;\r
-const uint16 UTF16_BOM = 0xFEFF;\r
-const uint32 UTF32_BOM = 0x0000FEFF;\r
\r
+#define UTF8_BOM ((uint32) 0xBFBBEF)\r
+#define UTF16_BOM ((uint16) 0xFEFF)\r
+#define UTF32_BOM ((uint32) 0x0000FEFF)\r
\r
#define PACK_STRUCT(nam, struc) typedef struct struc __attribute__ ((packed)) nam\r
\r
// do we have a BOM?\r
unsigned char bom[4] = {0x80, 0x80, 0x80, 0x80}; // dummy values that aren't used\r
char srcFmt[10] = "", destFmt[8];\r
- uint32 tmp32 = ENDIAN_SWAP(UTF32_BOM);\r
- uint16 tmp16 = ENDIAN_SWAP(UTF16_BOM);\r
+ uint32 bom32le = UTF32_BOM;\r
+ uint32 bom32be = ENDIAN_SWAP(UTF32_BOM);\r
+ uint16 bom16le = UTF16_BOM;\r
+ uint16 bom16be = ENDIAN_SWAP(UTF16_BOM);\r
+ uint32 bom8 = UTF8_BOM;\r
uint bomLen = (te->format == RCO_TEXT_FMT_UTF32 ? 4 : (te->format == RCO_TEXT_FMT_UTF8 ? 3 : 2));\r
make_iconv_charset(destFmt, te->format, rco->eSwap);\r
\r
fileread(fp, bom, 4);\r
- if(!memcmp(bom, &UTF32_BOM, sizeof(UTF32_BOM))) {\r
+ if(!memcmp(bom, &bom32le, sizeof(bom32le))) {\r
strcpy(srcFmt, "utf-32le");\r
bomLen = 4;\r
- } else if(!memcmp(bom, &tmp32, sizeof(tmp32))) {\r
+ } else if(!memcmp(bom, &bom32be, sizeof(bom32be))) {\r
strcpy(srcFmt, "utf-32be");\r
bomLen = 4;\r
- } else if(!memcmp(bom, &UTF16_BOM, sizeof(UTF16_BOM))) {\r
+ } else if(!memcmp(bom, &bom16le, sizeof(bom16le))) {\r
strcpy(srcFmt, "utf-16le");\r
bomLen = 2;\r
- } else if(!memcmp(bom, &tmp16, sizeof(tmp16))) {\r
+ } else if(!memcmp(bom, &bom16be, sizeof(bom16be))) {\r
strcpy(srcFmt, "utf-16be");\r
bomLen = 2;\r
- } else if(bom[0] == 0xEF && bom[1] == 0xBB && bom[2] == 0xBF) {\r
+ } else if(!memcmp(bom, &bom8, 3)) {\r
strcpy(srcFmt, "utf-8");\r
bomLen = 3;\r
} else { // don't convert\r