]> git.saurik.com Git - wxWidgets.git/commitdiff
1) fixed handling of 48bit colors in XPMs
authorVáclav Slavík <vslavik@fastmail.fm>
Sun, 1 Jul 2001 15:07:14 +0000 (15:07 +0000)
committerVáclav Slavík <vslavik@fastmail.fm>
Sun, 1 Jul 2001 15:07:14 +0000 (15:07 +0000)
2) re-added #if wxUSE_IMAGE && wxUSE_XPM

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@10739 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

src/common/xpmdecod.cpp

index 28d81ca4a3fa14e48e946de4d78fe5d0a3442822..a0d99a11db2db24a8d8661dba00c578af78de168 100644 (file)
@@ -105,6 +105,7 @@ license is as follows:
 #  include "wx/defs.h"
 #endif
 
+#if wxUSE_IMAGE && wxUSE_XPM
 
 #include "wx/stream.h"
 #include "wx/image.h"
@@ -522,12 +523,14 @@ static bool GetRGBFromName(const char *inname, bool *isNone,
     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]);
-        *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;
     }
@@ -751,4 +754,4 @@ wxImage wxXPMDecoder::ReadData(const char **xpm_data)
     return img;
 }
 
-
+#endif // wxUSE_IMAGE && wxUSE_XPM