]> Chaos Git - console/RCOMage.git/commitdiff
Remove variable declaration in .h file and clean BOM handling code
authorYouness Alaoui <kakaroto@kakaroto.homelinux.net>
Sun, 9 Jan 2011 11:20:18 +0000 (06:20 -0500)
committerYouness Alaoui <kakaroto@kakaroto.homelinux.net>
Sun, 9 Jan 2011 11:37:54 +0000 (06:37 -0500)
general.h
xmlread.c

index 198195df237701ea662771653680790cea610a87..d1457a0527d04abcf2b7d8240ef5a5c585158fee 100644 (file)
--- a/general.h
+++ b/general.h
@@ -55,10 +55,10 @@ typedef int16_t int16;
 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
index 9750f6fe0ded68b0f7672d6bf0806ebc76f1fafa..074650d05d49ff57a6278d6a769797784439a516 100644 (file)
--- a/xmlread.c
+++ b/xmlread.c
@@ -538,25 +538,28 @@ void parse_entry(xmlNodePtr node, rRCOEntry* entry, rRCOFile* rco, rcoxml_read_f
                                                                                                // 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