if ( dataFormat.GetType() == wxDF_TEXT )
{
- char * buf = (char*) data ;
- while( (buf=strchr(buf,0x0a)) != NULL )
- {
- *buf = 13 ;
- buf++ ;
- }
+ wxMacConvertNewlines10To13( (char*) data ) ;
}
return data;
IMPLEMENT_CLASS(wxMessageDialog, wxDialog)
#endif
-short language = 0 ;
-
-void wxMacConvertNewlines( const char *source , char * destination ) ;
-void wxMacConvertNewlines( const char *source , char * destination )
-{
- const char *s = source ;
- char *d = destination ;
-
- while( *s )
- {
- switch( *s )
- {
- case 0x0a :
- *d++ = 0x0d ;
- ++s ;
- break ;
- case 0x0d :
- *d++ = 0x0d ;
- ++s ;
- if ( *s == 0x0a )
- ++s ;
- break ;
- default :
- *d++ = *s++ ;
- break ;
- }
- }
- *d = 0 ;
-}
-
wxMessageDialog::wxMessageDialog(wxWindow *parent, const wxString& message, const wxString& caption,
long style, const wxPoint& pos)
{
}
wxString st = str ;
- st.Replace(wxT("\n"), wxT("\r"));
+ wxMacConvertNewlines13To10( &st ) ;
if ( !m_macUsesTXN )
{
m_macControl = ::NewControl( MAC_WXHWND(parent->MacGetRootWindow()) , &bounds , "\p" , false , 0 , 0 , 1,
}
#endif
}
- result.Replace(wxT("\r"),wxT("\n")) ;
+ wxMacConvertNewlines10To13( &result ) ;
return result ;
}
void wxTextCtrl::SetValue(const wxString& str)
{
wxString st = str ;
- st.Replace(wxT("\n"), wxT("\r"));
+ wxMacConvertNewlines13To10( &st ) ;
if ( !m_macUsesTXN )
{
wxCharBuffer text = st.mb_str(wxConvLocal) ;
void wxTextCtrl::Replace(long from, long to, const wxString& str)
{
wxString value = str ;
- value.Replace(wxT("\n"), wxT("\r"));
+ wxMacConvertNewlines13To10( &st ) ;
if ( !m_macUsesTXN )
{
ControlEditTextSelectionRec selection ;
void wxTextCtrl::WriteText(const wxString& str)
{
wxString st = str ;
- st.Replace(wxT("\n"), wxT("\r"));
+ wxMacConvertNewlines13To10( &st ) ;
if ( !m_macUsesTXN )
{
wxCharBuffer text = st.mb_str(wxConvLocal) ;
#include "TextCommon.h"
#include "TextEncodingConverter.h"
-#if defined(__WXMAC__)
- #include "wx/mac/private.h" // includes mac headers
-#endif
+#include "wx/mac/private.h" // includes mac headers
#if defined(__MWERKS__) && wxUSE_UNICODE
#include <wtime.h>
#if TARGET_CARBON
// converts this string into a carbon foundation string with optional pc 2 mac encoding
-void wxMacCFStringHolder::Assign( const wxString &str )
+void wxMacCFStringHolder::Assign( const wxString &st )
{
+ wxString str = st ;
+ wxMacConvertNewlines13To10( &str ) ;
#if wxUSE_UNICODE
m_cfs = CFStringCreateWithCharacters( kCFAllocatorDefault,
(const unsigned short*)str.wc_str(), str.Len() );
CFStringGetCString( m_cfs , buf , len+1 , CFStringGetSystemEncoding() ) ;
#endif
buf[len] = 0 ;
+ wxMacConvertNewlines10To13( buf ) ;
result.UngetWriteBuf() ;
return result ;
}
#endif //TARGET_CARBON
+void wxMacConvertNewlines13To10( char * data )
+{
+ char * buf = data ;
+ while( (buf=strchr(buf,0x0d)) != NULL )
+ {
+ *buf = 0x0a ;
+ buf++ ;
+ }
+}
+
+void wxMacConvertNewlines10To13( char * data )
+{
+ char * buf = data ;
+ while( (buf=strchr(buf,0x0a)) != NULL )
+ {
+ *buf = 0x0d ;
+ buf++ ;
+ }
+}
+
+void wxMacConvertNewlines13To10( wxString * data )
+{
+ if ( data->Length() == 0 )
+ return ;
+
+ wxMacConvertNewlines13To10( data->GetWriteBuf( data->Length() ) ) ;
+ data->UngetWriteBuf() ;
+}
+
+void wxMacConvertNewlines10To13( wxString * data )
+{
+ if ( data->Length() == 0 )
+ return ;
+ wxMacConvertNewlines10To13( data->GetWriteBuf( data->Length() ) ) ;
+ data->UngetWriteBuf() ;
+}
+
+
+#if wxUSE_UNICODE
+void wxMacConvertNewlines13To10( wxChar * data )
+{
+ wxChar * buf = data ;
+ while( (buf=wxStrchr(buf,0x0d)) != NULL )
+ {
+ *buf = 0x0a ;
+ buf++ ;
+ }
+}
+
+void wxMacConvertNewlines10To13( wxChar * data )
+{
+ wxChar * buf = data ;
+ while( (buf=wxStrchr(buf,0x0a)) != NULL )
+ {
+ *buf = 0x0d ;
+ buf++ ;
+ }
+}
+#endif
+
// ----------------------------------------------------------------------------
// debugging support
// ----------------------------------------------------------------------------
if ( dataFormat.GetType() == wxDF_TEXT )
{
- char * buf = (char*) data ;
- while( (buf=strchr(buf,0x0a)) != NULL )
- {
- *buf = 13 ;
- buf++ ;
- }
+ wxMacConvertNewlines10To13( (char*) data ) ;
}
return data;
IMPLEMENT_CLASS(wxMessageDialog, wxDialog)
#endif
-short language = 0 ;
-
-void wxMacConvertNewlines( const char *source , char * destination ) ;
-void wxMacConvertNewlines( const char *source , char * destination )
-{
- const char *s = source ;
- char *d = destination ;
-
- while( *s )
- {
- switch( *s )
- {
- case 0x0a :
- *d++ = 0x0d ;
- ++s ;
- break ;
- case 0x0d :
- *d++ = 0x0d ;
- ++s ;
- if ( *s == 0x0a )
- ++s ;
- break ;
- default :
- *d++ = *s++ ;
- break ;
- }
- }
- *d = 0 ;
-}
-
wxMessageDialog::wxMessageDialog(wxWindow *parent, const wxString& message, const wxString& caption,
long style, const wxPoint& pos)
{
}
wxString st = str ;
- st.Replace(wxT("\n"), wxT("\r"));
+ wxMacConvertNewlines13To10( &st ) ;
if ( !m_macUsesTXN )
{
m_macControl = ::NewControl( MAC_WXHWND(parent->MacGetRootWindow()) , &bounds , "\p" , false , 0 , 0 , 1,
}
#endif
}
- result.Replace(wxT("\r"),wxT("\n")) ;
+ wxMacConvertNewlines10To13( &result ) ;
return result ;
}
void wxTextCtrl::SetValue(const wxString& str)
{
wxString st = str ;
- st.Replace(wxT("\n"), wxT("\r"));
+ wxMacConvertNewlines13To10( &st ) ;
if ( !m_macUsesTXN )
{
wxCharBuffer text = st.mb_str(wxConvLocal) ;
void wxTextCtrl::Replace(long from, long to, const wxString& str)
{
wxString value = str ;
- value.Replace(wxT("\n"), wxT("\r"));
+ wxMacConvertNewlines13To10( &st ) ;
if ( !m_macUsesTXN )
{
ControlEditTextSelectionRec selection ;
void wxTextCtrl::WriteText(const wxString& str)
{
wxString st = str ;
- st.Replace(wxT("\n"), wxT("\r"));
+ wxMacConvertNewlines13To10( &st ) ;
if ( !m_macUsesTXN )
{
wxCharBuffer text = st.mb_str(wxConvLocal) ;
#include "TextCommon.h"
#include "TextEncodingConverter.h"
-#if defined(__WXMAC__)
- #include "wx/mac/private.h" // includes mac headers
-#endif
+#include "wx/mac/private.h" // includes mac headers
#if defined(__MWERKS__) && wxUSE_UNICODE
#include <wtime.h>
#if TARGET_CARBON
// converts this string into a carbon foundation string with optional pc 2 mac encoding
-void wxMacCFStringHolder::Assign( const wxString &str )
+void wxMacCFStringHolder::Assign( const wxString &st )
{
+ wxString str = st ;
+ wxMacConvertNewlines13To10( &str ) ;
#if wxUSE_UNICODE
m_cfs = CFStringCreateWithCharacters( kCFAllocatorDefault,
(const unsigned short*)str.wc_str(), str.Len() );
CFStringGetCString( m_cfs , buf , len+1 , CFStringGetSystemEncoding() ) ;
#endif
buf[len] = 0 ;
+ wxMacConvertNewlines10To13( buf ) ;
result.UngetWriteBuf() ;
return result ;
}
#endif //TARGET_CARBON
+void wxMacConvertNewlines13To10( char * data )
+{
+ char * buf = data ;
+ while( (buf=strchr(buf,0x0d)) != NULL )
+ {
+ *buf = 0x0a ;
+ buf++ ;
+ }
+}
+
+void wxMacConvertNewlines10To13( char * data )
+{
+ char * buf = data ;
+ while( (buf=strchr(buf,0x0a)) != NULL )
+ {
+ *buf = 0x0d ;
+ buf++ ;
+ }
+}
+
+void wxMacConvertNewlines13To10( wxString * data )
+{
+ if ( data->Length() == 0 )
+ return ;
+
+ wxMacConvertNewlines13To10( data->GetWriteBuf( data->Length() ) ) ;
+ data->UngetWriteBuf() ;
+}
+
+void wxMacConvertNewlines10To13( wxString * data )
+{
+ if ( data->Length() == 0 )
+ return ;
+ wxMacConvertNewlines10To13( data->GetWriteBuf( data->Length() ) ) ;
+ data->UngetWriteBuf() ;
+}
+
+
+#if wxUSE_UNICODE
+void wxMacConvertNewlines13To10( wxChar * data )
+{
+ wxChar * buf = data ;
+ while( (buf=wxStrchr(buf,0x0d)) != NULL )
+ {
+ *buf = 0x0a ;
+ buf++ ;
+ }
+}
+
+void wxMacConvertNewlines10To13( wxChar * data )
+{
+ wxChar * buf = data ;
+ while( (buf=wxStrchr(buf,0x0a)) != NULL )
+ {
+ *buf = 0x0d ;
+ buf++ ;
+ }
+}
+#endif
+
// ----------------------------------------------------------------------------
// debugging support
// ----------------------------------------------------------------------------