On Thu, Nov 09, 2000 at 09:32:23PM +0400, [EMAIL PROTECTED] wrote:
> 
> diff -ru 
>abi-0.7.11-orig~/abi-0.7.11/src/wp/impexp/xp/ie_exp_RTF_listenerWriteDoc.cpp 
>abi-0.7.11-orig-orig/abi-0.7.11/src/wp/impexp/xp/ie_exp_RTF_listenerWriteDoc.cpp
> --- abi-0.7.11-orig~/abi-0.7.11/src/wp/impexp/xp/ie_exp_RTF_listenerWriteDoc.cpp     
> Thu Nov  9 19:38:49 2000
> +++ abi-0.7.11-orig-orig/abi-0.7.11/src/wp/impexp/xp/ie_exp_RTF_listenerWriteDoc.cpp 
> Thu Nov  9 20:24:06 2000
> @@ -197,13 +197,11 @@
>                               /*FIXME: can it happen that wctomb will fail under CJK 
>locales? */
>                               m_wctomb.wctomb_or_fallback(mbbuf,mblen,*pData++);
>                               for(int i=0;i<mblen;++i) {
> +                                     /* unfortunately all english letters will be 
>output as \'hh too. */
>                                       unsigned char c = mbbuf[i];
> -                                     if ( c > 0x007f)
> -                                             m_pie->_rtf_nonascii_hex2(c);
> -                                     else
> -                                             *pBuf++ = c;
> -                                     
> -                             };
> +                                     FlushBuffer();
> +                                     m_pie->_rtf_nonascii_hex2(c);
> +                             }
>                       } else if (!m_pie->m_atticFormat) 
>                       {
>                               if (*pData > 0x00ff)            // emit unicode 
>character

Maybe this can be changed to(are we dealing with one wc a time?):

--- ie_exp_RTF_listenerWriteDoc.cpp.orig        Fri Nov 10 10:04:19 2000
+++ ie_exp_RTF_listenerWriteDoc.cpp     Fri Nov 10 10:14:17 2000
@@ -196,14 +196,21 @@
                        {
                                /*FIXME: can it happen that wctomb will fail under CJK 
locales? */
                                m_wctomb.wctomb_or_fallback(mbbuf,mblen,*pData++);
-                               for(int i=0;i<mblen;++i) {
-                                       unsigned char c = mbbuf[i];
-                                       if ( c > 0x007f)
+                               if (mbbuf[0] > 0x007f)
+                               {
+                                       FlushBuffer();
+                                       for(int i=0;i<mblen;++i) {
+                                               unsigned char c = mbbuf[i];
                                                m_pie->_rtf_nonascii_hex2(c);
-                                       else
-                                               *pBuf++ = c;
+                                       }
+                               }
+                               else
+                               {
+                                       for(int i=0;i<mblen;++i) {
+                                               *pBuf++ = mbbuf[i];
+                                       }
+                               }
                                        
-                               };
                        } else if (!m_pie->m_atticFormat) 
                        {
                                if (*pData > 0x00ff)            // emit unicode 
character



Reply via email to