From 0200fb27880406fb89d5f2dc2aaae5ce810f51b6 Mon Sep 17 00:00:00 2001 From: Paul Cornett Date: Tue, 3 Jul 2007 03:08:26 +0000 Subject: [PATCH 1/1] fix XPM SaveFile for more than 92 colors git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@47088 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- docs/changes.txt | 1 + src/common/imagxpm.cpp | 8 +++----- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/docs/changes.txt b/docs/changes.txt index 5f4de91df5..e3cbd0ff82 100644 --- a/docs/changes.txt +++ b/docs/changes.txt @@ -181,6 +181,7 @@ All (GUI): - Fixed freeing of "static" alpha data in wxImage (Axel Gembe) - Don't invalidate the font in SetNativeFontInfo[Desc]() if the string is invalid, to conform to the documented behaviour (Langhammer) +- Fixed wxXPMHandler::SaveFile for images with more than 92 colors. wxMSW: diff --git a/src/common/imagxpm.cpp b/src/common/imagxpm.cpp index 3db566fcb7..5bf4ec4af3 100644 --- a/src/common/imagxpm.cpp +++ b/src/common/imagxpm.cpp @@ -181,12 +181,10 @@ bool wxXPMHandler::SaveFile(wxImage * image, symbols[index] = symbols_data + index * (chars_per_pixel+1); char *sym = symbols[index]; - k = index % MaxCixels; - sym[0] = Cixel[k]; - for (j = 1; j < chars_per_pixel; j++) + for (j = 0; j < chars_per_pixel; j++) { - k = ((index - k) / MaxCixels) % MaxCixels; - sym[j] = Cixel[k]; + sym[j] = Cixel[index % MaxCixels]; + index /= MaxCixels; } sym[j] = '\0'; -- 2.45.2