diff options
Diffstat (limited to 'editors/openoffice-devel')
| -rw-r--r-- | editors/openoffice-devel/Makefile | 1 | ||||
| -rw-r--r-- | editors/openoffice-devel/files/patch-rtfcjk | 214 | ||||
| -rw-r--r-- | editors/openoffice-devel/files/patch-topsection | 21 | ||||
| -rw-r--r-- | editors/openoffice-devel/files/patch-word6+95-cjkhandling | 63 | ||||
| -rw-r--r-- | editors/openoffice-devel/files/patch-wrtrtf | 312 | 
5 files changed, 611 insertions, 0 deletions
diff --git a/editors/openoffice-devel/Makefile b/editors/openoffice-devel/Makefile index 68bcf804ab71..dd5d66a9326d 100644 --- a/editors/openoffice-devel/Makefile +++ b/editors/openoffice-devel/Makefile @@ -7,6 +7,7 @@  PORTNAME=	openoffice  PORTVERSION=	1.1.0 +PORTREVERSION=	1  CATEGORIES+=	editors  MASTER_SITES+=	ftp://openofficeorg.secsup.org/pub/software/openoffice/stable/%SUBDIR%/ \  		ftp://sunsite.cnlab-switch.ch/mirror/OpenOffice/stable/%SUBDIR%/ \ diff --git a/editors/openoffice-devel/files/patch-rtfcjk b/editors/openoffice-devel/files/patch-rtfcjk new file mode 100644 index 000000000000..2b44f86757f9 --- /dev/null +++ b/editors/openoffice-devel/files/patch-rtfcjk @@ -0,0 +1,214 @@ +--- ../svx/source/svrtf/rtfitem.cxx	24 Jun 2003 07:48:56 -0000	1.18 ++++ ../svx/source/svrtf/rtfitem.cxx	25 Jul 2003 22:54:24 -0000 +@@ -285,11 +285,20 @@ + 	} + 	else + 	{ +-		if( LOW_CHARTYPE == eType || HIGH_CHARTYPE == eType ) ++//		if( LOW_CHARTYPE == eType || HIGH_CHARTYPE == eType )	//Takashi Ono for CJK ++		if( LOW_CHARTYPE == eType ) + 		{ + 			if( *pNormal ) + 			{ + 				rItem.SetWhich( *pNormal ); ++				rSet.Put( rItem ); ++			} ++		} ++		else if( HIGH_CHARTYPE == eType ) ++		{ ++			if( *pCTL ) ++			{ ++				rItem.SetWhich( *pCTL ); + 				rSet.Put( rItem ); + 			} + 		} +--- ../svx/source/svrtf/svxrtf.cxx	19 May 2003 12:30:59 -0000	1.15 ++++ ../svx/source/svrtf/svxrtf.cxx	25 Jul 2003 22:54:29 -0000 +@@ -583,8 +583,14 @@ +  + 		case RTF_FCHARSET: + 			if( -1 != nTokenValue ) +-				pFont->SetCharSet( rtl_getTextEncodingFromWindowsCharset( +-										(BYTE)nTokenValue ) ); ++			{ ++//				pFont->SetCharSet( rtl_getTextEncodingFromWindowsCharset( ++//										(BYTE)nTokenValue ) ); ++				CharSet nCharSet = ++					rtl_getTextEncodingFromWindowsCharset( (BYTE)nTokenValue ); ++				pFont->SetCharSet( nCharSet ); ++				SetEncoding( nCharSet );	//Takashi Ono ++			} + 			break; +  + 		case RTF_FPRQ: +--- ../sw/source/filter/rtf/swparrtf.cxx	4 Jun 2003 10:19:09 -0000	1.28 ++++ ../sw/source/filter/rtf/swparrtf.cxx	25 Jul 2003 22:54:37 -0000 +@@ -3231,10 +3231,156 @@ + 	SetSwgValues( rCollSet ); + } +  ++//Takashi Ono for CJK ++String SwRTFParser::XlateFmtColName( const String &rName ) ++{ ++#define RES_NONE RES_POOLCOLL_DOC_END ++ ++	static const RES_POOL_COLLFMT_TYPE aArr[]={ ++		RES_POOLCOLL_STANDARD, RES_POOLCOLL_HEADLINE1, RES_POOLCOLL_HEADLINE2, ++		RES_POOLCOLL_HEADLINE3, RES_POOLCOLL_HEADLINE4, RES_POOLCOLL_HEADLINE5, ++		RES_POOLCOLL_HEADLINE6, RES_POOLCOLL_HEADLINE7, RES_POOLCOLL_HEADLINE8, ++		RES_POOLCOLL_HEADLINE9, ++ ++		RES_POOLCOLL_TOX_IDX1, RES_POOLCOLL_TOX_IDX2, RES_POOLCOLL_TOX_IDX3, ++		RES_NONE, RES_NONE, RES_NONE, RES_NONE, RES_NONE, RES_NONE, ++		RES_POOLCOLL_TOX_CNTNT1, ++ ++		RES_POOLCOLL_TOX_CNTNT2, RES_POOLCOLL_TOX_CNTNT3, RES_POOLCOLL_TOX_CNTNT4, ++		RES_POOLCOLL_TOX_CNTNT5, RES_POOLCOLL_TOX_CNTNT6, RES_POOLCOLL_TOX_CNTNT7, ++		RES_POOLCOLL_TOX_CNTNT8, RES_POOLCOLL_TOX_CNTNT9, ++		RES_NONE, RES_POOLCOLL_FOOTNOTE, ++ ++		RES_NONE, RES_POOLCOLL_HEADER, RES_POOLCOLL_FOOTER, RES_POOLCOLL_TOX_IDXH, ++		RES_NONE, RES_NONE, RES_POOLCOLL_JAKETADRESS, RES_POOLCOLL_SENDADRESS, ++		RES_NONE, RES_NONE, ++ ++		RES_NONE, RES_NONE, RES_NONE, RES_POOLCOLL_ENDNOTE, RES_NONE, RES_NONE, RES_NONE, ++		RES_POOLCOLL_LISTS_BEGIN, RES_NONE, RES_NONE, ++ ++		RES_NONE, RES_NONE, RES_NONE, RES_NONE, RES_NONE, ++		RES_NONE, RES_NONE, RES_NONE, RES_NONE, RES_NONE, ++ ++		RES_NONE,RES_NONE, RES_POOLCOLL_DOC_TITEL, RES_NONE, RES_POOLCOLL_SIGNATURE, RES_NONE, ++		RES_POOLCOLL_TEXT, RES_POOLCOLL_TEXT_MOVE, RES_NONE, RES_NONE, ++ ++		RES_NONE, RES_NONE, RES_NONE, RES_NONE, RES_POOLCOLL_DOC_SUBTITEL }; ++	static const sal_Char *stiName[] = { ++		"Normal", ++		"heading 1", ++		"heading 2", ++		"heading 3", ++		"heading 4", ++		"heading 5", ++		"heading 6", ++		"heading 7", ++		"heading 8", ++		"heading 9", ++		"index 1", ++		"index 2", ++		"index 3", ++		"index 4", ++		"index 5", ++		"index 6", ++		"index 7", ++		"index 8", ++		"index 9", ++		"toc 1", ++		"toc 2", ++		"toc 3", ++		"toc 4", ++		"toc 5", ++		"toc 6", ++		"toc 7", ++		"toc 8", ++		"toc 9", ++		"Normal Indent", ++		"footnote text", ++		"annotation text", ++		"header", ++		"footer", ++		"index heading", ++		"caption", ++		"table of figures", ++		"envelope address", ++		"envelope return", ++		"footnote reference", ++		"annotation reference", ++		"line number", ++		"page number", ++		"endnote reference", ++		"endnote text", ++		"table of authorities", ++		"macro", ++		"toa heading", ++		"List", ++		"List Bullet", ++		"List Number", ++		"List 2", ++		"List 3", ++		"List 4", ++		"List 5", ++		"List Bullet 2", ++		"List Bullet 3", ++		"List Bullet 4", ++		"List Bullet 5", ++		"List Number 2", ++		"List Number 3", ++		"List Number 4", ++		"List Number 5", ++		"Title", ++		"Closing", ++		"Signature", ++		"Default Paragraph Font", ++		"Body Text", ++		"Body Text Indent", ++		"List Continue", ++		"List Continue 2", ++		"List Continue 3", ++		"List Continue 4", ++		"List Continue 5", ++		"Message Header", ++		"Subtitle", ++	}; ++ ++ ++	ASSERT( ( sizeof( aArr ) / sizeof( RES_POOL_COLLFMT_TYPE ) == 75 ), ++			"Style-UEbersetzungstabelle hat falsche Groesse" ); ++	ASSERT( ( sizeof( stiName ) / sizeof( *stiName ) == 75 ), ++			"Style-UEbersetzungstabelle hat falsche Groesse" ); ++ ++	RES_POOL_COLLFMT_TYPE nId = RES_NONE; ++ ++	for (int i = 0; i < sizeof( stiName ) / sizeof( *stiName ); i++) ++	{ ++		if ( rName == String( stiName[i], RTL_TEXTENCODING_MS_1252 ) ) ++		{ ++			nId = aArr[i]; ++			break; ++		} ++	} ++	USHORT nResId; ++	if( RES_POOLCOLL_TEXT_BEGIN <= nId && nId < RES_POOLCOLL_TEXT_END ) ++		nResId = RC_POOLCOLL_TEXT_BEGIN - RES_POOLCOLL_TEXT_BEGIN; ++	else if (RES_POOLCOLL_LISTS_BEGIN <= nId && nId < RES_POOLCOLL_LISTS_END) ++		nResId = RC_POOLCOLL_LISTS_BEGIN - RES_POOLCOLL_LISTS_BEGIN; ++	else if (RES_POOLCOLL_EXTRA_BEGIN <= nId && nId < RES_POOLCOLL_EXTRA_END) ++		nResId = RC_POOLCOLL_EXTRA_BEGIN - RES_POOLCOLL_EXTRA_BEGIN; ++	else if (RES_POOLCOLL_REGISTER_BEGIN <= nId && nId < RES_POOLCOLL_REGISTER_END) ++		nResId = RC_POOLCOLL_REGISTER_BEGIN - RES_POOLCOLL_REGISTER_BEGIN; ++	else if (RES_POOLCOLL_DOC_BEGIN <= nId && nId < RES_POOLCOLL_DOC_END) ++		nResId = RC_POOLCOLL_DOC_BEGIN - RES_POOLCOLL_DOC_BEGIN; ++	else if (RES_POOLCOLL_HTML_BEGIN <= nId && nId < RES_POOLCOLL_HTML_END) ++		nResId = RC_POOLCOLL_HTML_BEGIN - RES_POOLCOLL_HTML_BEGIN; ++	return String( ResId( nResId + nId, pSwResMgr ) ); ++} ++ + SwTxtFmtColl* SwRTFParser::MakeStyle( USHORT nNo, const SvxRTFStyleType& rStyle ) + { +-	int bCollExist; +-	SwTxtFmtColl* pColl = MakeColl( rStyle.sName, USHORT(nNo), ++ 	int bCollExist; ++//	SwTxtFmtColl* pColl = MakeColl( rStyle.sName, USHORT(nNo),	//Takashi Ono for CJK ++	SwTxtFmtColl* pColl = MakeColl( XlateFmtColName( rStyle.sName ), ++									USHORT(nNo), + 									rStyle.nOutlineNo, bCollExist ); + 	aTxtCollTbl.Insert( nNo, pColl ); +  +--- ../sw/source/filter/rtf/swparrtf.hxx	19 May 2003 12:25:34 -0000	1.10 ++++ ../sw/source/filter/rtf/swparrtf.hxx	25 Jul 2003 22:54:44 -0000 +@@ -364,6 +364,7 @@ + 	void SetStyleAttr( SfxItemSet& rCollSet, + 						const SfxItemSet& rStyleSet, + 						const SfxItemSet& rDerivedSet ); ++	String XlateFmtColName( const String &rName );	//Takashi Ono for CJK + 	SwTxtFmtColl* MakeStyle( USHORT nNo, const SvxRTFStyleType& rStyle ); + 	SwCharFmt* MakeCharStyle( USHORT nNo, const SvxRTFStyleType& rStyle ); + 	void MakeStyleTab(); diff --git a/editors/openoffice-devel/files/patch-topsection b/editors/openoffice-devel/files/patch-topsection new file mode 100644 index 000000000000..a332718508de --- /dev/null +++ b/editors/openoffice-devel/files/patch-topsection @@ -0,0 +1,21 @@ +--- ../sw/source/filter/ww8/ww8par.cxx	9 Jul 2003 11:06:44 -0000	1.114 ++++ ../sw/source/filter/ww8/ww8par.cxx	25 Jul 2003 22:55:23 -0000 +@@ -2015,7 +2015,7 @@ + 	bool bStartAttr = pPlcxMan->Get(&aRes); // hole Attribut-Pos + 	aRes.nAktCp = rTxtPos;				// Akt. Cp-Pos +  +-	if (aRes.nFlags & MAN_MASK_NEW_SEP)	// neue Section ++	if ((aRes.nFlags & MAN_MASK_NEW_SEP) || maSectionManager.empty())	// neue Section +     { +         ASSERT(pPaM->GetNode()->GetTxtNode(), "Missing txtnode"); + 		// PageDesc erzeugen und fuellen +--- ../sw/source/filter/ww8/ww8par.hxx	30 Jun 2003 15:54:37 -0000	1.115 ++++ ../sw/source/filter/ww8/ww8par.hxx	25 Jul 2003 22:55:28 -0000 +@@ -720,6 +720,7 @@ +     short GetPageLeft() const; +     short GetPageRight() const; +     short GetPageWidth() const; ++	bool empty() const { return maSegments.empty(); } + }; +      + class wwFrameNamer diff --git a/editors/openoffice-devel/files/patch-word6+95-cjkhandling b/editors/openoffice-devel/files/patch-word6+95-cjkhandling new file mode 100644 index 000000000000..9a86ffb7da9d --- /dev/null +++ b/editors/openoffice-devel/files/patch-word6+95-cjkhandling @@ -0,0 +1,63 @@ +--- ../sw/source/filter/ww8/ww8par.cxx	9 Jul 2003 11:06:44 -0000	1.114 ++++ ../sw/source/filter/ww8/ww8par.cxx	25 Jul 2003 22:54:52 -0000 +@@ -1683,11 +1683,20 @@ +             if (bVer67) +             { +                 sal_Char aTest[2]; +-                aTest[0] = (nUCode & 0xFF00) >> 8; +-                aTest[1] = (nUCode & 0x00FF); +-                String aTemp(aTest, 2, eSrcCharSet); +-                ASSERT(aTemp.Len() == 1, "so much for that theory"); +-                *pWork = aTemp.GetChar(0); ++                if (nUCode >= 0x3000) ++                { ++                        aTest[0] = (nUCode & 0xFF00) >> 8; ++                        aTest[1] = (nUCode & 0x00FF); ++                        String aTemp(aTest, 2, eSrcCharSet); ++                        ASSERT(aTemp.Len() == 1, "so much for that theory"); ++                        *pWork = aTemp.GetChar(0); ++                } ++                else ++                { ++                        aTest[0] = (nUCode & 0x00FF); ++                        String aTemp(aTest, 1, eSrcCharSet); ++                        *pWork = aTemp.GetChar(0); ++                } +             } +             else + 			    *pWork = nUCode; +@@ -3188,7 +3197,8 @@ + 	{ +         case 6: +         case 7: +-            if ( (0xa5dc != nMagic) && (0xa699 != nMagic) ) ++            //if ( (0xa5dc != nMagic) && (0xa699 != nMagic) )	//Takashi Ono ++            if ( (0xa5dc != nMagic) && ( (0xa697 > nMagic) || (0xa699 < nMagic) ) ) +             { +                 //JP 06.05.99: teste auf eigenen 97-Fake! +                 if (pStg && 0xa5ec == nMagic) +--- ../sw/source/filter/ww8/ww8par6.cxx	20 Jun 2003 09:38:07 -0000	1.138 ++++ ../sw/source/filter/ww8/ww8par6.cxx	25 Jul 2003 22:55:05 -0000 +@@ -3373,9 +3373,11 @@ +                 nId = RES_CHRATR_CTL_FONT; +                 break; +             case 93: ++            case 111: +             case 0x4a4f: +                 nId = RES_CHRATR_FONT; +                 break; ++            case 112: +             case 0x4a50: +                 nId = RES_CHRATR_CJK_FONT; +                 break; +@@ -4984,8 +4986,8 @@ +                                                  //percentage to grow hps short +     {110, (FNReadRecord)0},                      //"sprmCCondHyhen", chp.ysri +                                                  //ysri short +-    {111, (FNReadRecord)0},                      //"??111", +-    {112, (FNReadRecord)0},                      //"??112", ++    {111, &SwWW8ImplReader::Read_FontCode},      //ww7 font ++    {112, &SwWW8ImplReader::Read_FontCode},      //ww7 CJK font +     {113, &SwWW8ImplReader::Read_FontCode},      //ww7 rtl font +     {114, (FNReadRecord)0},                      //"??114", +     {115, &SwWW8ImplReader::Read_TxtColor},      //ww7 rtl colour ? diff --git a/editors/openoffice-devel/files/patch-wrtrtf b/editors/openoffice-devel/files/patch-wrtrtf new file mode 100644 index 000000000000..7381dc61cd69 --- /dev/null +++ b/editors/openoffice-devel/files/patch-wrtrtf @@ -0,0 +1,312 @@ +--- ../svtools/source/svrtf/rtfout.cxx.orig	2000-10-16 18:13:46.000000000 +0900 ++++ ../svtools/source/svrtf/rtfout.cxx	2003-09-23 12:41:00.000000000 +0900 +@@ -124,8 +124,9 @@ + 	default: + 		{ + 			sal_Unicode cCh = c; +-			c = (BYTE)ByteString::ConvertFromUnicode( c, eDestEnc, FALSE ); +-			if( !c ) ++			rtl::OString buff( &c, 1, eDestEnc, RTL_UNICODETOTEXT_FLAGS_UNDEFINED_IGNORE|RTL_UNICODETOTEXT_FLAGS_INVALID_IGNORE ); ++//			c = (BYTE)ByteString::ConvertFromUnicode( c, eDestEnc, FALSE ); ++			if( !buff.getLength() ) + 			{ + 				// then write as unicode - character + 				if( 0xFF < cCh ) +@@ -141,8 +142,8 @@ + 				break; + 			} +  +-			if( !bWriteHelpFile ) +-				switch( c ) ++			if( !bWriteHelpFile && buff.getLength() == 1 ) ++				switch( BYTE(buff[0]) ) + 				{ + #ifdef MAC + 				case 0xa5:			pStr = sRTF_BULLET; break; +@@ -164,6 +165,9 @@ + 			// MAC + 				} + 			if( !pStr ) ++			    for (int i = 0; i < buff.getLength(); ++i) ++			    { ++				c = BYTE(buff[i]); + 				switch ( c ) + 				{ + 				case '\\': +@@ -186,6 +190,7 @@ + 					} + 					break; + 				} ++			    } + 		} + 		break; + 	} +--- ../sw/source/filter/rtf/wrtrtf.cxx.orig	2003-04-18 00:00:28.000000000 +0900 ++++ ../sw/source/filter/rtf/wrtrtf.cxx	2003-09-23 23:33:08.000000000 +0900 +@@ -184,6 +184,12 @@ + #ifndef _CHARFMT_HXX + #include <charfmt.hxx> + #endif ++#ifndef _POOLFMT_HXX ++#include <poolfmt.hxx> ++#endif ++#ifndef _SWSTYLENAMEMAPPER_HXX ++#include <SwStyleNameMapper.hxx> ++#endif + #ifndef _SECTION_HXX //autogen + #include <section.hxx> + #endif +@@ -215,7 +221,7 @@ + SV_IMPL_VARARR( RTFColorTbl, Color ) +  +  +-SwRTFWriter::SwRTFWriter( const String& rFltName ) ++SwRTFWriter::SwRTFWriter( const String& rFltName ) : eCurrentCharSet(DEF_ENCODING) + { + 	// schreibe Win-RTF-HelpFileFmt + 	bWriteHelpFmt = 'W' == rFltName.GetChar( 0 ); +@@ -893,14 +899,14 @@ + 		//				as alternative name. Because WinWord can't match each + 		//				font to a UniCode font. So the CJK texts are shown as + 		//				empty rectangles ;-(. +-		RTFOutFuncs::Out_String( rWrt.Strm(), sFntNm, DEF_ENCODING, ++		RTFOutFuncs::Out_String( rWrt.Strm(), sFntNm, eChrSet, + 							 	rWrt.bWriteHelpFmt ); + 		OutComment( rWrt, sRTF_FALT) << ' '; +-		RTFOutFuncs::Out_String( rWrt.Strm(), sAltNm, DEF_ENCODING, ++		RTFOutFuncs::Out_String( rWrt.Strm(), sAltNm, eChrSet, + 									rWrt.bWriteHelpFmt ) << '}'; + 	} + 	else +-		RTFOutFuncs::Out_String( rWrt.Strm(), sFntNm, DEF_ENCODING, ++		RTFOutFuncs::Out_String( rWrt.Strm(), sFntNm, eChrSet, + 							 	rWrt.bWriteHelpFmt ); + 	rWrt.Strm() << ";}"; + } +@@ -932,6 +938,139 @@ +  +  +  ++//Takashi Ono for CJK ++const rtl::OUString SwRTFWriter::XlateFmtName( const rtl::OUString &rName, SwGetPoolIdFromName eFlags ) ++{ ++#define RES_NONE RES_POOLCOLL_DOC_END ++ ++	static const RES_POOL_COLLFMT_TYPE aArr[]={ ++		RES_POOLCOLL_STANDARD, RES_POOLCOLL_HEADLINE1, RES_POOLCOLL_HEADLINE2, ++		RES_POOLCOLL_HEADLINE3, RES_POOLCOLL_HEADLINE4, RES_POOLCOLL_HEADLINE5, ++		RES_POOLCOLL_HEADLINE6, RES_POOLCOLL_HEADLINE7, RES_POOLCOLL_HEADLINE8, ++		RES_POOLCOLL_HEADLINE9, ++ ++		RES_POOLCOLL_TOX_IDX1, RES_POOLCOLL_TOX_IDX2, RES_POOLCOLL_TOX_IDX3, ++		RES_NONE, RES_NONE, RES_NONE, RES_NONE, RES_NONE, RES_NONE, ++		RES_POOLCOLL_TOX_CNTNT1, ++ ++		RES_POOLCOLL_TOX_CNTNT2, RES_POOLCOLL_TOX_CNTNT3, RES_POOLCOLL_TOX_CNTNT4, ++		RES_POOLCOLL_TOX_CNTNT5, RES_POOLCOLL_TOX_CNTNT6, RES_POOLCOLL_TOX_CNTNT7, ++		RES_POOLCOLL_TOX_CNTNT8, RES_POOLCOLL_TOX_CNTNT9, ++		RES_POOLCOLL_TEXT_IDENT, RES_POOLCOLL_FOOTNOTE, ++ ++		RES_NONE, RES_POOLCOLL_HEADER, RES_POOLCOLL_FOOTER, RES_POOLCOLL_TOX_IDXH, ++		RES_POOLCOLL_LABEL, RES_POOLCOLL_TOX_ILLUSH, RES_POOLCOLL_JAKETADRESS, RES_POOLCOLL_SENDADRESS, ++		RES_NONE, RES_NONE, ++ ++		RES_NONE, RES_NONE, RES_NONE, RES_POOLCOLL_ENDNOTE, RES_POOLCOLL_TOX_AUTHORITIESH, RES_NONE, RES_NONE, ++		RES_POOLCOLL_BUL_LEVEL1, RES_POOLCOLL_BUL_LEVEL1, RES_POOLCOLL_NUM_LEVEL1, ++ ++		RES_POOLCOLL_BUL_LEVEL2, RES_POOLCOLL_BUL_LEVEL3, RES_POOLCOLL_BUL_LEVEL4, RES_POOLCOLL_BUL_LEVEL5, ++		RES_POOLCOLL_BUL_LEVEL2, RES_POOLCOLL_BUL_LEVEL3, RES_POOLCOLL_BUL_LEVEL4, RES_POOLCOLL_BUL_LEVEL5, ++		RES_POOLCOLL_NUM_LEVEL2, RES_POOLCOLL_NUM_LEVEL3, RES_POOLCOLL_NUM_LEVEL4, RES_POOLCOLL_NUM_LEVEL5, ++ ++		RES_POOLCOLL_DOC_TITEL, RES_NONE, RES_POOLCOLL_SIGNATURE, RES_NONE, ++		RES_POOLCOLL_TEXT, RES_POOLCOLL_TEXT_MOVE, RES_NONE, RES_NONE, ++ ++		RES_NONE, RES_NONE, RES_NONE, RES_NONE, RES_POOLCOLL_DOC_SUBTITEL }; ++	static const sal_Char *stiName[] = { ++		"Normal", ++		"heading 1", ++		"heading 2", ++		"heading 3", ++		"heading 4", ++		"heading 5", ++		"heading 6", ++		"heading 7", ++		"heading 8", ++		"heading 9", ++		"index 1", ++		"index 2", ++		"index 3", ++		"index 4", ++		"index 5", ++		"index 6", ++		"index 7", ++		"index 8", ++		"index 9", ++		"toc 1", ++		"toc 2", ++		"toc 3", ++		"toc 4", ++		"toc 5", ++		"toc 6", ++		"toc 7", ++		"toc 8", ++		"toc 9", ++		"Normal Indent", ++		"footnote text", ++		"annotation text", ++		"header", ++		"footer", ++		"index heading", ++		"caption", ++		"table of figures", ++		"envelope address", ++		"envelope return", ++		"footnote reference", ++		"annotation reference", ++		"line number", ++		"page number", ++		"endnote reference", ++		"endnote text", ++		"table of authorities", ++		"macro", ++		"toa heading", ++		"List", ++		"List Bullet", ++		"List Number", ++		"List 2", ++		"List 3", ++		"List 4", ++		"List 5", ++		"List Bullet 2", ++		"List Bullet 3", ++		"List Bullet 4", ++		"List Bullet 5", ++		"List Number 2", ++		"List Number 3", ++		"List Number 4", ++		"List Number 5", ++		"Title", ++		"Closing", ++		"Signature", ++		"Default Paragraph Font", ++		"Body Text", ++		"Body Text Indent", ++		"List Continue", ++		"List Continue 2", ++		"List Continue 3", ++		"List Continue 4", ++		"List Continue 5", ++		"Message Header", ++		"Subtitle", ++	}; ++ ++ ++	ASSERT( ( sizeof( aArr ) / sizeof( RES_POOL_COLLFMT_TYPE ) == 75 ), ++			"Style-UEbersetzungstabelle hat falsche Groesse" ); ++	ASSERT( ( sizeof( stiName ) / sizeof( *stiName ) == 75 ), ++			"Style-UEbersetzungstabelle hat falsche Groesse" ); ++ ++	sal_uInt16 idcol = ::SwStyleNameMapper::GetPoolIdFromUIName( rName, eFlags ); ++  ++	for (int i = 0; i < sizeof( aArr ) / sizeof( *aArr ); i++) ++	{ ++		if ( idcol == aArr[i] ) ++		{ ++			return rtl::OUString::createFromAscii(stiName[i]); ++		} ++	} ++	return ::SwStyleNameMapper::GetProgName( idcol, String() ); ++} ++ ++ ++ + void SwRTFWriter::OutRTFStyleTab() + { + 	// das 0-Style ist das Default, wird nie ausgegeben !! +@@ -988,7 +1127,7 @@ + 		} +  + 		Strm() << ' '; +-		RTFOutFuncs::Out_String( Strm(), pColl->GetName(), DEF_ENCODING, ++		RTFOutFuncs::Out_String( Strm(), XlateFmtName( pColl->GetName(), GET_POOLID_TXTCOLL ), DEF_ENCODING, + 						bWriteHelpFmt ) << ";}" << SwRTFWriter::sNewLine; + 	} +  +@@ -1015,8 +1154,8 @@ + 				} +  + 		Strm() << ' '; +-		RTFOutFuncs::Out_String( Strm(), pFmt->GetName(), DEF_ENCODING, +-					bWriteHelpFmt ) << ";}" << SwRTFWriter::sNewLine; ++		RTFOutFuncs::Out_String( Strm(), XlateFmtName( pFmt->GetName(), GET_POOLID_CHRFMT ), DEF_ENCODING, ++						bWriteHelpFmt ) << ";}" << SwRTFWriter::sNewLine; + 	} +  + 	Strm() << '}'; +@@ -1217,8 +1356,8 @@ + 				break; + 		Strm() << sRTF_PGDSCNXT; + 		OutULong( i ) << ' '; +-		RTFOutFuncs::Out_String( Strm(), rPageDesc.GetName(), +-								DEF_ENCODING, bWriteHelpFmt ) << ";}"; ++		RTFOutFuncs::Out_String( Strm(), XlateFmtName( rPageDesc.GetName(), GET_POOLID_PAGEDESC ), DEF_ENCODING, ++						bWriteHelpFmt ) << ";}"; + 	} + 	Strm() << '}' << SwRTFWriter::sNewLine; + 	bOutPageDesc = bOutPageDescTbl = FALSE; +--- ../sw/source/filter/rtf/wrtrtf.hxx.orig	2002-07-31 19:18:50.000000000 +0900 ++++ ../sw/source/filter/rtf/wrtrtf.hxx	2003-09-23 23:37:50.000000000 +0900 +@@ -117,6 +117,7 @@ + 	USHORT nAktFlyPos;				// Index auf das naechste "FlyFrmFmt" + 	void OutRTFColorTab(); + 	void OutRTFFontTab(); ++	const rtl::OUString XlateFmtName( const rtl::OUString &rName, SwGetPoolIdFromName eFlags ); + 	void OutRTFStyleTab(); + 	void OutRTFListTab(); +  +@@ -136,6 +137,8 @@ + 	USHORT nBkmkTabPos;				// akt. Position in der Bookmark-Tabelle + 	USHORT nCurScript;				    // actual scripttype +  ++	rtl_TextEncoding eCurrentCharSet; ++ + #if defined(MAC) || defined(UNX) + 	static const sal_Char sNewLine;					// nur \012 oder \015 + #else +--- ../sw/source/filter/rtf/rtfatr.cxx.orig	2003-05-19 21:24:46.000000000 +0900 ++++ ../sw/source/filter/rtf/rtfatr.cxx	2003-09-23 23:45:52.000000000 +0900 +@@ -1319,7 +1319,7 @@ + 				sURL = aTmp.GetFull(); + 			} + */			rWrt.Strm()	<< '\"'; +-			RTFOutFuncs::Out_String( rWrt.Strm(), sURL, DEF_ENCODING, ++			RTFOutFuncs::Out_String( rWrt.Strm(), sURL, rRTFWrt.eCurrentCharSet, + 									rRTFWrt.bWriteHelpFmt ) << "\" "; + 			sURL = aTmp.GetMark(); + 		} +@@ -1328,7 +1328,7 @@ + 		{ + 			rWrt.Strm() << "\\\\l \""; + 			sURL.Erase( 0, 1 ); +-			RTFOutFuncs::Out_String( rWrt.Strm(), sURL, DEF_ENCODING, ++			RTFOutFuncs::Out_String( rWrt.Strm(), sURL, rRTFWrt.eCurrentCharSet, + 									rRTFWrt.bWriteHelpFmt ) << "\" "; + 		} +  +@@ -1609,7 +1609,7 @@ +  + 		if( nStrPos != nEnde ) + 			RTFOutFuncs::Out_Char( rWrt.Strm(), rStr.GetChar( nStrPos ), +-									DEF_ENCODING, rRTFWrt.bWriteHelpFmt ); ++									rRTFWrt.eCurrentCharSet, rRTFWrt.bWriteHelpFmt ); +     } +  + 	// noch eine schliesende Klammer da ?? +@@ -2188,6 +2188,7 @@ + 		const sal_Char* pCmd = bAssoc ? sRTF_AF : sRTF_F; + 		rWrt.Strm() << pCmd; + 		rWrt.OutULong(rRTFWrt.GetId(rFont)); ++		rRTFWrt.eCurrentCharSet = rFont.GetCharSet(); + 	} + 	return rWrt; + }  | 
