From: Stefan Csomor Date: Wed, 22 Oct 2003 17:10:20 +0000 (+0000) Subject: string conversion bug fixed X-Git-Url: https://git.saurik.com/wxWidgets.git/commitdiff_plain/be6628ce350bf611f95e37817b2af7e4b28fe44b string conversion bug fixed git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@24254 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- diff --git a/src/mac/carbon/utils.cpp b/src/mac/carbon/utils.cpp index cd800e3ea4..0a0735d4a7 100644 --- a/src/mac/carbon/utils.cpp +++ b/src/mac/carbon/utils.cpp @@ -803,19 +803,29 @@ void wxMacConvertNewlines10To13( char * data ) void wxMacConvertNewlines13To10( wxString * data ) { - if ( data->Length() == 0 ) + size_t len = data->Length() ; + + if ( len == 0 || wxStrchr(data->c_str(),0x0d)==NULL) return ; - wxMacConvertNewlines13To10( data->GetWriteBuf( data->Length() ) ) ; - data->UngetWriteBuf() ; + wxString temp(*data) ; + wxStringBuffer buf(*data,len ) ; + memcpy( buf , temp.c_str() , (len+1)*sizeof(wxChar) ) ; + + wxMacConvertNewlines13To10( buf ) ; } void wxMacConvertNewlines10To13( wxString * data ) { - if ( data->Length() == 0 ) + size_t len = data->Length() ; + + if ( data->Length() == 0 || wxStrchr(data->c_str(),0x0a)==NULL) return ; - wxMacConvertNewlines10To13( data->GetWriteBuf( data->Length() ) ) ; - data->UngetWriteBuf() ; + + wxString temp(*data) ; + wxStringBuffer buf(*data,len ) ; + memcpy( buf , temp.c_str() , (len+1)*sizeof(wxChar) ) ; + wxMacConvertNewlines10To13( buf ) ; } diff --git a/src/mac/utils.cpp b/src/mac/utils.cpp index cd800e3ea4..0a0735d4a7 100644 --- a/src/mac/utils.cpp +++ b/src/mac/utils.cpp @@ -803,19 +803,29 @@ void wxMacConvertNewlines10To13( char * data ) void wxMacConvertNewlines13To10( wxString * data ) { - if ( data->Length() == 0 ) + size_t len = data->Length() ; + + if ( len == 0 || wxStrchr(data->c_str(),0x0d)==NULL) return ; - wxMacConvertNewlines13To10( data->GetWriteBuf( data->Length() ) ) ; - data->UngetWriteBuf() ; + wxString temp(*data) ; + wxStringBuffer buf(*data,len ) ; + memcpy( buf , temp.c_str() , (len+1)*sizeof(wxChar) ) ; + + wxMacConvertNewlines13To10( buf ) ; } void wxMacConvertNewlines10To13( wxString * data ) { - if ( data->Length() == 0 ) + size_t len = data->Length() ; + + if ( data->Length() == 0 || wxStrchr(data->c_str(),0x0a)==NULL) return ; - wxMacConvertNewlines10To13( data->GetWriteBuf( data->Length() ) ) ; - data->UngetWriteBuf() ; + + wxString temp(*data) ; + wxStringBuffer buf(*data,len ) ; + memcpy( buf , temp.c_str() , (len+1)*sizeof(wxChar) ) ; + wxMacConvertNewlines10To13( buf ) ; }