Hack to support iso8859 and other wrongly formated
filenames in UTF8 locales for file DnD as we do for the native GTK+ file dialog. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@44487 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -278,8 +278,14 @@ bool wxFileDataObject::SetData(size_t WXUNUSED(size), const void *buf)
|
|||||||
// skip the slashes
|
// skip the slashes
|
||||||
lenPrefix += 2;
|
lenPrefix += 2;
|
||||||
}
|
}
|
||||||
|
|
||||||
AddFile(wxURI::Unescape(filename.c_str() + lenPrefix));
|
// It would probably be nicer to use a GTK or Glib
|
||||||
|
// function to unescape the 8-bit strings pointed to
|
||||||
|
// by buf, but this does the same in wx code.
|
||||||
|
wxString filename_unicode = wxURI::Unescape(filename.c_str() + lenPrefix);
|
||||||
|
wxCharBuffer filename_8bit = wxConvISO8859_1.cWX2MB( filename_unicode );
|
||||||
|
filename_unicode = wxConvFileName->cMB2WX( filename_8bit );
|
||||||
|
AddFile( filename_unicode );
|
||||||
filename.Empty();
|
filename.Empty();
|
||||||
}
|
}
|
||||||
else if ( !filename.empty() )
|
else if ( !filename.empty() )
|
||||||
@@ -296,6 +302,7 @@ bool wxFileDataObject::SetData(size_t WXUNUSED(size), const void *buf)
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
// The string is in ISO-8859-1 according to XDND spec
|
||||||
filename += *p;
|
filename += *p;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user