X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/952ae1e88b9092f493b4ea6911a2b60b378d422d..f8d791e0a41f1021a69c3d6320ee6934c0dd7f36:/src/common/imagxpm.cpp?ds=sidebyside diff --git a/src/common/imagxpm.cpp b/src/common/imagxpm.cpp index 7ebe0c9edf..c6ad6d6aa1 100644 --- a/src/common/imagxpm.cpp +++ b/src/common/imagxpm.cpp @@ -127,13 +127,26 @@ bool wxXPMHandler::SaveFile(wxImage * image, for ( k = MaxCixels; cols > k; k *= MaxCixels) chars_per_pixel++; - // 2. write the header: + // 2. write the header: + wxString sName; + if ( image->HasOption(wxIMAGE_OPTION_FILENAME) ) + { + wxSplitPath(image->GetOption(wxIMAGE_OPTION_FILENAME), + NULL, &sName, NULL); + sName << wxT("_xpm"); + } + + if ( !sName.IsEmpty() ) + sName = wxString(wxT("/* XPM */\nstatic char *")) + sName; + else + sName = wxT("/* XPM */\nstatic char *xpm_data"); + stream.Write(sName.c_str(), sName.Len()); + char tmpbuf[200]; // VS: 200b is safe upper bound for anything produced by sprintf below - // (101 bytes the string, neither %i can expand into more than 10 chars) + // (<101 bytes the string, neither %i can expand into more than 10 chars) sprintf(tmpbuf, - "/* XPM */\n" - "static char *xpm_data[] = {\n" + "[] = {\n" "/* columns rows colors chars-per-pixel */\n" "\"%i %i %i %i\",\n", image->GetWidth(), image->GetHeight(), cols, chars_per_pixel);