mirror of
https://github.com/debauchee/barrier.git
synced 2026-02-08 21:03:54 +08:00
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:
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user