summaryrefslogtreecommitdiff
path: root/transex3
diff options
context:
space:
mode:
authorPascal Junck <pjunck@openoffice.org>2004-11-02 15:04:47 +0000
committerPascal Junck <pjunck@openoffice.org>2004-11-02 15:04:47 +0000
commit0b197e42c0ee6645966d9b306b1b86d568b5ebc6 (patch)
treeb0f358813c164bdbae95ae181a68a8d775988c5c /transex3
parent0a1227e71e31437aaa78eeff8ae086da4ba71ba6 (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.cxx60
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;
}