]> git.saurik.com Git - wxWidgets.git/blobdiff - src/common/xpmdecod.cpp
compilation fixes
[wxWidgets.git] / src / common / xpmdecod.cpp
index 90674a7e5107e4b41141f7a1834f8281ea32f665..a0d99a11db2db24a8d8661dba00c578af78de168 100644 (file)
@@ -523,12 +523,14 @@ static bool GetRGBFromName(const char *inname, bool *isNone,
     char *name;
     char *grey, *p;
 
     char *name;
     char *grey, *p;
 
-    // #rrggbb are not in database, we parse them directly
-    if ( *inname == '#' && strlen(inname) == 7 )
+    // Neither #rrggbb nor #rrrrggggbbbb are in database, we parse them directly
+    size_t inname_len = strlen(inname);
+    if ( *inname == '#' && (inname_len == 7 || inname_len == 13))
     {
     {
+        size_t ofs = (inname_len == 7) ? 2 : 4;
         *r = ParseHexadecimal(inname[1], inname[2]);
         *r = ParseHexadecimal(inname[1], inname[2]);
-        *g = ParseHexadecimal(inname[3], inname[4]);
-        *b = ParseHexadecimal(inname[5], inname[6]);
+        *g = ParseHexadecimal(inname[1*ofs+1], inname[1*ofs+2]);
+        *b = ParseHexadecimal(inname[2*ofs+1], inname[2*ofs+2]);
         *isNone = FALSE;
         return TRUE;
     }
         *isNone = FALSE;
         return TRUE;
     }
@@ -752,5 +754,4 @@ wxImage wxXPMDecoder::ReadData(const char **xpm_data)
     return img;
 }
 
     return img;
 }
 
-
 #endif // wxUSE_IMAGE && wxUSE_XPM
 #endif // wxUSE_IMAGE && wxUSE_XPM