l10ntools/Executable_genlang.mk | 5 +++++ l10ntools/inc/gConv.hxx | 2 +- l10ntools/inc/gConvPo.hxx | 4 ++-- l10ntools/source/gConv.cxx | 17 ++++++++--------- l10ntools/source/gConvPo.cxx | 23 ++++++++++++++++------- l10ntools/source/gConvSrc.cxx | 6 +++--- l10ntools/source/gLexPo.l | 2 +- l10ntools/source/gLexSrc.l | 2 +- l10ntools/source/gLexTree.l | 2 +- l10ntools/source/gLexUi.l | 2 +- l10ntools/source/gLexUlf.l | 2 +- l10ntools/source/gLexXcs.l | 2 +- l10ntools/source/gLexXcu.l | 2 +- l10ntools/source/gLexXhp.l | 2 +- l10ntools/source/gLexXml.l | 2 +- l10ntools/source/gLexXrm.l | 2 +- 16 files changed, 45 insertions(+), 32 deletions(-)
New commits: commit 9605ed83182b2ef670c0a0c559bbe1e7a5d902aa Author: jan iversen <j...@documentfoundation.org> Date: Sun Mar 27 22:39:03 2016 +0200 genlang, added genKey function KID generation is an integrated part of the POT files. Updated lex files for simplification Change-Id: I8ba64e7119edc5267b2acd75c468ed2ff1cf16c2 diff --git a/l10ntools/Executable_genlang.mk b/l10ntools/Executable_genlang.mk index 16d49dd..c05f979 100644 --- a/l10ntools/Executable_genlang.mk +++ b/l10ntools/Executable_genlang.mk @@ -14,6 +14,11 @@ $(eval $(call gb_Executable_set_include,genlang,\ $$(INCLUDE) \ )) +$(eval $(call gb_Executable_use_externals,genlang,\ + boost_headers \ +)) + + $(eval $(call gb_Executable_add_scanners,genlang,\ l10ntools/source/gLexPo \ l10ntools/source/gLexUi \ diff --git a/l10ntools/inc/gConv.hxx b/l10ntools/inc/gConv.hxx index d329a5a..3b5c1d1 100644 --- a/l10ntools/inc/gConv.hxx +++ b/l10ntools/inc/gConv.hxx @@ -42,7 +42,7 @@ class convert_gen virtual void doExecute() = 0; // utility functions for converters - int lexRead(char *sBuf, int nMax_size); + void lexRead(char *sBuf, size_t *result, size_t nMax_size); static void lexStrncpy(char* s1, const char * s2, int n); string& copySource(char const *yyText, bool bDoClear = true); diff --git a/l10ntools/inc/gConvPo.hxx b/l10ntools/inc/gConvPo.hxx index 5be3657..53257c2 100644 --- a/l10ntools/inc/gConvPo.hxx +++ b/l10ntools/inc/gConvPo.hxx @@ -61,8 +61,8 @@ class convert_po : public convert_gen string msId; string msStr; string msKey; - bool mbFuzzy; - filebuf outBuffer; + bool mbFuzzy; + filebuf mfOutBuffer; void doExecute() override; string genKeyId(const string& text); diff --git a/l10ntools/source/gConv.cxx b/l10ntools/source/gConv.cxx index 1070e88..39f0825 100644 --- a/l10ntools/source/gConv.cxx +++ b/l10ntools/source/gConv.cxx @@ -191,29 +191,28 @@ bool convert_gen::prepareFile() -int convert_gen::lexRead(char *sBuf, int nMax_size) +void convert_gen::lexRead(char *sBuf, size_t *result, size_t nMax_size) { - int nResult = 0; - // did we hit eof - if (miSourceReadIndex != -1) { + if (miSourceReadIndex == -1) + *result = 0; + else { // assume we can copy all that are left. - nResult = msSourceBuffer.size() - miSourceReadIndex; + *result = msSourceBuffer.size() - miSourceReadIndex; // space enough for the whole line ? - if (nResult <= nMax_size) { - msSourceBuffer.copy(sBuf, nResult, miSourceReadIndex); + if (*result <= nMax_size) { + msSourceBuffer.copy(sBuf, *result, miSourceReadIndex); l10nMem::showDebug(sBuf); miSourceReadIndex = -1; } else { msSourceBuffer.copy(sBuf, nMax_size, miSourceReadIndex); l10nMem::showDebug(sBuf); - nResult = nMax_size; + *result = nMax_size; miSourceReadIndex += nMax_size; } } - return nResult; } diff --git a/l10ntools/source/gConvPo.cxx b/l10ntools/source/gConvPo.cxx index 21b18cf..1483d09 100644 --- a/l10ntools/source/gConvPo.cxx +++ b/l10ntools/source/gConvPo.cxx @@ -161,14 +161,14 @@ void convert_po::startSave(const string& sName, // create directories as needed createDir(string(""), sFilePath); - outBuffer.open(sFilePath.c_str(), ios::out | ios::binary); + mfOutBuffer.open(sFilePath.c_str(), ios::out | ios::binary); - if (!outBuffer.is_open()) + if (!mfOutBuffer.is_open()) throw l10nMem::showError("Cannot open " + sFilePath + " for writing"); l10nMem::showDebug("writing file (" + sFilePath + ")"); - ostream outFile(&outBuffer); + ostream outFile(&mfOutBuffer); // Set header auto t = std::time(nullptr); @@ -204,14 +204,14 @@ void convert_po::save(const string& sFileName, bool bFuzzy) { string sName; - ostream outFile(&outBuffer); + ostream outFile(&mfOutBuffer); int newPos; // isolate filename newPos = sFileName.find_last_of("/\\", sFileName.length()); sName = sFileName.substr(newPos + 1, sFileName.length()); - outFile << endl << "#. " << genKeyId(sName + sText) << endl; + outFile << endl << "#. " << genKeyId(sName + sKey + sResource + sENUStext) << endl; if (sComment.length()) outFile << "#. " << sComment << endl; outFile << "#: " << sName << endl @@ -229,15 +229,24 @@ void convert_po::save(const string& sFileName, void convert_po::endSave() { - outBuffer.close(); + mfOutBuffer.close(); } string convert_po::genKeyId(const string& text) { + string newText(text); boost::crc_32_type aCRC32; - aCRC32.process_bytes(text.c_str(), text.length()); + int i; + + for (i = 0; (i = newText.find("\\\\", 0)) != (int)string::npos;) { + newText.erase(i, 1); + } + for (i = 0; (i = newText.find("\\\"", 0)) != (int)string::npos;) { + newText.erase(i, 1); + } + aCRC32.process_bytes(newText.c_str(), newText.length()); unsigned int nCRC = aCRC32.checksum(); string key; diff --git a/l10ntools/source/gConvSrc.cxx b/l10ntools/source/gConvSrc.cxx index e278485..cc53ea8 100644 --- a/l10ntools/source/gConvSrc.cxx +++ b/l10ntools/source/gConvSrc.cxx @@ -152,13 +152,13 @@ void convert_src::setList(char *syyText) void convert_src::setNL(char *syyText, bool bMacro) { int nL; - string sKey; + string sKey, x; copySource(syyText); if (msTextName.size() && mbValuePresent && mbEnUs) { // locate key and extract it - buildKey(sKey); + buildKey(x); for (nL = -1;;) { nL = msValue.find("\\\"", nL+1); @@ -231,7 +231,7 @@ void convert_src::setListItem(char const *syyText, bool bIsStart) msName = "dummy"; mcStack.push_back(msName); } - msTextName = "item"; + msTextName = "item"; mbExpectValue = mbExpectName = mbInListItem = true; diff --git a/l10ntools/source/gLexPo.l b/l10ntools/source/gLexPo.l index af0d231..e0f2312 100644 --- a/l10ntools/source/gLexPo.l +++ b/l10ntools/source/gLexPo.l @@ -26,7 +26,7 @@ using namespace std; #define LOCptr ((convert_po *)convert_gen::mcImpl) #define YYLMAX 64000 -#define YY_INPUT(buf,result,max_size) LOCptr->lexRead(buf, max_size) +#define YY_INPUT(buf,result,max_size) LOCptr->lexRead(buf, &result, max_size) #define YY_NO_UNISTD_H 1 #define yytext_ptr potext_ptr #define yy_flex_strncpy convert_gen::lexStrncpy diff --git a/l10ntools/source/gLexSrc.l b/l10ntools/source/gLexSrc.l index ef05201..d559562 100644 --- a/l10ntools/source/gLexSrc.l +++ b/l10ntools/source/gLexSrc.l @@ -26,7 +26,7 @@ using namespace std; #define LOCptr ((convert_src *)convert_gen::mcImpl) #define YYLMAX 64000 -#define YY_INPUT(buf,result,max_size) LOCptr->lexRead(buf, max_size) +#define YY_INPUT(buf,result,max_size) LOCptr->lexRead(buf, &result, max_size) #define YY_NO_UNISTD_H 1 #define yytext_ptr srctext_ptr #define yy_flex_strncpy convert_gen::lexStrncpy diff --git a/l10ntools/source/gLexTree.l b/l10ntools/source/gLexTree.l index 768ed5b..ca3d4b6 100644 --- a/l10ntools/source/gLexTree.l +++ b/l10ntools/source/gLexTree.l @@ -26,7 +26,7 @@ using namespace std; #define LOCptr ((convert_tree *)convert_gen::mcImpl) #define YYLMAX 64000 -#define YY_INPUT(buf,result,max_size) LOCptr->lexRead(buf, max_size) +#define YY_INPUT(buf,result,max_size) LOCptr->lexRead(buf, &result, max_size) #define YY_NO_UNISTD_H 1 #define yytext_ptr treetext_ptr #define yy_flex_strncpy convert_gen::lexStrncpy diff --git a/l10ntools/source/gLexUi.l b/l10ntools/source/gLexUi.l index d7dd86b..2ad64b4 100644 --- a/l10ntools/source/gLexUi.l +++ b/l10ntools/source/gLexUi.l @@ -26,7 +26,7 @@ using namespace std; #define LOCptr ((convert_ui *)convert_gen::mcImpl) #define YYLMAX 64000 -#define YY_INPUT(buf,result,max_size) LOCptr->lexRead(buf, max_size) +#define YY_INPUT(buf,result,max_size) LOCptr->lexRead(buf, &result, max_size) #define YY_NO_UNISTD_H 1 #define yytext_ptr uitext_ptr #define yy_flex_strncpy convert_gen::lexStrncpy diff --git a/l10ntools/source/gLexUlf.l b/l10ntools/source/gLexUlf.l index 1492666..8da3539 100644 --- a/l10ntools/source/gLexUlf.l +++ b/l10ntools/source/gLexUlf.l @@ -26,7 +26,7 @@ using namespace std; #define LOCptr ((convert_ulf *)convert_gen::mcImpl) #define YYLMAX 64000 -#define YY_INPUT(buf,result,max_size) LOCptr->lexRead(buf, max_size) +#define YY_INPUT(buf,result,max_size) LOCptr->lexRead(buf, &result, max_size) #define YY_NO_UNISTD_H 1 #define yytext_ptr ulftext_ptr #define yy_flex_strncpy convert_gen::lexStrncpy diff --git a/l10ntools/source/gLexXcs.l b/l10ntools/source/gLexXcs.l index 98a0983..f0bb97b 100644 --- a/l10ntools/source/gLexXcs.l +++ b/l10ntools/source/gLexXcs.l @@ -26,7 +26,7 @@ using namespace std; #define LOCptr ((convert_xcs *)convert_gen::mcImpl) #define YYLMAX 64000 -#define YY_INPUT(buf,result,max_size) LOCptr->lexRead(buf, max_size) +#define YY_INPUT(buf,result,max_size) LOCptr->lexRead(buf, &result, max_size) #define YY_NO_UNISTD_H 1 #define yytext_ptr xcstext_ptr #define yy_flex_strncpy convert_gen::lexStrncpy diff --git a/l10ntools/source/gLexXcu.l b/l10ntools/source/gLexXcu.l index 4f88c9b..fb3e187 100644 --- a/l10ntools/source/gLexXcu.l +++ b/l10ntools/source/gLexXcu.l @@ -26,7 +26,7 @@ using namespace std; #define LOCptr ((convert_xcu *)convert_gen::mcImpl) #define YYLMAX 64000 -#define YY_INPUT(buf,result,max_size) LOCptr->lexRead(buf, max_size) +#define YY_INPUT(buf,result,max_size) LOCptr->lexRead(buf, &result, max_size) #define YY_NO_UNISTD_H 1 #define yytext_ptr xcutext_ptr #define yy_flex_strncpy convert_gen::lexStrncpy diff --git a/l10ntools/source/gLexXhp.l b/l10ntools/source/gLexXhp.l index 802b306..b8577a4 100644 --- a/l10ntools/source/gLexXhp.l +++ b/l10ntools/source/gLexXhp.l @@ -26,7 +26,7 @@ using namespace std; #define LOCptr ((convert_xhp *)convert_gen::mcImpl) #define YYLMAX 64000 -#define YY_INPUT(buf,result,max_size) LOCptr->lexRead(buf, max_size) +#define YY_INPUT(buf,result,max_size) LOCptr->lexRead(buf, &result, max_size) #define YY_NO_UNISTD_H 1 #define yytext_ptr xhptext_ptr #define yy_flex_strncpy convert_gen::lexStrncpy diff --git a/l10ntools/source/gLexXml.l b/l10ntools/source/gLexXml.l index 357f0ba..fd07001 100644 --- a/l10ntools/source/gLexXml.l +++ b/l10ntools/source/gLexXml.l @@ -26,7 +26,7 @@ using namespace std; #define LOCptr ((convert_xml *)convert_gen::mcImpl) #define YYLMAX 64000 -#define YY_INPUT(buf,result,max_size) LOCptr->lexRead(buf, max_size) +#define YY_INPUT(buf,result,max_size) LOCptr->lexRead(buf, &result, max_size) #define YY_NO_UNISTD_H 1 #define yytext_ptr xmltext_ptr #define yy_flex_strncpy convert_gen::lexStrncpy diff --git a/l10ntools/source/gLexXrm.l b/l10ntools/source/gLexXrm.l index 8567016..12c1ec9 100644 --- a/l10ntools/source/gLexXrm.l +++ b/l10ntools/source/gLexXrm.l @@ -26,7 +26,7 @@ using namespace std; #define LOCptr ((convert_xrm *)convert_gen::mcImpl) #define YYLMAX 64000 -#define YY_INPUT(buf,result,max_size) LOCptr->lexRead(buf, max_size) +#define YY_INPUT(buf,result,max_size) LOCptr->lexRead(buf, &result, max_size) #define YY_NO_UNISTD_H 1 #define yytext_ptr xrmtext_ptr #define yy_flex_strncpy convert_gen::lexStrncpy _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits