Kaydet (Commit) 2fce3372 authored tarafından Stephan Bergmann's avatar Stephan Bergmann

l10ntools now only depends on sal and externals

Still room for further improvement.
Includes some fixes for regressions introduced with previous commits.
üst 7c3fab1b
...@@ -70,8 +70,6 @@ public: ...@@ -70,8 +70,6 @@ public:
, const std::vector<rtl::OString>& aLanguages , MergeDataFile& aMergeDataFile , bool bCreateDir ); , const std::vector<rtl::OString>& aLanguages , MergeDataFile& aMergeDataFile , bool bCreateDir );
private: private:
static rtl::OString makeAbsolutePath(const rtl::OString& sHelpFile , const rtl::OString& rRoot_in);
rtl::OString GetOutpath( const rtl::OString& rPathX , const rtl::OString& sCur , const rtl::OString& rPathY ); rtl::OString GetOutpath( const rtl::OString& rPathX , const rtl::OString& sCur , const rtl::OString& rPathY );
bool MergeSingleFile( XMLFile* file , MergeDataFile& aMergeDataFile , const rtl::OString& sLanguage , rtl::OString const & sPath ); bool MergeSingleFile( XMLFile* file , MergeDataFile& aMergeDataFile , const rtl::OString& sLanguage , rtl::OString const & sPath );
......
...@@ -222,7 +222,6 @@ public: ...@@ -222,7 +222,6 @@ public:
/// returns file name /// returns file name
rtl::OUString GetName() { return sFileName; } rtl::OUString GetName() { return sFileName; }
void SetName( const rtl::OUString &rFilename ) { sFileName = rFilename; } void SetName( const rtl::OUString &rFilename ) { sFileName = rFilename; }
void SetFullName( const rtl::OUString &rFullFilename ) { sFullName = rFullFilename; }
const std::vector<rtl::OString> getOrder(){ return order; } const std::vector<rtl::OString> getOrder(){ return order; }
protected: protected:
...@@ -233,7 +232,6 @@ protected: ...@@ -233,7 +232,6 @@ protected:
// DATA // DATA
rtl::OUString sFileName; rtl::OUString sFileName;
rtl::OUString sFullName;
const rtl::OString ID, OLDREF, XML_LANG; const rtl::OString ID, OLDREF, XML_LANG;
...@@ -487,7 +485,6 @@ public: ...@@ -487,7 +485,6 @@ public:
/// parse a file, returns NULL on criticall errors /// parse a file, returns NULL on criticall errors
XMLFile *Execute( XMLFile *Execute(
const rtl::OUString &rFullFileName,
const rtl::OUString &rFileName, // the file name const rtl::OUString &rFileName, // the file name
XMLFile *pXMLFileIn // the XMLFile XMLFile *pXMLFileIn // the XMLFile
); );
......
tr l10ntools : tools LIBXSLT:libxslt BERKELEYDB:berkeleydb LUCENE:lucene NULL tr l10ntools : BERKELEYDB:berkeleydb EXPAT:expat LIBXSLT:libxslt LUCENE:lucene sal NULL
tr l10ntools usr1 - all tr_mkout NULL tr l10ntools usr1 - all tr_mkout NULL
tr l10ntools\inc nmake - all tr_inc NULL tr l10ntools\inc nmake - all tr_inc NULL
tr l10ntools\source nmake - all tr_src tr_inc NULL tr l10ntools\source nmake - all tr_src tr_inc NULL
......
...@@ -32,6 +32,7 @@ eval 'exec perl -S $0 ${1+"$@"}' ...@@ -32,6 +32,7 @@ eval 'exec perl -S $0 ${1+"$@"}'
# #
use strict; use strict;
use File::Basename;
use Getopt::Std; use Getopt::Std;
use Cwd; use Cwd;
...@@ -40,7 +41,8 @@ getopts("ep:r:i:o:l:", \%options); ...@@ -40,7 +41,8 @@ getopts("ep:r:i:o:l:", \%options);
unless ( $options{i} =~ m/en_US/ ) {exit 0;} unless ( $options{i} =~ m/en_US/ ) {exit 0;}
my $file = substr ( Cwd::abs_path($options{i}), length(Cwd::abs_path($options{r})) + 1 ); my ($unsued1, $dir, $unused2) = File::Basename::fileparse($options{i});
my $file = substr ( Cwd::abs_path($options{i}), length(Cwd::abs_path($dir . $options{r})) + 1 );
$file =~ s|/|\\|g; $file =~ s|/|\\|g;
open (INFILE, "<$options{i}") || die "propex: cannot open input file: $options{i}"; open (INFILE, "<$options{i}") || die "propex: cannot open input file: $options{i}";
......
This diff is collapsed.
...@@ -38,7 +38,6 @@ ...@@ -38,7 +38,6 @@
#include <sal/macros.h> #include <sal/macros.h>
#include <iostream> #include <iostream>
#include <iomanip> #include <iomanip>
#include <tools/urlobj.hxx>
#include <time.h> #include <time.h>
#include <stdlib.h> #include <stdlib.h>
......
...@@ -87,6 +87,18 @@ inline bool endsWithAsciiL( ...@@ -87,6 +87,18 @@ inline bool endsWithAsciiL(
search, searchLength, text.getLength() - searchLength); search, searchLength, text.getLength() - searchLength);
} }
inline sal_Int32 countOccurrences(rtl::OString const & text, char c) {
sal_Int32 n = 0;
for (sal_Int32 i = 0;; ++i) {
i = text.indexOf(c, i);
if (i == -1) {
break;
}
++n;
}
return n;
}
inline rtl::OString trimAscii(rtl::OString const & text) { inline rtl::OString trimAscii(rtl::OString const & text) {
sal_Int32 i1 = 0; sal_Int32 i1 = 0;
while (i1 != text.getLength() && isAsciiWhitespace(text[i1])) { while (i1 != text.getLength() && isAsciiWhitespace(text[i1])) {
......
...@@ -31,7 +31,6 @@ ...@@ -31,7 +31,6 @@
#include <fstream> #include <fstream>
#include <functional> #include <functional>
#include <tools/fsys.hxx>
#include <osl/file.hxx> #include <osl/file.hxx>
// local includes // local includes
#include <stdio.h> #include <stdio.h>
...@@ -44,13 +43,13 @@ ...@@ -44,13 +43,13 @@
#include <fstream> #include <fstream>
#include <vector> #include <vector>
#include <rtl/strbuf.hxx> #include <rtl/strbuf.hxx>
#include <comphelper/string.hxx>
#ifdef WNT #ifdef WNT
#include <windows.h> #include <windows.h>
#undef CopyFile #undef CopyFile
#include <direct.h> #include <direct.h>
#endif #endif
#include "common.hxx"
#include "helper.hxx" #include "helper.hxx"
#if OSL_DEBUG_LEVEL > 2 #if OSL_DEBUG_LEVEL > 2
...@@ -93,16 +92,7 @@ bool HelpParser::CreateSDF( ...@@ -93,16 +92,7 @@ bool HelpParser::CreateSDF(
rtl::OStringToOUString(sHelpFile, RTL_TEXTENCODING_ASCII_US)); rtl::OStringToOUString(sHelpFile, RTL_TEXTENCODING_ASCII_US));
//TODO: explicit BOM handling? //TODO: explicit BOM handling?
rtl::OString fullFilePath = rPrj_in; std::auto_ptr <XMLFile> file ( aParser.Execute( sXmlFile, pXmlFile ) );
fullFilePath += "\\";
fullFilePath += makeAbsolutePath( sHelpFile , rRoot_in );
fullFilePath = fullFilePath.replace('\\', '/');
rtl::OUString strFullPath(
rtl::OStringToOUString(fullFilePath, RTL_TEXTENCODING_ASCII_US));
//printf( "%s\n", fullFilePath.GetBuffer() );
std::auto_ptr <XMLFile> file ( aParser.Execute( strFullPath , sXmlFile, pXmlFile ) );
if(file.get() == NULL) if(file.get() == NULL)
{ {
...@@ -121,7 +111,8 @@ bool HelpParser::CreateSDF( ...@@ -121,7 +111,8 @@ bool HelpParser::CreateSDF(
return false; return false;
} }
rtl::OString sActFileName = makeAbsolutePath( sHelpFile , rRoot_in ); rtl::OString sActFileName(
common::pathnameToken(sHelpFile.getStr(), rRoot_in.getStr()));
XMLHashMap* aXMLStrHM = file->GetStrings(); XMLHashMap* aXMLStrHM = file->GetStrings();
LangHashMap* pElem; LangHashMap* pElem;
...@@ -189,21 +180,6 @@ bool HelpParser::CreateSDF( ...@@ -189,21 +180,6 @@ bool HelpParser::CreateSDF(
return sal_True; return sal_True;
} }
rtl::OString HelpParser::makeAbsolutePath(const rtl::OString& sHelpFile, const rtl::OString& rRoot_in)
{
DirEntry aEntry(rtl::OStringToOUString(sHelpFile, RTL_TEXTENCODING_ASCII_US));
aEntry.ToAbs();
rtl::OUString sFullEntry(aEntry.GetFull());
aEntry += DirEntry(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("..")));
aEntry += DirEntry( rRoot_in );
rtl::OString sPrjEntry(rtl::OUStringToOString(aEntry.GetFull(), osl_getThreadTextEncoding()));
rtl::OString sActFileName(rtl::OUStringToOString(
sFullEntry.copy(sPrjEntry.getLength() + 1),
osl_getThreadTextEncoding()));
return sActFileName.replace('/', '\\');
}
bool HelpParser::Merge( const rtl::OString &rSDFFile, const rtl::OString &rDestinationFile , bool HelpParser::Merge( const rtl::OString &rSDFFile, const rtl::OString &rDestinationFile ,
const rtl::OString& rLanguage , MergeDataFile& aMergeDataFile ) const rtl::OString& rLanguage , MergeDataFile& aMergeDataFile )
{ {
...@@ -217,10 +193,7 @@ bool HelpParser::Merge( const rtl::OString &rSDFFile, const rtl::OString &rDesti ...@@ -217,10 +193,7 @@ bool HelpParser::Merge( const rtl::OString &rSDFFile, const rtl::OString &rDesti
rtl::OStringToOUString(sHelpFile, RTL_TEXTENCODING_ASCII_US)); rtl::OStringToOUString(sHelpFile, RTL_TEXTENCODING_ASCII_US));
//TODO: explicit BOM handling? //TODO: explicit BOM handling?
OUString sOUHelpFile( sXmlFile ); XMLFile* xmlfile = ( aParser.Execute( sXmlFile, new XMLFile( rtl::OUString('0') ) ) );
DirEntry aFile( sXmlFile );
XMLFile* xmlfile = ( aParser.Execute( aFile.GetFull() , sOUHelpFile, new XMLFile( rtl::OUString('0') ) ) );
hasNoError = MergeSingleFile( xmlfile , aMergeDataFile , rLanguage , rDestinationFile ); hasNoError = MergeSingleFile( xmlfile , aMergeDataFile , rLanguage , rDestinationFile );
delete xmlfile; delete xmlfile;
return hasNoError; return hasNoError;
...@@ -268,10 +241,7 @@ bool HelpParser::Merge( ...@@ -268,10 +241,7 @@ bool HelpParser::Merge(
rtl::OStringToOUString(sHelpFile, RTL_TEXTENCODING_ASCII_US)); rtl::OStringToOUString(sHelpFile, RTL_TEXTENCODING_ASCII_US));
//TODO: explicit BOM handling? //TODO: explicit BOM handling?
OUString sOUHelpFile( sXmlFile ); XMLFile* xmlfile = aParser.Execute( sXmlFile, new XMLFile( rtl::OUString('0') ) );
DirEntry aFile( sXmlFile );
XMLFile* xmlfile = ( aParser.Execute( aFile.GetFull() , sOUHelpFile, new XMLFile( rtl::OUString('0') ) ) );
xmlfile->Extract(); xmlfile->Extract();
if( xmlfile == NULL) if( xmlfile == NULL)
...@@ -329,127 +299,38 @@ bool HelpParser::MergeSingleFile( XMLFile* file , MergeDataFile& aMergeDataFile ...@@ -329,127 +299,38 @@ bool HelpParser::MergeSingleFile( XMLFile* file , MergeDataFile& aMergeDataFile
ProcessHelp( aLangHM , sLanguage, &pResData , aMergeDataFile ); ProcessHelp( aLangHM , sLanguage, &pResData , aMergeDataFile );
} }
file->Write(sPath);
// Init temp and target file
rtl::OString sTempFile;
rtl::OString sTargetFile( sPath );
rtl::OString sTempFileCopy;
static const rtl::OString INPATH = Export::GetEnv("INPATH");
sTempFile = Export::getRandomName(sPath, INPATH);
sTempFileCopy = Export::getRandomName(sPath, INPATH);
// Write in the temp file
file->Write ( sTempFile );
DirEntry aTmp( sTempFile );
DirEntry aTmp2( sTempFileCopy );
DirEntry aTar( sTargetFile );
if( !Export::CopyFile( sTempFile , sTempFileCopy ) )
{
#if defined(UNX)
sleep( 3 );
#else
Sleep( 3 );
#endif
if( !Export::CopyFile( sTempFile , sTempFileCopy ) )
{
cerr << "ERROR: Can not copy file from " << sTempFile.getStr() << " to " << sTempFileCopy.getStr() << "\n";
return false;
}
}
FileStat aFSTest( aTar );
if( aFSTest.GetSize() < 1 )
{
remove( sTargetFile.getStr() );
}
int rc;
#if defined(UNX)
rc = rename( sTempFile.getStr() , sTargetFile.getStr() );
#else
rc = MoveFileEx( sTempFile.getStr() , sTargetFile.getStr(), MOVEFILE_REPLACE_EXISTING );
#endif
FileStat aFS( aTar );
//cout << "mv " << sTempFile.GetBuffer() << " " << sTargetFile.GetBuffer() << "\n";
//cout << "rc -> " << rc << " filesize -> " << aFS.GetSize() << "\n";
// Windows rename returns -1 if the file already exits
//#ifdef UNX
if( rc < 0 || aFS.GetSize() < 1 )
//#else
// if( aFS.GetSize() < 1 )
//#endif
{
#if defined(UNX)
sleep( 3 );
#else
Sleep( 3 );
#endif
aFSTest.Update( aTar );
if( aFSTest.GetSize() < 1 )
{
remove( sTargetFile.getStr() );
}
#if defined(UNX)
rc = rename( sTempFileCopy.getStr() , sTargetFile.getStr() );
#else
rc = MoveFileEx( sTempFileCopy.getStr() , sTargetFile.getStr() , MOVEFILE_REPLACE_EXISTING );
#endif
aFS.Update( aTar );
//cout << "mv2 " << sTempFileCopy.GetBuffer() << " " << sTargetFile.GetBuffer() << "\n";
//cout << "rc -> " << rc << " filesize -> " << aFS.GetSize() << "\n";
// Windows rename returns -1 if the file already exits
//#ifdef WNT
// if( aFS.GetSize() < 1 )
//#else
if( rc < 0 || aFS.GetSize() < 1 )
//#endif
{
cerr << "ERROR: helpex Can't rename file " << sTempFileCopy.getStr() << " to " << sTargetFile.getStr() << " rename rc=" << rc << " filesize=" << aFS.GetSize() << "\n";
aTmp.Kill();
aTmp2.Kill();
if( aFS.GetSize() < 1 )
aTar.Kill();
return false;
}
}
aTmp.Kill();
aTmp2.Kill();
return true; return true;
} }
rtl::OString HelpParser::GetOutpath( const rtl::OString& rPathX , const rtl::OString& sCur , const rtl::OString& rPathY ) rtl::OString HelpParser::GetOutpath( const rtl::OString& rPathX , const rtl::OString& sCur , const rtl::OString& rPathY )
{ {
rtl::OString testpath = rPathX; rtl::OString testpath = rPathX;
static const rtl::OString sDelimiter(rtl::OUStringToOString(DirEntry::GetAccessDelimiter(), RTL_TEXTENCODING_ASCII_US)); if (!helper::endsWith(testpath, "/")) {
testpath = comphelper::string::stripEnd(testpath, '/'); testpath += "/";
testpath = comphelper::string::stripEnd(testpath, '\\'); }
testpath += sDelimiter;
testpath += sCur; testpath += sCur;
testpath += sDelimiter; testpath += "/";
rtl::OString sRelativePath( rPathY ); rtl::OString sRelativePath( rPathY );
sRelativePath = comphelper::string::stripStart(sRelativePath, '/'); if (sRelativePath.getLength() != 0 && sRelativePath[0] == '/') {
sRelativePath = comphelper::string::stripStart(sRelativePath, '\\'); sRelativePath = sRelativePath.copy(1);
}
testpath += sRelativePath; testpath += sRelativePath;
testpath += sDelimiter; testpath += "/";
return testpath; return testpath;
} }
void HelpParser::MakeDir(const rtl::OString& rPath) void HelpParser::MakeDir(const rtl::OString& rPath)
{ {
rtl::OString sDelimiter(rtl::OUStringToOString(DirEntry::GetAccessDelimiter(), rtl::OString sTPath(rPath);
RTL_TEXTENCODING_ASCII_US)); helper::searchAndReplaceAll(&sTPath, "\\", "/");
rtl::OString sTPath(comphelper::string::replace(rPath, sDelimiter, rtl::OString('/'))); sal_Int32 cnt = helper::countOccurrences(sTPath, '/');
sal_uInt16 cnt = comphelper::string::getTokenCount(sTPath, '/');
rtl::OStringBuffer sCreateDir; rtl::OStringBuffer sCreateDir;
for (sal_uInt16 i = 0; i < cnt; ++i) for (sal_uInt16 i = 0; i <= cnt; ++i)
{ {
sCreateDir.append(comphelper::string::getToken(sTPath, i , '/')); sal_Int32 n = 0;
sCreateDir.append(sDelimiter); sCreateDir.append(sTPath.getToken(i , '/', n));
sCreateDir.append('/');
#ifdef WNT #ifdef WNT
_mkdir( sCreateDir.getStr() ); _mkdir( sCreateDir.getStr() );
#else #else
......
...@@ -75,7 +75,6 @@ APP1TARGET= transex3 ...@@ -75,7 +75,6 @@ APP1TARGET= transex3
APP1OBJS= $(OBJ)$/src_yy_wrapper.obj APP1OBJS= $(OBJ)$/src_yy_wrapper.obj
APP1RPATH= NONE APP1RPATH= NONE
APP1STDLIBS+= \ APP1STDLIBS+= \
$(COMPHELPERLIB) \
$(SALLIB) $(SALLIB)
APP1LIBS+= $(LB)$/$(TARGET).lib APP1LIBS+= $(LB)$/$(TARGET).lib
...@@ -86,8 +85,6 @@ APP2OBJS= $(OBJ)$/helpmerge.obj $(OBJ)$/xmlparse.obj $(OBJ)$/export2.obj $(OBJ) ...@@ -86,8 +85,6 @@ APP2OBJS= $(OBJ)$/helpmerge.obj $(OBJ)$/xmlparse.obj $(OBJ)$/export2.obj $(OBJ)
APP2RPATH= NONE APP2RPATH= NONE
APP2STDLIBS+= \ APP2STDLIBS+= \
$(EXPATASCII3RDLIB) \ $(EXPATASCII3RDLIB) \
$(TOOLSLIB) \
$(COMPHELPERLIB) \
$(SALLIB) $(SALLIB)
# extractor and merger for *.lng and *.lng # extractor and merger for *.lng and *.lng
...@@ -116,8 +113,6 @@ APP7TARGET= xrmex ...@@ -116,8 +113,6 @@ APP7TARGET= xrmex
APP7OBJS= $(OBJ)$/xrmmerge.obj $(OBJ)$/xrm_yy_wrapper.obj $(OBJ)$/merge.obj $(OBJ)$/export2.obj APP7OBJS= $(OBJ)$/xrmmerge.obj $(OBJ)$/xrm_yy_wrapper.obj $(OBJ)$/merge.obj $(OBJ)$/export2.obj
APP7RPATH= NONE APP7RPATH= NONE
APP7STDLIBS+= \ APP7STDLIBS+= \
$(TOOLSLIB) \
$(COMPHELPERLIB) \
$(SALLIB) $(SALLIB)
# localizer for l10n framework # localizer for l10n framework
......
...@@ -233,8 +233,9 @@ void yyerror( char *s ) ...@@ -233,8 +233,9 @@ void yyerror( char *s )
} }
SAL_IMPLEMENT_MAIN_WITH_ARGS(argc, argv) { SAL_IMPLEMENT_MAIN_WITH_ARGS(argc, argv) {
int e;
yyin = init(argc, argv); yyin = init(argc, argv);
yylex(); yylex();
e = GetError();
Close(); Close();
return GetError();
} }
...@@ -466,7 +466,7 @@ void XMLFile::InsertL10NElement( XMLElement* pElement ){ ...@@ -466,7 +466,7 @@ void XMLFile::InsertL10NElement( XMLElement* pElement ){
elem=pos->second; elem=pos->second;
if ( (*elem)[ language ] ) if ( (*elem)[ language ] )
{ {
fprintf(stdout,"Error: Duplicated entry. ID = %s LANG = %s in File %s\n", id.getStr(), language.getStr(), rtl::OUStringToOString(sFullName, RTL_TEXTENCODING_ASCII_US).getStr() ); fprintf(stdout,"Error: Duplicated entry. ID = %s LANG = %s in File %s\n", id.getStr(), language.getStr(), rtl::OUStringToOString(sFileName, RTL_TEXTENCODING_ASCII_US).getStr() );
exit( -1 ); exit( -1 );
} }
(*elem)[ language ]=pElement; (*elem)[ language ]=pElement;
...@@ -1113,7 +1113,7 @@ void SimpleXMLParser::Default( ...@@ -1113,7 +1113,7 @@ void SimpleXMLParser::Default(
} }
/*****************************************************************************/ /*****************************************************************************/
XMLFile *SimpleXMLParser::Execute( const rtl::OUString &rFullFileName , const rtl::OUString &rFileName, XMLFile* pXMLFileIn ) XMLFile *SimpleXMLParser::Execute( const rtl::OUString &rFileName, XMLFile* pXMLFileIn )
/*****************************************************************************/ /*****************************************************************************/
{ {
aErrorInformation.eCode = XML_ERROR_NONE; aErrorInformation.eCode = XML_ERROR_NONE;
...@@ -1150,7 +1150,6 @@ XMLFile *SimpleXMLParser::Execute( const rtl::OUString &rFullFileName , const rt ...@@ -1150,7 +1150,6 @@ XMLFile *SimpleXMLParser::Execute( const rtl::OUString &rFullFileName , const rt
pXMLFile = pXMLFileIn; pXMLFile = pXMLFileIn;
pXMLFile->SetName( rFileName ); pXMLFile->SetName( rFileName );
pXMLFile->SetFullName( rFullFileName );
pCurNode = pXMLFile; pCurNode = pXMLFile;
pCurData = NULL; pCurData = NULL;
......
...@@ -30,11 +30,9 @@ ...@@ -30,11 +30,9 @@
#include <cstring> #include <cstring>
#include <comphelper/string.hxx>
#include <stdio.h> #include <stdio.h>
#include <tools/fsys.hxx>
// local includes #include "common.hxx"
#include "export.hxx" #include "export.hxx"
#include "helper.hxx" #include "helper.hxx"
#include "xrmmerge.hxx" #include "xrmmerge.hxx"
...@@ -209,22 +207,10 @@ extern FILE *GetXrmFile() ...@@ -209,22 +207,10 @@ extern FILE *GetXrmFile()
sInputFileName.getStr()); sInputFileName.getStr());
} }
else { else {
// this is a valid file which can be opened, so if (!bMergeMode) {
// create path to project root sActFileName = common::pathnameToken(
DirEntry aEntry( rtl::OStringToOUString( sInputFileName, RTL_TEXTENCODING_ASCII_US )); sInputFileName.getStr(), sPrjRoot.getStr());
aEntry.ToAbs(); }
rtl::OString sFullEntry(rtl::OUStringToOString(aEntry.GetFull(), RTL_TEXTENCODING_ASCII_US));
aEntry += DirEntry(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("..")));
aEntry += DirEntry( sPrjRoot );
rtl::OString sPrjEntry(rtl::OUStringToOString(aEntry.GetFull(), RTL_TEXTENCODING_ASCII_US));
// create file name, beginnig with project root
// (e.g.: source\ui\src\menue.src)
sActFileName = sFullEntry.copy(sPrjEntry.getLength() + 1);
sActFileName = sActFileName.replace('/', '\\');
return pFile; return pFile;
} }
} }
...@@ -404,7 +390,8 @@ rtl::OString XRMResParser::GetAttribute( const rtl::OString &rToken, const rtl:: ...@@ -404,7 +390,8 @@ rtl::OString XRMResParser::GetAttribute( const rtl::OString &rToken, const rtl::
if ( nPos != -1 ) if ( nPos != -1 )
{ {
sTmp = sTmp.copy( nPos ); sTmp = sTmp.copy( nPos );
rtl::OString sId = comphelper::string::getToken(sTmp, 1, '\"'); sal_Int32 n = 0;
rtl::OString sId = sTmp.getToken(1, '"', n);
return sId; return sId;
} }
return ""; return "";
...@@ -422,14 +409,7 @@ void XRMResParser::Error( const rtl::OString &rError ) ...@@ -422,14 +409,7 @@ void XRMResParser::Error( const rtl::OString &rError )
void XRMResParser::ConvertStringToDBFormat( rtl::OString &rString ) void XRMResParser::ConvertStringToDBFormat( rtl::OString &rString )
/*****************************************************************************/ /*****************************************************************************/
{ {
rtl::OString sResult; rString = helper::trimAscii(rString);
do {
sResult = rString;
rString = comphelper::string::stripStart(rString, _LF);
rString = comphelper::string::stripStart(rString, '\t');
rString = comphelper::string::stripEnd(rString, '\t');
} while ( sResult != rString );
helper::searchAndReplaceAll(&rString, "\t", "\\t"); helper::searchAndReplaceAll(&rString, "\t", "\\t");
} }
...@@ -500,9 +480,7 @@ void XRMResExport::WorkOnDesc( ...@@ -500,9 +480,7 @@ void XRMResExport::WorkOnDesc(
) )
/*****************************************************************************/ /*****************************************************************************/
{ {
DirEntry aEntry( rtl::OStringToOUString( sInputFileName, RTL_TEXTENCODING_ASCII_US )); rtl::OString sDescFileName(sInputFileName);
aEntry.ToAbs();
rtl::OString sDescFileName(rtl::OUStringToOString(aEntry.GetFull(), RTL_TEXTENCODING_ASCII_US));
helper::searchAndReplaceAll(&sDescFileName, "description.xml", ""); helper::searchAndReplaceAll(&sDescFileName, "description.xml", "");
sDescFileName += GetAttribute( rOpenTag, "xlink:href" ); sDescFileName += GetAttribute( rOpenTag, "xlink:href" );
int size; int size;
...@@ -559,7 +537,7 @@ void XRMResExport::EndOfText( ...@@ -559,7 +537,7 @@ void XRMResExport::EndOfText(
sCur = aLanguages[ n ]; sCur = aLanguages[ n ];
rtl::OString sAct = pResData->sText[ sCur ]; rtl::OString sAct = pResData->sText[ sCur ];
sAct = comphelper::string::remove(sAct, 0x0A); helper::searchAndReplaceAll(&sAct, "\x0A", rtl::OString());
rtl::OString sOutput( sPrj ); sOutput += "\t"; rtl::OString sOutput( sPrj ); sOutput += "\t";
sOutput += sPath; sOutput += sPath;
...@@ -667,17 +645,25 @@ void XRMResMerge::WorkOnDesc( ...@@ -667,17 +645,25 @@ void XRMResMerge::WorkOnDesc(
Output( sAdditionalLine ); Output( sAdditionalLine );
DirEntry aEntry( rtl::OStringToOUString( sOutputFile, RTL_TEXTENCODING_ASCII_US )); sal_Int32 i = sOutputFile.lastIndexOf('/');
aEntry.ToAbs(); if (i == -1) {
rtl::OString sOutputDescFile(rtl::OUStringToOString(aEntry.GetPath().GetFull(), RTL_TEXTENCODING_ASCII_US)); std::cerr
rtl::OString sDel(rtl::OUStringToOString(DirEntry::GetAccessDelimiter(), RTL_TEXTENCODING_ASCII_US)); << "Error: output file " << sOutputFile.getStr()
sOutputDescFile += sDel; << " does not contain any /\n";
sOutputDescFile += sLocDescFilename; throw false; //TODO
}
rtl::OString sOutputDescFile(
sOutputFile.copy(0, i + 1) + sLocDescFilename);
helper::searchAndReplaceAll(&sText, "\\n", "\n"); helper::searchAndReplaceAll(&sText, "\\n", "\n");
ofstream file(sOutputDescFile.getStr()); ofstream file(sOutputDescFile.getStr());
if (file.is_open()) { if (file.is_open()) {
file << sText.getStr(); file << sText.getStr();
file.close(); file.close();
} else {
std::cerr
<< "Error: cannot write "
<< sOutputDescFile.getStr() << '\n';
throw false; //TODO
} }
} }
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment