]> git.saurik.com Git - wxWidgets.git/commitdiff
newlines conversions streamlined
authorStefan Csomor <csomor@advancedconcepts.ch>
Fri, 10 Oct 2003 04:26:45 +0000 (04:26 +0000)
committerStefan Csomor <csomor@advancedconcepts.ch>
Fri, 10 Oct 2003 04:26:45 +0000 (04:26 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@24147 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

src/mac/carbon/clipbrd.cpp
src/mac/carbon/msgdlg.cpp
src/mac/carbon/textctrl.cpp
src/mac/carbon/utils.cpp
src/mac/clipbrd.cpp
src/mac/msgdlg.cpp
src/mac/textctrl.cpp
src/mac/utils.cpp

index 5ef8fdb107219295dbfb439eb0399c7c2f13c67a..91fc234410384e084ad26ce91b56f7f0d7008f5c 100644 (file)
@@ -138,12 +138,7 @@ void *wxGetClipboardData(wxDataFormat dataFormat, long *len)
 
     if ( dataFormat.GetType() == wxDF_TEXT )
     {
-        char * buf = (char*) data ;
-        while( (buf=strchr(buf,0x0a)) != NULL )
-        {
-            *buf = 13 ;
-            buf++ ;
-        }
+        wxMacConvertNewlines10To13( (char*) data ) ;
     }
 
     return data;
index b859197877f22fca2b07a38d3d9e253a3d9ee449..b02af638f246defbb42b5cd4ae0856c45e4a5df1 100644 (file)
 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)
 {
index 97588b198bd278b53e401f175020ea5ce605bbfe..8fb67180e8cb81f9fc34769208013e804ffa9791 100644 (file)
@@ -748,7 +748,7 @@ bool wxTextCtrl::Create(wxWindow *parent, wxWindowID id,
     }
 
     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,
@@ -865,7 +865,7 @@ wxString wxTextCtrl::GetValue() const
         }
 #endif
     }
-    result.Replace(wxT("\r"),wxT("\n")) ;
+    wxMacConvertNewlines10To13( &result ) ;
     return result ;
 }
 
@@ -885,7 +885,7 @@ void wxTextCtrl::GetSelection(long* from, long* to) const
 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) ;
@@ -1174,7 +1174,7 @@ long wxTextCtrl::GetLastPosition() const
 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 ;
@@ -1279,7 +1279,7 @@ bool wxTextCtrl::LoadFile(const wxString& file)
 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) ;
index 16f91e18e350ba621e7d7d047111c43f9077291d..cd800e3ea4b337a4a037ac93e60f55c109294674 100644 (file)
@@ -46,9 +46,7 @@
 #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>
@@ -751,8 +749,10 @@ wxString wxMacMakeStringFromPascal( ConstStringPtr from )
 
 #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() );
@@ -774,12 +774,73 @@ wxString wxMacCFStringHolder::AsString()
     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
 // ----------------------------------------------------------------------------
index 5ef8fdb107219295dbfb439eb0399c7c2f13c67a..91fc234410384e084ad26ce91b56f7f0d7008f5c 100644 (file)
@@ -138,12 +138,7 @@ void *wxGetClipboardData(wxDataFormat dataFormat, long *len)
 
     if ( dataFormat.GetType() == wxDF_TEXT )
     {
-        char * buf = (char*) data ;
-        while( (buf=strchr(buf,0x0a)) != NULL )
-        {
-            *buf = 13 ;
-            buf++ ;
-        }
+        wxMacConvertNewlines10To13( (char*) data ) ;
     }
 
     return data;
index b859197877f22fca2b07a38d3d9e253a3d9ee449..b02af638f246defbb42b5cd4ae0856c45e4a5df1 100644 (file)
 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)
 {
index 97588b198bd278b53e401f175020ea5ce605bbfe..8fb67180e8cb81f9fc34769208013e804ffa9791 100644 (file)
@@ -748,7 +748,7 @@ bool wxTextCtrl::Create(wxWindow *parent, wxWindowID id,
     }
 
     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,
@@ -865,7 +865,7 @@ wxString wxTextCtrl::GetValue() const
         }
 #endif
     }
-    result.Replace(wxT("\r"),wxT("\n")) ;
+    wxMacConvertNewlines10To13( &result ) ;
     return result ;
 }
 
@@ -885,7 +885,7 @@ void wxTextCtrl::GetSelection(long* from, long* to) const
 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) ;
@@ -1174,7 +1174,7 @@ long wxTextCtrl::GetLastPosition() const
 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 ;
@@ -1279,7 +1279,7 @@ bool wxTextCtrl::LoadFile(const wxString& file)
 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) ;
index 16f91e18e350ba621e7d7d047111c43f9077291d..cd800e3ea4b337a4a037ac93e60f55c109294674 100644 (file)
@@ -46,9 +46,7 @@
 #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>
@@ -751,8 +749,10 @@ wxString wxMacMakeStringFromPascal( ConstStringPtr from )
 
 #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() );
@@ -774,12 +774,73 @@ wxString wxMacCFStringHolder::AsString()
     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
 // ----------------------------------------------------------------------------