]> git.saurik.com Git - wxWidgets.git/blobdiff - src/common/xpmdecod.cpp
changed wxUSE_DRAGIMAG to wxUSE_DRAGIMAGE and use it everywhere now
[wxWidgets.git] / src / common / xpmdecod.cpp
index 2952344fb39960fb88ef766368f644198142800e..a0d99a11db2db24a8d8661dba00c578af78de168 100644 (file)
@@ -136,7 +136,7 @@ wxImage wxXPMDecoder::ReadFile(wxInputStream& stream)
     char *p, *q;
     size_t i;
 
-    if ( stream.Read(xpm_buffer, length).LastError() != wxSTREAM_NO_ERROR )
+    if ( stream.Read(xpm_buffer, length).LastError() == wxSTREAM_READ_ERROR )
         return FALSE;
 
     /*
@@ -523,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;
     }
@@ -752,5 +754,4 @@ wxImage wxXPMDecoder::ReadData(const char **xpm_data)
     return img;
 }
 
-
 #endif // wxUSE_IMAGE && wxUSE_XPM