Changed MS clipboard text converters to truncate the clipboard

data at the first NUL.  This fixes a bug when interoperating
with some win32 programs.
This commit is contained in:
crs 2003-04-08 19:26:35 +00:00
parent 53c05e0163
commit c2bd4ebd4c
2 changed files with 9 additions and 7 deletions

View File

@ -45,10 +45,11 @@ CMSWindowsClipboardTextConverter::doFromIClipboard(const CString& data) const
CString
CMSWindowsClipboardTextConverter::doToIClipboard(const CString& data) const
{
// convert and strip nul terminator
CString dst = CUnicode::textToUTF8(data);
if (dst.size() > 0 && dst[dst.size() - 1] == '\0') {
dst.erase(dst.size() - 1);
// convert and truncate at first nul terminator
CString dst = CUnicode::textToUTF8(data);
CString::size_type n = dst.find('\0');
if (n != CString::npos) {
dst.erase(n);
}
return dst;
}

View File

@ -46,9 +46,10 @@ CString
CMSWindowsClipboardUTF16Converter::doToIClipboard(const CString& data) const
{
// convert and strip nul terminator
CString dst = CUnicode::UTF16ToUTF8(data);
if (dst.size() > 0 && dst[dst.size() - 1] == '\0') {
dst.erase(dst.size() - 1);
CString dst = CUnicode::UTF16ToUTF8(data);
CString::size_type n = dst.find('\0');
if (n != CString::npos) {
dst.erase(n);
}
return dst;
}