diff options
author | Pascal Junck <pjunck@openoffice.org> | 2004-11-02 15:04:47 +0000 |
---|---|---|
committer | Pascal Junck <pjunck@openoffice.org> | 2004-11-02 15:04:47 +0000 |
commit | 0b197e42c0ee6645966d9b306b1b86d568b5ebc6 (patch) | |
tree | b0f358813c164bdbae95ae181a68a8d775988c5c /transex3 | |
parent | 0a1227e71e31437aaa78eeff8ae086da4ba71ba6 (diff) |
INTEGRATION: CWS ivo05 (1.2.2); FILE MERGED
2004/09/22 13:23:48 ihi 1.2.2.2: #i34128# Strip UTF8 Byte Order Marker
2004/09/17 16:18:58 ihi 1.2.2.1: Quiet switch -QQ added
Diffstat (limited to 'transex3')
-rw-r--r-- | transex3/source/helpmerge.cxx | 60 |
1 files changed, 54 insertions, 6 deletions
diff --git a/transex3/source/helpmerge.cxx b/transex3/source/helpmerge.cxx index 571b76e2a270..a381bf7ee228 100644 --- a/transex3/source/helpmerge.cxx +++ b/transex3/source/helpmerge.cxx @@ -2,9 +2,9 @@ * * $RCSfile: helpmerge.cxx,v $ * - * $Revision: 1.2 $ + * $Revision: 1.3 $ * - * last change: $Author: kz $ $Date: 2004-08-30 17:30:50 $ + * last change: $Author: pjunck $ $Date: 2004-11-02 16:04:47 $ * * The Contents of this file are made available subject to the terms of * either of the following licenses @@ -162,10 +162,28 @@ bool HelpParser::CreateSDF( static const String tab_char ( String::CreateFromAscii("") ); SimpleXMLParser aParser; + String sUsedTempFile; + String sXmlFile; //String x(sHelpFile.GetBuffer(),RTL_TEXTENCODING_UTF8 , sHelpFile.Len()); - String x(sHelpFile,RTL_TEXTENCODING_ASCII_US ); - std::auto_ptr <XMLFile> file ( aParser.Execute(x) ); + if( Export::fileHasUTF8ByteOrderMarker( sHelpFile ) ){ + DirEntry aTempFile = Export::GetTempFile(); + DirEntry aSourceFile( String( sHelpFile , RTL_TEXTENCODING_ASCII_US ) ); + aSourceFile.CopyTo( aTempFile , FSYS_ACTION_COPYFILE ); + String sTempFile = aTempFile.GetFull(); + Export::RemoveUTF8ByteOrderMarkerFromFile( ByteString( sTempFile , RTL_TEXTENCODING_ASCII_US ) ); + sUsedTempFile = sTempFile; + sXmlFile = sTempFile; + }else{ + sUsedTempFile = String::CreateFromAscii(""); + sXmlFile = String( sHelpFile , RTL_TEXTENCODING_ASCII_US ); + } + + + //String x(sHelpFile,RTL_TEXTENCODING_ASCII_US ); + //std::auto_ptr <XMLFile> file ( aParser.Execute(x) ); + std::auto_ptr <XMLFile> file ( aParser.Execute( sXmlFile ) ); + if(file.get() == NULL){ //printf("%s\n",ByteString(aParser.GetError().sMessage,RTL_TEXTENCODING_UTF8).GetBuffer()); printf("%s\n",ByteString(aParser.GetError().sMessage,RTL_TEXTENCODING_ASCII_US).GetBuffer()); @@ -261,7 +279,12 @@ bool HelpParser::CreateSDF( } //Dump(aXMLStrHM); aSDFStream.Close(); - fprintf(stdout,"Closing stream ..."); + //fprintf(stdout,"Closing stream ..."); + + if( !sUsedTempFile.EqualsIgnoreCaseAscii( "" ) ){ + DirEntry aTempFile( sUsedTempFile ); + aTempFile.Kill(); + } return TRUE; } bool HelpParser::Merge( const ByteString &rSDFFile, const ByteString &rDestinationFile ) @@ -284,7 +307,28 @@ bool HelpParser::Merge( { SimpleXMLParser aParser; - OUString sOUHelpFile( sHelpFile.GetBuffer(),sHelpFile.Len(),RTL_TEXTENCODING_UTF8); + + String sUsedTempFile; + String sXmlFile; + + //String x(sHelpFile.GetBuffer(),RTL_TEXTENCODING_UTF8 , sHelpFile.Len()); + if( Export::fileHasUTF8ByteOrderMarker( sHelpFile ) ){ + DirEntry aTempFile = Export::GetTempFile(); + DirEntry aSourceFile( String( sHelpFile , RTL_TEXTENCODING_ASCII_US ) ); + aSourceFile.CopyTo( aTempFile , FSYS_ACTION_COPYFILE ); + String sTempFile = aTempFile.GetFull(); + Export::RemoveUTF8ByteOrderMarkerFromFile( ByteString( sTempFile , RTL_TEXTENCODING_ASCII_US ) ); + sUsedTempFile = sTempFile; + sXmlFile = sTempFile; + }else{ + sUsedTempFile = String::CreateFromAscii(""); + sXmlFile = String( sHelpFile , RTL_TEXTENCODING_ASCII_US ); + } + + + //OUString sOUHelpFile( sHelpFile.GetBuffer(),sHelpFile.Len(),RTL_TEXTENCODING_UTF8); + OUString sOUHelpFile( sXmlFile ); + std::auto_ptr <XMLFile> xmlfile ( aParser.Execute( sOUHelpFile ) ); if( xmlfile.get() == NULL){ @@ -347,6 +391,10 @@ bool HelpParser::Merge( String test( testpath , RTL_TEXTENCODING_ASCII_US ); // check and remove '\\' file->Write(test); // Always write! } + if( !sUsedTempFile.EqualsIgnoreCaseAscii( "" ) ){ + DirEntry aTempFile( sUsedTempFile ); + aTempFile.Kill(); + } return true; } |