You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openoffice.apache.org by ja...@apache.org on 2013/02/17 14:50:31 UTC

svn commit: r1447022 - /openoffice/branches/l10n/main/l10ntools/source/

Author: jani
Date: Sun Feb 17 13:50:31 2013
New Revision: 1447022

URL: http://svn.apache.org/r1447022
Log:
save before major rewrite of .src handler

Modified:
    openoffice/branches/l10n/main/l10ntools/source/gCon.cxx
    openoffice/branches/l10n/main/l10ntools/source/gCon.hxx
    openoffice/branches/l10n/main/l10ntools/source/gConPo.hxx
    openoffice/branches/l10n/main/l10ntools/source/gConPoWrap.cxx
    openoffice/branches/l10n/main/l10ntools/source/gConPolex.l
    openoffice/branches/l10n/main/l10ntools/source/gConSrc.hxx
    openoffice/branches/l10n/main/l10ntools/source/gConSrcWrap.cxx
    openoffice/branches/l10n/main/l10ntools/source/gConSrclex.l
    openoffice/branches/l10n/main/l10ntools/source/gConUlf.hxx
    openoffice/branches/l10n/main/l10ntools/source/gConUlfWrap.cxx
    openoffice/branches/l10n/main/l10ntools/source/gConUlflex.l
    openoffice/branches/l10n/main/l10ntools/source/gConXcs.hxx
    openoffice/branches/l10n/main/l10ntools/source/gConXcsWrap.cxx
    openoffice/branches/l10n/main/l10ntools/source/gConXcslex.l
    openoffice/branches/l10n/main/l10ntools/source/gConXcu.hxx
    openoffice/branches/l10n/main/l10ntools/source/gConXcuWrap.cxx
    openoffice/branches/l10n/main/l10ntools/source/gConXculex.l
    openoffice/branches/l10n/main/l10ntools/source/gConXhp.hxx
    openoffice/branches/l10n/main/l10ntools/source/gConXhpWrap.cxx
    openoffice/branches/l10n/main/l10ntools/source/gConXhplex.l
    openoffice/branches/l10n/main/l10ntools/source/gConXrm.hxx
    openoffice/branches/l10n/main/l10ntools/source/gConXrmWrap.cxx
    openoffice/branches/l10n/main/l10ntools/source/gConXrmlex.l

Modified: openoffice/branches/l10n/main/l10ntools/source/gCon.cxx
URL: http://svn.apache.org/viewvc/openoffice/branches/l10n/main/l10ntools/source/gCon.cxx?rev=1447022&r1=1447021&r2=1447022&view=diff
==============================================================================
--- openoffice/branches/l10n/main/l10ntools/source/gCon.cxx (original)
+++ openoffice/branches/l10n/main/l10ntools/source/gCon.cxx Sun Feb 17 13:50:31 2013
@@ -67,7 +67,7 @@ convert_gen::convert_gen(const std::stri
   else if (sExtension == "po")         convert_gen_impl::mcImpl = new convert_po(crMemory);
   else if (sExtension == "tree")       convert_gen_impl::mcImpl = new convert_tree(crMemory);
   else if (sExtension == "ulf")        convert_gen_impl::mcImpl = new convert_ulf(crMemory);
-  else if (sExtension == "xcu")        convert_gen_impl::mcImpl = new convert_xcs(crMemory);
+  else if (sExtension == "xcu")        convert_gen_impl::mcImpl = new convert_xcu(crMemory);
   else if (sExtension == "xhp")        convert_gen_impl::mcImpl = new convert_xhp(crMemory);
   else if (sExtension == "properties") convert_gen_impl::mcImpl = new convert_prop(crMemory);
   else throw std::string("unknown extension on source file: ")+srSourceFile;
@@ -225,8 +225,9 @@ void convert_gen_impl::trim(std::string&
 
 
 /**********************   I M P L E M E N T A T I O N   **********************/
-void convert_gen_impl::collectData(char *sText)
+void convert_gen_impl::collectData(char *sText, int iLineNo)
 {
+  miLineNo     = iLineNo;
   msCollector += sText;
   if (msCollector[msCollector.size()-1] == '\n')
   {
@@ -239,8 +240,11 @@ void convert_gen_impl::collectData(char 
 
 
 /**********************   I M P L E M E N T A T I O N   **********************/
-std::string& convert_gen_impl::copySource(char *yyText, bool bDoClear)
+std::string& convert_gen_impl::copySource(char *yyText, int iLineNo, bool bDoClear)
 {
+  int nL;
+
+
   msCopyText = yyText;
 
   // write text for merge
@@ -250,13 +254,23 @@ std::string& convert_gen_impl::copySourc
   if (bDoClear)
     msCollector.clear();
 
+  // remove any CR
+  for (;;)
+  {
+	nL = msCopyText.find("\r");
+	if (nL == (int)std::string::npos)
+	  break;
+
+	msCopyText.erase(nL, 1);
+  }
+
   return msCopyText;
 }
 
 
 
 /**********************   I M P L E M E N T A T I O N   **********************/
-void convert_gen_impl::isolateText(std::string& sText, int iStart, int *iEnd, std::string& sResult)
+void convert_gen_impl::isolateText(std::string& sText, int iStart, int *iEnd, std::string& sResult, bool bEOL)
 {
   int  iCur;
 
@@ -285,8 +299,19 @@ void convert_gen_impl::isolateText(std::
     for (iCur = iStart; sText[iCur] != '\0'; ++iCur)
     {
 	  // Time to stop
-	  if (sText[iCur] == '[' || sText[iCur] == ' ' || sText[iCur] == '\t' || sText[iCur] == '\n')
-		break;
+      if (bEOL)
+	  {
+	    if (sText[iCur] == '\n')
+		{
+		  if (sText[iCur-1] == '\\')
+			--iCur;
+		  for (; sText[iCur-1] == ' ' || sText[iCur-1] == '\t'; --iCur) ;
+		  break;
+		}
+	  }
+	  else
+	    if (sText[iCur] == '[' || sText[iCur] == ' ' || sText[iCur] == '\t' || sText[iCur] == '\n')
+		  break;
 	}
 	*iEnd = iCur;
   }

Modified: openoffice/branches/l10n/main/l10ntools/source/gCon.hxx
URL: http://svn.apache.org/viewvc/openoffice/branches/l10n/main/l10ntools/source/gCon.hxx?rev=1447022&r1=1447021&r2=1447022&view=diff
==============================================================================
--- openoffice/branches/l10n/main/l10ntools/source/gCon.hxx (original)
+++ openoffice/branches/l10n/main/l10ntools/source/gCon.hxx Sun Feb 17 13:50:31 2013
@@ -55,6 +55,7 @@ class convert_gen_impl
     std::string  msSourceFile;
     l10nMem&     mcMemory;
     std::string  msCollector;
+	int          miLineNo;
 
 
 	// utility functions for converters
@@ -62,9 +63,9 @@ class convert_gen_impl
     void lineRead(bool *bEof, std::string& line);
     void writeSourceFile(const std::string& line);
     void trim(std::string& line);
-	virtual void collectData(char *sCollectedText);
-	std::string& copySource(char *yyText, bool bDoClear = true);
-	void isolateText(std::string& sText, int iStart, int *iEnd, std::string& sResult);
+	virtual void collectData(char *sCollectedText, int iLineNo);
+	std::string& copySource(char *yyText, int iLineNo, bool bDoClear = true);
+	void isolateText(std::string& sText, int iStart, int *iEnd, std::string& sResult, bool bEOL = false);
 
 private:
     std::string  msSourceBuffer, msCopyText;

Modified: openoffice/branches/l10n/main/l10ntools/source/gConPo.hxx
URL: http://svn.apache.org/viewvc/openoffice/branches/l10n/main/l10ntools/source/gConPo.hxx?rev=1447022&r1=1447021&r2=1447022&view=diff
==============================================================================
--- openoffice/branches/l10n/main/l10ntools/source/gConPo.hxx (original)
+++ openoffice/branches/l10n/main/l10ntools/source/gConPo.hxx Sun Feb 17 13:50:31 2013
@@ -39,8 +39,8 @@ class convert_po : public convert_gen_im
     convert_po(l10nMem& crMemory);
     ~convert_po();
 
-    void startCollectData(char *syyText);
-    void stopCollectData(char *syyText);
+    void startCollectData(char *syyText, int iLineNo);
+    void stopCollectData(char *syyText, int iLineNo);
 
   private:
     void execute();

Modified: openoffice/branches/l10n/main/l10ntools/source/gConPoWrap.cxx
URL: http://svn.apache.org/viewvc/openoffice/branches/l10n/main/l10ntools/source/gConPoWrap.cxx?rev=1447022&r1=1447021&r2=1447022&view=diff
==============================================================================
--- openoffice/branches/l10n/main/l10ntools/source/gConPoWrap.cxx (original)
+++ openoffice/branches/l10n/main/l10ntools/source/gConPoWrap.cxx Sun Feb 17 13:50:31 2013
@@ -58,9 +58,9 @@ void convert_po::execute()
 
 
 /**********************   I M P L E M E N T A T I O N   **********************/
-void convert_po::startCollectData(char *syyText)
+void convert_po::startCollectData(char *syyText, int iLineno)
 {
-  std::string sCollectedText = copySource(syyText);
+  std::string sCollectedText = copySource(syyText, iLineno);
 
 //  mbCollectingData = true;
 }
@@ -68,9 +68,9 @@ void convert_po::startCollectData(char *
 
 
 /**********************   I M P L E M E N T A T I O N   **********************/
-void convert_po::stopCollectData(char *syyText)
+void convert_po::stopCollectData(char *syyText, int iLineno)
 {
-  std::string sCollectedText = copySource(syyText);
+  std::string sCollectedText = copySource(syyText, iLineno);
   std::string useKey;
 
 

Modified: openoffice/branches/l10n/main/l10ntools/source/gConPolex.l
URL: http://svn.apache.org/viewvc/openoffice/branches/l10n/main/l10ntools/source/gConPolex.l?rev=1447022&r1=1447021&r2=1447022&view=diff
==============================================================================
--- openoffice/branches/l10n/main/l10ntools/source/gConPolex.l (original)
+++ openoffice/branches/l10n/main/l10ntools/source/gConPolex.l Sun Feb 17 13:50:31 2013
@@ -61,14 +61,14 @@
 
   
 "<value xml:lang=\""[^\"]*\"[^>]*">" {
-  LOCptr->startCollectData(yytext);
+  LOCptr->startCollectData(yytext, genpo_lineno);
 }
 
 "</value>" {
-  LOCptr->stopCollectData(yytext);
+  LOCptr->stopCollectData(yytext, genpo_lineno);
 }
 
 .|\n {
-  IMPLptr->collectData(yytext);
+  IMPLptr->collectData(yytext, genpo_lineno);
 }
 %%

Modified: openoffice/branches/l10n/main/l10ntools/source/gConSrc.hxx
URL: http://svn.apache.org/viewvc/openoffice/branches/l10n/main/l10ntools/source/gConSrc.hxx?rev=1447022&r1=1447021&r2=1447022&view=diff
==============================================================================
--- openoffice/branches/l10n/main/l10ntools/source/gConSrc.hxx (original)
+++ openoffice/branches/l10n/main/l10ntools/source/gConSrc.hxx Sun Feb 17 13:50:31 2013
@@ -39,17 +39,17 @@ class convert_src : public convert_gen_i
     convert_src(l10nMem& crMemory);
     ~convert_src();
     
-    void pushKey(char *syyText);
-    void popKey (char *syyText);
-    void pushNoKey(char *syyText);
-    void pushPlaceHolder(char *syyText);
-    void registerHelpKey(char *syyText);
-    void registerIdentKey(char *syyText);
+    void pushKey(char *syyText, int iLineNo);
+    void popKey (char *syyText, int iLineNo);
+    void pushNoKey(char *syyText, int iLineNo);
+    void pushPlaceHolder(char *syyTex, int iLineNot);
+    void registerHelpKey(char *syyText, int iLineNo);
+    void registerIdentKey(char *syyText, int iLineNo);
     
-    void saveData(char *syyText);
-    void saveItemList(char *syyText);
-	void startDefine(char *syyText);
-	void collectData(char *sCollectedText);
+    void saveData(char *syyText, int iLineNo);
+    void saveItemList(char *syyText, int iLineNo);
+	void startDefine(char *syyText, int iLineNo);
+	void collectData(char *sCollectedText, int iLineNo);
 
   private:
     std::vector<std::string> mcStack;

Modified: openoffice/branches/l10n/main/l10ntools/source/gConSrcWrap.cxx
URL: http://svn.apache.org/viewvc/openoffice/branches/l10n/main/l10ntools/source/gConSrcWrap.cxx?rev=1447022&r1=1447021&r2=1447022&view=diff
==============================================================================
--- openoffice/branches/l10n/main/l10ntools/source/gConSrcWrap.cxx (original)
+++ openoffice/branches/l10n/main/l10ntools/source/gConSrcWrap.cxx Sun Feb 17 13:50:31 2013
@@ -63,14 +63,14 @@ void convert_src::execute()
 
 
 /**********************   I M P L E M E N T A T I O N   **********************/
-void convert_src::pushKey(char *syyText)
+void convert_src::pushKey(char *syyText, int iLineno)
 {
-  std::string sKey, sText = copySource(syyText);
+  std::string sKey, sText = copySource(syyText, iLineno);
   int         nL;
 
   // skip object type and isolate id
   isolateText(sText,  0, &nL, sKey);
-  isolateText(sText, nL, &nL, sKey);
+  isolateText(sText, nL, &nL, sKey, true);
 
   mcStack.push_back(sKey);
   mbUseIdentifier = false;
@@ -79,9 +79,9 @@ void convert_src::pushKey(char *syyText)
 
 
 /**********************   I M P L E M E N T A T I O N   **********************/
-void convert_src::popKey(char *syyText)
+void convert_src::popKey(char *syyText, int iLineno)
 {
-  copySource(syyText);
+  copySource(syyText, iLineno);
 
   // check for correct node/prop relations
   if (mcStack.size())
@@ -92,9 +92,9 @@ void convert_src::popKey(char *syyText)
 
 
 /**********************   I M P L E M E N T A T I O N   **********************/
-void convert_src::pushNoKey(char *syyText)
+void convert_src::pushNoKey(char *syyText, int iLineno)
 {
-  copySource(syyText);
+  copySource(syyText, iLineno);
 
   mbUseIdentifier = true;
   mcStack.push_back("dummy");
@@ -103,9 +103,9 @@ void convert_src::pushNoKey(char *syyTex
 
 
 /**********************   I M P L E M E N T A T I O N   **********************/
-void convert_src::pushPlaceHolder(char *syyText)
+void convert_src::pushPlaceHolder(char *syyText, int iLineno)
 {
-  copySource(syyText);
+  copySource(syyText, iLineno);
 
   mbUseIdentifier = true;
   mcStack.push_back("dummy");
@@ -114,9 +114,9 @@ void convert_src::pushPlaceHolder(char *
 
 
 /**********************   I M P L E M E N T A T I O N   **********************/
-void convert_src::registerHelpKey(char *syyText)
+void convert_src::registerHelpKey(char *syyText, int iLineno)
 {
-  std::string sKey, sText = copySource(syyText);
+  std::string sKey, sText = copySource(syyText, iLineno);
   int         nL;
 
   // do we expect a delayed key
@@ -139,9 +139,9 @@ void convert_src::registerHelpKey(char *
 
 
 /**********************   I M P L E M E N T A T I O N   **********************/
-void convert_src::registerIdentKey(char *syyText)
+void convert_src::registerIdentKey(char *syyText, int iLineno)
 {
-  std::string sKey, sText = copySource(syyText);
+  std::string sKey, sText = copySource(syyText, iLineno);
   int         nL;
 
   // do we expect a delayed key
@@ -161,9 +161,9 @@ void convert_src::registerIdentKey(char 
 
 
 /**********************   I M P L E M E N T A T I O N   **********************/
-void convert_src::saveData(char *syyText)
+void convert_src::saveData(char *syyText, int iLineno)
 {
-  std::string sObj, sKey, sUseText, sText = copySource(syyText);
+  std::string sObj, sKey, sUseText, sText = copySource(syyText, iLineno);
   int         nL;
 
   // Is it a real text
@@ -202,9 +202,9 @@ void convert_src::saveData(char *syyText
 
 
 /**********************   I M P L E M E N T A T I O N   **********************/
-void convert_src::saveItemList(char *syyText)
+void convert_src::saveItemList(char *syyText, int iLineno)
 {
-  std::string sObj, sKey, sUseText, sText = copySource(syyText);
+  std::string sObj, sKey, sUseText, sText = copySource(syyText, iLineno);
   int         cnt, nL;
 
   // locate key and extract it
@@ -246,9 +246,9 @@ void convert_src::saveItemList(char *syy
 
 
 /**********************   I M P L E M E N T A T I O N   **********************/
-void convert_src::startDefine(char *syyText)
+void convert_src::startDefine(char *syyText, int iLineno)
 {
-  std::string sKey, sText = copySource(syyText);
+  std::string sKey, sText = copySource(syyText, iLineno);
   int         nL;
 
   // skip #define and get key
@@ -264,7 +264,7 @@ void convert_src::startDefine(char *syyT
 
 
 /**********************   I M P L E M E N T A T I O N   **********************/
-void convert_src::collectData(char *syyText)
+void convert_src::collectData(char *syyText, int iLineno)
 {
   int  nL;
   bool doMacro;

Modified: openoffice/branches/l10n/main/l10ntools/source/gConSrclex.l
URL: http://svn.apache.org/viewvc/openoffice/branches/l10n/main/l10ntools/source/gConSrclex.l?rev=1447022&r1=1447021&r2=1447022&view=diff
==============================================================================
--- openoffice/branches/l10n/main/l10ntools/source/gConSrclex.l (original)
+++ openoffice/branches/l10n/main/l10ntools/source/gConSrclex.l Sun Feb 17 13:50:31 2013
@@ -58,111 +58,123 @@
 /***********************   H E L P E R   M A C R O S   ***********************/
 IDENT        [a-zA-Z0-9_]
 PRE          ^[ \t]*
-KEYPART      [ \t]+{IDENT}+[^\{]*"{"
+KEYPART      [ \t]+{IDENT}+(.|\n)*"{"
 NOKEYPART    ([ \t\n]+|[ \t\n]*"="[ \t\n]*)"{" 
 REGKEYPART   [ \t]*"="[ \t]*[a-zA-Z\"]+[^;]*
 GENSAVEPART  [ \t]*"["[ \t]*"en-US"[ \t]*"]"[ \t]*"="
-SAVEKEYPART  {GENSAVEPART}[^\n]*
-SAVEITEMPART {GENSAVEPART}[ \t\n]*[\\]*"\n"[ \t]*"{"[^\}]*"};"
+SAVEKEYPART  {GENSAVEPART}[^\n]*"\n"
+SAVEITEMPART {GENSAVEPART}[ \t]*[\\]*"\n"[ \t]*"{"[^\}]*"};"
 
 /*******************   R U L E S   D E F I N I T I O N S   *******************/
 %%
 
 
-{PRE}[bB][iI][tT][mM][aA][pP]{KEYPART}                                  |
-{PRE}[bB][uU][tT][tT][oO][nN][iI][mM][aA][gG][eE]{KEYPART}              |
-{PRE}[cC][aA][nN][cC][eE][lL][bB][uU][tT][tT][oO][nN]{KEYPART}          |
-{PRE}[cC][hH][eE][cC][kK][bB][oO][xX]{KEYPART}                          |
-{PRE}[cC][oO][nN][tT][rR][oO][lL]{KEYPART}                              |
-{PRE}[cC][oO][mM][bB][oO][bB][oO][xX]{KEYPART}                          |
-{PRE}[eE][dD][iI][tT]{KEYPART}                                          |
-{PRE}[eE][rR][rR][oO][rR][bB][oO][xX]{KEYPART}                          |
-{PRE}[fF][iI][xX][eE][dD][tT][eE][xX][tT]{KEYPART}                      |
-{PRE}[fF][iI][xX][eE][dD][lL][iI][nN][eE]{KEYPART}                      |
-{PRE}[fF][lL][oO][aA][tT][iI][nN][gG][wW][iI][nN][dD][oO][wW]{KEYPART}  |
-{PRE}[hH][eE][lL][pP][bB][uU][tT][tT][oO][nN]{KEYPART}                  |
-{PRE}[iI][dD][lL][iI][sS][tT]{KEYPART}                                  |
-{PRE}[iI][mM][aA][gG][eE]{KEYPART}                                      |
-{PRE}[iI][mM][aA][gG][eE][lL][iI][sS][tT]{KEYPART}                      |
-{PRE}[iI][mM][aA][gG][eE][bB][uU][tT][tT][oO][nN]{KEYPART}              |
-{PRE}[iI][tT][eE][mM][lL][iI][sS][tT]{KEYPART}                          |
-{PRE}[lL][iI][sS][tT][bB][oO][xX]{KEYPART}                              |
-{PRE}[mM][eE][nN][uU]{KEYPART}                                          |
-{PRE}[mM][eE][nN][uU][iI][tT][eE][mM]{KEYPART}                          |
-{PRE}[mM][eE][tT][rR][iI][cC][fF][iI][eE][lL][dD]{KEYPART}              |
-{PRE}[mM][oO][dD][aA][lL][dD][iI][aA][lL][oO][gG]{KEYPART}              |
-{PRE}[mM][uU][lL][tT][iI][lL][iI][nN][eE][eE][dD][iI][tT]{KEYPART}      |
-{PRE}[nN][uU][mM][eE][rR][iI][cC][fF][iI][eE][lL][dD]{KEYPART}          |
-{PRE}[oO][kK][bB][uU][tT][tT][oO][nN]{KEYPART}                          |
-{PRE}[pP][aA][gG][eE][iI][tT][eE][mM]{KEYPART}                          |
-{PRE}[pP][aA][gG][eE][lL][iI][sS][tT]{KEYPART}                          |
-{PRE}[pP][uU][sS][hH][bB][uU][tT][tT][oO][nN]{KEYPART}                  |
-{PRE}[qQ][uU][eE][rR][yY][bB][oO][xX]{KEYPART}                          |
-{PRE}[rR][aA][dD][iI][oO][bB][uU][tT][tT][oO][nN]{KEYPART}              |
-{PRE}[rR][eE][sS][oO][uU][rR][cC][eE]{KEYPART}                          |
-{PRE}[sS][pP][iI][nN][fF][iI][eE][lL][dD]{KEYPART}                      |
-{PRE}[sS][tT][rR][iI][nN][gG]{KEYPART}                                  |
-{PRE}[sS][tT][rR][iI][nN][gG][aA][rR][rR][aA][yY]{KEYPART}              |
-{PRE}[tT][aA][bB][cC][oO][nN][tT][rR][oO][lL]{KEYPART}                  |
-{PRE}[tT][aA][bB][dD][iI][aA][lL][oO][gG]{KEYPART}                      |
-{PRE}[tT][aA][bB][pP][aA][gG][eE]{KEYPART}                              |
-{PRE}[tT][oO][oO][lL][bB][oO][xX]{KEYPART}                              |
-{PRE}[tT][oO][oO][lL][bB][oO][xX][iI][tT][eE][mM]{KEYPART}              |
-{PRE}[tT][rR][iI][sS][tT][aA][tT][eE][bB][oO][xX]{KEYPART}              {
-  LOCptr->pushKey(yytext);
-}
-
-
-
-{PRE}[bB][iI][tT][mM][aA][pP]{NOKEYPART}                                  |   
-{PRE}[bB][uU][tT][tT][oO][nN][iI][mM][aA][gG][eE]{NOKEYPART}              |
-{PRE}[cC][aA][nN][cC][eE][lL][bB][uU][tT][tT][oO][nN]{NOKEYPART}          |
-{PRE}[cC][hH][eE][cC][kK][bB][oO][xX]{NOKEYPART}                          |
-{PRE}[cC][oO][nN][tT][rR][oO][lL]{NOKEYPART}                              |
-{PRE}[cC][oO][mM][bB][oO][bB][oO][xX]{NOKEYPART}                          |
-{PRE}[eE][dD][iI][tT]{NOKEYPART}                                          |
-{PRE}[eE][rR][rR][oO][rR][bB][oO][xX]{NOKEYPART}                          |
-{PRE}[fF][iI][xX][eE][dD][tT][eE][xX][tT]{NOKEYPART}                      |
-{PRE}[fF][iI][xX][eE][dD][lL][iI][nN][eE]{NOKEYPART}                      |
-{PRE}[fF][lL][oO][aA][tT][iI][nN][gG][wW][iI][nN][dD][oO][wW]{NOKEYPART}  |
-{PRE}[hH][eE][lL][pP][bB][uU][tT][tT][oO][nN]{NOKEYPART}                  |
-{PRE}[iI][dD][lL][iI][sS][tT]{NOKEYPART}                                  |
-{PRE}[iI][mM][aA][gG][eE]{NOKEYPART}                                      |
-{PRE}[iI][mM][aA][gG][eE][bB][uU][tT][tT][oO][nN]{NOKEYPART}              |
-{PRE}[iI][mM][aA][gG][eE][lL][iI][sS][tT]{NOKEYPART}                      |
-{PRE}[iI][tT][eE][mM][lL][iI][sS][tT]{NOKEYPART}                          |
-{PRE}[lL][iI][sS][tT][bB][oO][xX]{NOKEYPART}                              |
-{PRE}[mM][eE][nN][uU]{NOKEYPART}                                          |
-{PRE}[mM][eE][nN][uU][iI][tT][eE][mM]{NOKEYPART}                          |
-{PRE}[mM][eE][tT][rR][iI][cC][fF][iI][eE][lL][dD]{NOKEYPART}              |
-{PRE}[mM][oO][dD][aA][lL][dD][iI][aA][lL][oO][gG]{NOKEYPART}              |
-{PRE}[mM][uU][lL][tT][iI][lL][iI][nN][eE][eE][dD][iI][tT]{NOKEYPART}      |
-{PRE}[nN][uU][mM][eE][rR][iI][cC][fF][iI][eE][lL][dD]{NOKEYPART}          |
-{PRE}[oO][kK][bB][uU][tT][tT][oO][nN]{NOKEYPART}                          |
-{PRE}[pP][aA][gG][eE][iI][tT][eE][mM]{NOKEYPART}                          |
-{PRE}[pP][aA][gG][eE][lL][iI][sS][tT]{NOKEYPART}                          |
-{PRE}[pP][uU][sS][hH][bB][uU][tT][tT][oO][nN]{NOKEYPART}                  |
-{PRE}[qQ][uU][eE][rR][yY][bB][oO][xX]{NOKEYPART}                          |
-{PRE}[rR][aA][dD][iI][oO][bB][uU][tT][tT][oO][nN]{NOKEYPART}              |
-{PRE}[rR][eE][sS][oO][uU][rR][cC][eE]{NOKEYPART}                          |
-{PRE}[sS][pP][iI][nN][fF][iI][eE][lL][dD]{NOKEYPART}                      |
-{PRE}[sS][tT][rR][iI][nN][gG]{NOKEYPART}                                  |
-{PRE}[sS][tT][rR][iI][nN][gG][aA][rR][rR][aA][yY]{NOKEYPART}              |
-{PRE}[tT][aA][bB][cC][oO][nN][tT][rR][oO][lL]{NOKEYPART}                  |
-{PRE}[tT][aA][bB][dD][iI][aA][lL][oO][gG]{NOKEYPART}                      |
-{PRE}[tT][aA][bB][pP][aA][gG][eE]{NOKEYPART}                              |
-{PRE}[tT][oO][oO][lL][bB][oO][xX]{NOKEYPART}                              |
-{PRE}[tT][oO][oO][lL][bB][oO][xX][iI][tT][eE][mM]{NOKEYPART}              |
-{PRE}[tT][rR][iI][sS][tT][aA][tT][eE][bB][oO][xX]{NOKEYPART}              {
-  LOCptr->pushNoKey(yytext);
+{PRE}[bB][iI][tT][mM][aA][pP]{KEYPART}                                          |
+{PRE}[bB][uU][tT][tT][oO][nN][iI][mM][aA][gG][eE]{KEYPART}                      |
+{PRE}[cC][aA][nN][cC][eE][lL][bB][uU][tT][tT][oO][nN]{KEYPART}                  |
+{PRE}[cC][hH][eE][cC][kK][bB][oO][xX]{KEYPART}                                  |
+{PRE}[cC][oO][nN][tT][rR][oO][lL]{KEYPART}                                      |
+{PRE}[cC][oO][mM][bB][oO][bB][oO][xX]{KEYPART}                                  |
+{PRE}[eE][dD][iI][tT]{KEYPART}                                                  |
+{PRE}[eE][rR][rR][oO][rR][bB][oO][xX]{KEYPART}                                  |
+{PRE}[fF][iI][xX][eE][dD][tT][eE][xX][tT]{KEYPART}                              |
+{PRE}[fF][iI][xX][eE][dD][lL][iI][nN][eE]{KEYPART}                              |
+{PRE}[fF][lL][oO][aA][tT][iI][nN][gG][wW][iI][nN][dD][oO][wW]{KEYPART}          |
+{PRE}[hH][eE][lL][pP][bB][uU][tT][tT][oO][nN]{KEYPART}                          |
+{PRE}[iI][dD][lL][iI][sS][tT]{KEYPART}                                          |
+{PRE}[iI][mM][aA][gG][eE]{KEYPART}                                              |
+{PRE}[iI][mM][aA][gG][eE][lL][iI][sS][tT]{KEYPART}                              |
+{PRE}[iI][mM][aA][gG][eE][bB][uU][tT][tT][oO][nN]{KEYPART}                      |
+{PRE}[iI][mM][aA][gG][eE][rR][aA][dD][iI][oO][bB][uU][tT][tT][oO][nN]{KEYPART}  |
+{PRE}[iI][nN][fF][oO][bB][oO][xX]{KEYPART}                                      |
+{PRE}[iI][tT][eE][mM][lL][iI][sS][tT]{KEYPART}                                  |
+{PRE}[lL][iI][sS][tT][bB][oO][xX]{KEYPART}                                      |
+{PRE}[mM][eE][nN][uU]{KEYPART}                                                  |
+{PRE}[mM][eE][nN][uU][bB][uU][tT][tT][oO][nN]{KEYPART}                          |
+{PRE}[mM][eE][nN][uU][iI][tT][eE][mM]{KEYPART}                                  |
+{PRE}[mM][eE][tT][rR][iI][cC][fF][iI][eE][lL][dD]{KEYPART}                      |
+{PRE}[mM][oO][dD][aA][lL][dD][iI][aA][lL][oO][gG]{KEYPART}                      |
+{PRE}[mM][oO][dD][eE][lL][eE][sS][sS][dD][iI][aA][lL][oO][gG]{KEYPART}          |
+{PRE}[mM][uU][lL][tT][iI][lL][iI][nN][eE][eE][dD][iI][tT]{KEYPART}              |
+{PRE}[nN][uU][mM][eE][rR][iI][cC][fF][iI][eE][lL][dD]{KEYPART}                  |
+{PRE}[oO][kK][bB][uU][tT][tT][oO][nN]{KEYPART}                                  |
+{PRE}[pP][aA][gG][eE][iI][tT][eE][mM]{KEYPART}                                  |
+{PRE}[pP][aA][gG][eE][lL][iI][sS][tT]{KEYPART}                                  |
+{PRE}[pP][uU][sS][hH][bB][uU][tT][tT][oO][nN]{KEYPART}                          |
+{PRE}[qQ][uU][eE][rR][yY][bB][oO][xX]{KEYPART}                                  |
+{PRE}[rR][aA][dD][iI][oO][bB][uU][tT][tT][oO][nN]{KEYPART}                      |
+{PRE}[rR][eE][sS][oO][uU][rR][cC][eE]{KEYPART}                                  |
+{PRE}[sS][pP][iI][nN][fF][iI][eE][lL][dD]{KEYPART}                              |
+{PRE}[sS][tT][rR][iI][nN][gG]{KEYPART}                                          |
+{PRE}[sS][tT][rR][iI][nN][gG][aA][rR][rR][aA][yY]{KEYPART}                      |
+{PRE}[tT][aA][bB][cC][oO][nN][tT][rR][oO][lL]{KEYPART}                          |
+{PRE}[tT][aA][bB][dD][iI][aA][lL][oO][gG]{KEYPART}                              |
+{PRE}[tT][aA][bB][pP][aA][gG][eE]{KEYPART}                                      |
+{PRE}[tT][oO][oO][lL][bB][oO][xX]{KEYPART}                                      |
+{PRE}[tT][oO][oO][lL][bB][oO][xX][iI][tT][eE][mM]{KEYPART}                      |
+{PRE}[tT][rR][iI][sS][tT][aA][tT][eE][bB][oO][xX]{KEYPART}                      |
+{PRE}[wW][aA][rR][nN][iI][nN][gG][bB][oO][xX]{KEYPART}                          |
+{PRE}[wW][iI][nN][dD][oO][wW]{KEYPART}                                          {
+  LOCptr->pushKey(yytext, genSrc_lineno);
+}
+
+
+
+{PRE}[bB][iI][tT][mM][aA][pP]{NOKEYPART}                                          |   
+{PRE}[bB][uU][tT][tT][oO][nN][iI][mM][aA][gG][eE]{NOKEYPART}                      |
+{PRE}[cC][aA][nN][cC][eE][lL][bB][uU][tT][tT][oO][nN]{NOKEYPART}                  |
+{PRE}[cC][hH][eE][cC][kK][bB][oO][xX]{NOKEYPART}                                  |
+{PRE}[cC][oO][nN][tT][rR][oO][lL]{NOKEYPART}                                      |
+{PRE}[cC][oO][mM][bB][oO][bB][oO][xX]{NOKEYPART}                                  |
+{PRE}[eE][dD][iI][tT]{NOKEYPART}                                                  |
+{PRE}[eE][rR][rR][oO][rR][bB][oO][xX]{NOKEYPART}                                  |
+{PRE}[fF][iI][xX][eE][dD][tT][eE][xX][tT]{NOKEYPART}                              |
+{PRE}[fF][iI][xX][eE][dD][lL][iI][nN][eE]{NOKEYPART}                              |
+{PRE}[fF][lL][oO][aA][tT][iI][nN][gG][wW][iI][nN][dD][oO][wW]{NOKEYPART}          |
+{PRE}[hH][eE][lL][pP][bB][uU][tT][tT][oO][nN]{NOKEYPART}                          |
+{PRE}[iI][dD][lL][iI][sS][tT]{NOKEYPART}                                          |
+{PRE}[iI][mM][aA][gG][eE]{NOKEYPART}                                              |
+{PRE}[iI][mM][aA][gG][eE][bB][uU][tT][tT][oO][nN]{NOKEYPART}                      |
+{PRE}[iI][mM][aA][gG][eE][rR][aA][dD][iI][oO][bB][uU][tT][tT][oO][nN]{NOKEYPART}  |
+{PRE}[iI][mM][aA][gG][eE][lL][iI][sS][tT]{NOKEYPART}                              |
+{PRE}[iI][nN][fF][oO][bB][oO][xX]{NOKEYPART}                                      |
+{PRE}[iI][tT][eE][mM][lL][iI][sS][tT]{NOKEYPART}                                  |
+{PRE}[lL][iI][sS][tT][bB][oO][xX]{NOKEYPART}                                      |
+{PRE}[mM][eE][nN][uU]{NOKEYPART}                                                  |
+{PRE}[mM][eE][nN][uU][bB][uU][tT][tT][oO][nN]{NOKEYPART}                          |
+{PRE}[mM][eE][nN][uU][iI][tT][eE][mM]{NOKEYPART}                                  |
+{PRE}[mM][eE][tT][rR][iI][cC][fF][iI][eE][lL][dD]{NOKEYPART}                      |
+{PRE}[mM][oO][dD][aA][lL][dD][iI][aA][lL][oO][gG]{NOKEYPART}                      |
+{PRE}[mM][oO][dD][eE][lL][eE][sS][sS][dD][iI][aA][lL][oO][gG]{NOKEYPART}          |
+{PRE}[mM][uU][lL][tT][iI][lL][iI][nN][eE][eE][dD][iI][tT]{NOKEYPART}              |
+{PRE}[nN][uU][mM][eE][rR][iI][cC][fF][iI][eE][lL][dD]{NOKEYPART}                  |
+{PRE}[oO][kK][bB][uU][tT][tT][oO][nN]{NOKEYPART}                                  |
+{PRE}[pP][aA][gG][eE][iI][tT][eE][mM]{NOKEYPART}                                  |
+{PRE}[pP][aA][gG][eE][lL][iI][sS][tT]{NOKEYPART}                                  |
+{PRE}[pP][uU][sS][hH][bB][uU][tT][tT][oO][nN]{NOKEYPART}                          |
+{PRE}[qQ][uU][eE][rR][yY][bB][oO][xX]{NOKEYPART}                                  |
+{PRE}[rR][aA][dD][iI][oO][bB][uU][tT][tT][oO][nN]{NOKEYPART}                      |
+{PRE}[rR][eE][sS][oO][uU][rR][cC][eE]{NOKEYPART}                                  |
+{PRE}[sS][pP][iI][nN][fF][iI][eE][lL][dD]{NOKEYPART}                              |
+{PRE}[sS][tT][rR][iI][nN][gG]{NOKEYPART}                                          |
+{PRE}[sS][tT][rR][iI][nN][gG][aA][rR][rR][aA][yY]{NOKEYPART}                      |
+{PRE}[tT][aA][bB][cC][oO][nN][tT][rR][oO][lL]{NOKEYPART}                          |
+{PRE}[tT][aA][bB][dD][iI][aA][lL][oO][gG]{NOKEYPART}                              |
+{PRE}[tT][aA][bB][pP][aA][gG][eE]{NOKEYPART}                                      |
+{PRE}[tT][oO][oO][lL][bB][oO][xX]{NOKEYPART}                                      |
+{PRE}[tT][oO][oO][lL][bB][oO][xX][iI][tT][eE][mM]{NOKEYPART}                      |
+{PRE}[tT][rR][iI][sS][tT][aA][tT][eE][bB][oO][xX]{NOKEYPART}                      |
+{PRE}[wW][aA][rR][nN][iI][nN][gG][bB][oO][xX]{NOKEYPART}                          |
+{PRE}[wW][iI][nN][dD][oO][wW]{NOKEYPART}                                          {
+  LOCptr->pushNoKey(yytext, genSrc_lineno);
 }
 
 [hH][eE][lL][pP][iI][dD]{REGKEYPART} {
-  LOCptr->registerHelpKey(yytext);
+  LOCptr->registerHelpKey(yytext, genSrc_lineno);
 }
 
 [iI][dD][eE][nN][tT][iI][fF][iI][eE][rR]{REGKEYPART} {
-  LOCptr->registerIdentKey(yytext);
+  LOCptr->registerIdentKey(yytext, genSrc_lineno);
 }
 
 [cC][uU][sS][tT][oO][mM][uU][nN][iI][tT][tT][eE][xX][tT]{SAVEKEYPART} |
@@ -170,30 +182,30 @@ SAVEITEMPART {GENSAVEPART}[ \t\n]*[\\]*"
 [qQ][uU][iI][cC][kK][hH][eE][lL][pP][tT][eE][xX][tT]{SAVEKEYPART}     |
 [tT][eE][xX][tT]{SAVEKEYPART}                                         |
 [tT][iI][tT][lL][eE]{SAVEKEYPART}                                     {
-  LOCptr->saveData(yytext);
+  LOCptr->saveData(yytext, genSrc_lineno);
 }
 
 [iI][tT][eE][mM][lL][iI][sS][tT]{SAVEITEMPART}          |
 [sS][tT][rR][iI][nN][gG][lL][iI][sS][tT]{SAVEITEMPART}  {
-  LOCptr->saveItemList(yytext);
+  LOCptr->saveItemList(yytext, genSrc_lineno);
 }
 
 "}"[ ]*";" {
-  LOCptr->popKey(yytext);
+  LOCptr->popKey(yytext, genSrc_lineno);
 }
 
 "{" {
-  LOCptr->pushPlaceHolder(yytext);
+  LOCptr->pushPlaceHolder(yytext, genSrc_lineno);
 }
 
 "#define"[ \t]+[a-zA-Z_]+[ \t]+\\\n {
-  LOCptr->startDefine(yytext);
+  LOCptr->startDefine(yytext, genSrc_lineno);
 }
 
 "#define"[^\\\n]+\n |
 "//".*\n            |
 .|\n                {
-  LOCptr->collectData(yytext);
+  LOCptr->collectData(yytext, genSrc_lineno);
 }
 
 %%

Modified: openoffice/branches/l10n/main/l10ntools/source/gConUlf.hxx
URL: http://svn.apache.org/viewvc/openoffice/branches/l10n/main/l10ntools/source/gConUlf.hxx?rev=1447022&r1=1447021&r2=1447022&view=diff
==============================================================================
--- openoffice/branches/l10n/main/l10ntools/source/gConUlf.hxx (original)
+++ openoffice/branches/l10n/main/l10ntools/source/gConUlf.hxx Sun Feb 17 13:50:31 2013
@@ -39,8 +39,8 @@ class convert_ulf : public convert_gen_i
     convert_ulf(l10nMem& crMemory);
     ~convert_ulf();
 
-	void setKey(char *syyText);
-	void setText(char *syyText);
+	void setKey(char *syyText, int iLineNo);
+	void setText(char *syyText, int iLineNo);
 
   private:
 	std::string msKey;

Modified: openoffice/branches/l10n/main/l10ntools/source/gConUlfWrap.cxx
URL: http://svn.apache.org/viewvc/openoffice/branches/l10n/main/l10ntools/source/gConUlfWrap.cxx?rev=1447022&r1=1447021&r2=1447022&view=diff
==============================================================================
--- openoffice/branches/l10n/main/l10ntools/source/gConUlfWrap.cxx (original)
+++ openoffice/branches/l10n/main/l10ntools/source/gConUlfWrap.cxx Sun Feb 17 13:50:31 2013
@@ -58,9 +58,9 @@ void convert_ulf::execute()
 
 
 /**********************   I M P L E M E N T A T I O N   **********************/
-void convert_ulf::setKey(char *syyText)
+void convert_ulf::setKey(char *syyText, int iLineno)
 {
-  std::string sText = copySource(syyText);
+  std::string sText = copySource(syyText, iLineno);
 
   // locate key (is any)
   msKey = sText.substr(1,sText.size()-2);
@@ -69,18 +69,17 @@ void convert_ulf::setKey(char *syyText)
 
 
 /**********************   I M P L E M E N T A T I O N   **********************/
-void convert_ulf::setText(char *syyText)
+void convert_ulf::setText(char *syyText, int iLineno)
 {
-  std::string sText = copySource(syyText);
-  int         nL, nE;
+  std::string useText, sText = copySource(syyText, iLineno);
+  int         nL;
 
 
   // isolate text
-  nL = sText.find("\"");
+  nL = sText.find("=");
   if (nL == (int)std::string::npos)
 	return;
-  nE = sText.rfind("\"");
-  sText = sText.substr(nL+1,nE - nL -1);
+  isolateText(sText,  nL+1, &nL, useText);
 
   if (mbMergeMode)
   {
@@ -100,5 +99,5 @@ void convert_ulf::setText(char *syyText)
     }
   }
   else
-    mcMemory.setEnUsKey(msKey, std::string("dummy"), msCollector);
+    mcMemory.setEnUsKey(msKey, std::string("LngText"), useText);
 }

Modified: openoffice/branches/l10n/main/l10ntools/source/gConUlflex.l
URL: http://svn.apache.org/viewvc/openoffice/branches/l10n/main/l10ntools/source/gConUlflex.l?rev=1447022&r1=1447021&r2=1447022&view=diff
==============================================================================
--- openoffice/branches/l10n/main/l10ntools/source/gConUlflex.l (original)
+++ openoffice/branches/l10n/main/l10ntools/source/gConUlflex.l Sun Feb 17 13:50:31 2013
@@ -60,14 +60,14 @@
 %%
 
 "["[^\]]*"]" {
-  LOCptr->setKey(yytext);
+  LOCptr->setKey(yytext, genulf_lineno);
 }
 
 "en-US"[ ]*"="[^\n]* {
-  LOCptr->setText(yytext);
+  LOCptr->setText(yytext, genulf_lineno);
 }
   
 .|\n {
-  IMPLptr->collectData(yytext);
+  IMPLptr->collectData(yytext, genulf_lineno);
 }
 %%

Modified: openoffice/branches/l10n/main/l10ntools/source/gConXcs.hxx
URL: http://svn.apache.org/viewvc/openoffice/branches/l10n/main/l10ntools/source/gConXcs.hxx?rev=1447022&r1=1447021&r2=1447022&view=diff
==============================================================================
--- openoffice/branches/l10n/main/l10ntools/source/gConXcs.hxx (original)
+++ openoffice/branches/l10n/main/l10ntools/source/gConXcs.hxx Sun Feb 17 13:50:31 2013
@@ -39,10 +39,10 @@ class convert_xcs : public convert_gen_i
     convert_xcs(l10nMem& crMemory);
     ~convert_xcs();
 
-	void setKey(char *syyText);
-	void unsetKey(char *syyText);
-	void startCollectData(char *syyText);
-    void stopCollectData(char *syyText);
+	void setKey(char *syyText, int iLineNo);
+	void unsetKey(char *syyText, int iLineNo);
+	void startCollectData(char *syyText, int iLineNo);
+    void stopCollectData(char *syyText, int iLineNo);
 
   private:
 	std::string msKey;

Modified: openoffice/branches/l10n/main/l10ntools/source/gConXcsWrap.cxx
URL: http://svn.apache.org/viewvc/openoffice/branches/l10n/main/l10ntools/source/gConXcsWrap.cxx?rev=1447022&r1=1447021&r2=1447022&view=diff
==============================================================================
--- openoffice/branches/l10n/main/l10ntools/source/gConXcsWrap.cxx (original)
+++ openoffice/branches/l10n/main/l10ntools/source/gConXcsWrap.cxx Sun Feb 17 13:50:31 2013
@@ -69,10 +69,10 @@ void convert_xcs::execute()
 
 
 /**********************   I M P L E M E N T A T I O N   **********************/
-void convert_xcs::setKey(char *syyText)
+void convert_xcs::setKey(char *syyText, int iLineno)
 {
   int    nL;
-  std::string sHead, sText = copySource(syyText);
+  std::string sHead, sText = copySource(syyText, iLineno);
 
   // is it to be translated
   if (sText.find("oor:localized=") == std::string::npos)
@@ -90,17 +90,17 @@ void convert_xcs::setKey(char *syyText)
 
 
 /**********************   I M P L E M E N T A T I O N   **********************/
-void convert_xcs::unsetKey(char *syyText)
+void convert_xcs::unsetKey(char *syyText, int iLineno)
 {
-  copySource(syyText);
+  copySource(syyText, iLineno);
 }
 
 
 
 /**********************   I M P L E M E N T A T I O N   **********************/
-void convert_xcs::startCollectData(char *syyText)
+void convert_xcs::startCollectData(char *syyText, int iLineno)
 {
-  copySource(syyText);
+  copySource(syyText, iLineno);
   if (!msKey.size())
 	return;
 }
@@ -108,9 +108,9 @@ void convert_xcs::startCollectData(char 
 
 
 /**********************   I M P L E M E N T A T I O N   **********************/
-void convert_xcs::stopCollectData(char *syyText)
+void convert_xcs::stopCollectData(char *syyText, int iLineno)
 {
-  std::string sHead, sKey, sLang, sText, sCollectedText = copySource(syyText, false);
+  std::string sHead, sKey, sLang, sText, sCollectedText = copySource(syyText, iLineno, false);
   int    nL;
 
 

Modified: openoffice/branches/l10n/main/l10ntools/source/gConXcslex.l
URL: http://svn.apache.org/viewvc/openoffice/branches/l10n/main/l10ntools/source/gConXcslex.l?rev=1447022&r1=1447021&r2=1447022&view=diff
==============================================================================
--- openoffice/branches/l10n/main/l10ntools/source/gConXcslex.l (original)
+++ openoffice/branches/l10n/main/l10ntools/source/gConXcslex.l Sun Feb 17 13:50:31 2013
@@ -60,22 +60,22 @@
 %%
 
 "<prop"[^>]*> {
-  LOCptr->setKey(yytext);
+  LOCptr->setKey(yytext, genxcs_lineno);
 }
 
 "</prop>" {
-  LOCptr->unsetKey(yytext);
+  LOCptr->unsetKey(yytext, genxcs_lineno);
 }
   
 "<value"[^>]*> {
-  LOCptr->startCollectData(yytext);
+  LOCptr->startCollectData(yytext, genxcs_lineno);
 }
 
 "</value>" {
-  LOCptr->stopCollectData(yytext);
+  LOCptr->stopCollectData(yytext, genxcs_lineno);
 }
 
 .|\n {
-  IMPLptr->collectData(yytext);
+  IMPLptr->collectData(yytext, genxcs_lineno);
 }
 %%

Modified: openoffice/branches/l10n/main/l10ntools/source/gConXcu.hxx
URL: http://svn.apache.org/viewvc/openoffice/branches/l10n/main/l10ntools/source/gConXcu.hxx?rev=1447022&r1=1447021&r2=1447022&view=diff
==============================================================================
--- openoffice/branches/l10n/main/l10ntools/source/gConXcu.hxx (original)
+++ openoffice/branches/l10n/main/l10ntools/source/gConXcu.hxx Sun Feb 17 13:50:31 2013
@@ -41,14 +41,15 @@ class convert_xcu : public convert_gen_i
     convert_xcu(l10nMem& crMemory);
     ~convert_xcu();
 
-    void pushKeyPart(TAG_TYPE eIsNode, char *syyText);
-    void popKeyPart (TAG_TYPE eIsNode, char *syyText);
+    void pushKeyPart(TAG_TYPE eIsNode, char *syyText, int iLineNo);
+    void popKeyPart (TAG_TYPE eIsNode, char *syyText, int iLineNo);
 
-    void startCollectData(char *syyText);
-    void stopCollectData(char *syyText);
+    void startCollectData(char *syyText, int iLineNo);
+    void stopCollectData(char *syyText, int iLineNo);
 
   private:
     std::vector<std::string> mcStack;
+	std::string              msObj;
 	bool                     mbCollectingData;
 
 

Modified: openoffice/branches/l10n/main/l10ntools/source/gConXcuWrap.cxx
URL: http://svn.apache.org/viewvc/openoffice/branches/l10n/main/l10ntools/source/gConXcuWrap.cxx?rev=1447022&r1=1447021&r2=1447022&view=diff
==============================================================================
--- openoffice/branches/l10n/main/l10ntools/source/gConXcuWrap.cxx (original)
+++ openoffice/branches/l10n/main/l10ntools/source/gConXcuWrap.cxx Sun Feb 17 13:50:31 2013
@@ -67,9 +67,9 @@ void convert_xcu::execute()
 
 
 /**********************   I M P L E M E N T A T I O N   **********************/
-void convert_xcu::pushKeyPart(TAG_TYPE bIsNode, char *syyText)
+void convert_xcu::pushKeyPart(TAG_TYPE bIsNode, char *syyText, int iLineno)
 {
-  std::string sKey, sTag = copySource(syyText);
+  std::string sKey, sTag = copySource(syyText, iLineno);
   int    nL, nE;
 
   // find key in tag
@@ -90,9 +90,9 @@ void convert_xcu::pushKeyPart(TAG_TYPE b
 
 
 /**********************   I M P L E M E N T A T I O N   **********************/
-void convert_xcu::popKeyPart(TAG_TYPE bIsNode, char *syyText)
+void convert_xcu::popKeyPart(TAG_TYPE bIsNode, char *syyText, int iLineno)
 {
-  copySource(syyText);
+  copySource(syyText, iLineno);
 
   // check for correct node/prop relations
   if (mcStack.size())
@@ -102,9 +102,14 @@ void convert_xcu::popKeyPart(TAG_TYPE bI
 
 
 /**********************   I M P L E M E N T A T I O N   **********************/
-void convert_xcu::startCollectData(char *syyText)
+void convert_xcu::startCollectData(char *syyText, int iLineno)
 {
-  copySource(syyText);
+  int nL;
+  std::string sTag = copySource(syyText, iLineno);
+
+  // locate object name
+  for (nL = 1; sTag[nL] != ' '; ++nL) ;
+  msObj = sTag.substr(1,nL-1);
 
   mbCollectingData = true;
 }
@@ -112,12 +117,12 @@ void convert_xcu::startCollectData(char 
 
 
 /**********************   I M P L E M E N T A T I O N   **********************/
-void convert_xcu::stopCollectData(char *syyText)
+void convert_xcu::stopCollectData(char *syyText, int iLineno)
 {
   int    nL;
-  std::string useKey;
-
-  copySource(syyText);
+  std::string useKey, useText = msCollector;
+  
+  copySource(syyText, iLineno);
 
   // time to do something ?
   if (!mbCollectingData)
@@ -127,7 +132,7 @@ void convert_xcu::stopCollectData(char *
   // locate key and extract it
   for (nL = 0; nL < (int)mcStack.size(); ++nL)
 	useKey += (nL > 0 ? "." : "") + mcStack[nL];
-
+  
   if (mbMergeMode)
   {
     // get all languages (includes en-US)
@@ -143,5 +148,5 @@ void convert_xcu::stopCollectData(char *
     }
   }
   else
-    mcMemory.setEnUsKey(useKey, std::string("dummy"), msCollector);
+    mcMemory.setEnUsKey(useKey, msObj, useText);
 }  

Modified: openoffice/branches/l10n/main/l10ntools/source/gConXculex.l
URL: http://svn.apache.org/viewvc/openoffice/branches/l10n/main/l10ntools/source/gConXculex.l?rev=1447022&r1=1447021&r2=1447022&view=diff
==============================================================================
--- openoffice/branches/l10n/main/l10ntools/source/gConXculex.l (original)
+++ openoffice/branches/l10n/main/l10ntools/source/gConXculex.l Sun Feb 17 13:50:31 2013
@@ -60,39 +60,39 @@
 %%
 
 "<oor:component-data "[^>]*> {
-  LOCptr->pushKeyPart(convert_xcu::TAG_COMPONENT, yytext);
+  LOCptr->pushKeyPart(convert_xcu::TAG_COMPONENT, yytext, genxcu_lineno);
 }
 
 
 "</oor:component-data>" {
-  LOCptr->popKeyPart(convert_xcu::TAG_COMPONENT, yytext);
+  LOCptr->popKeyPart(convert_xcu::TAG_COMPONENT, yytext, genxcu_lineno);
 }
 
 "<prop oor:name=\""[^\"]*\" {
-  LOCptr->pushKeyPart(convert_xcu::TAG_PROP, yytext);
+  LOCptr->pushKeyPart(convert_xcu::TAG_PROP, yytext, genxcu_lineno);
 }
 
 "</prop>" {
-  LOCptr->popKeyPart(convert_xcu::TAG_PROP, yytext);
+  LOCptr->popKeyPart(convert_xcu::TAG_PROP, yytext, genxcu_lineno);
 }
 
 "<node oor:name=\""[^\"]*\" {
-  LOCptr->pushKeyPart(convert_xcu::TAG_NODE, yytext);
+  LOCptr->pushKeyPart(convert_xcu::TAG_NODE, yytext, genxcu_lineno);
 }
 
 "</node>" {
-  LOCptr->popKeyPart(convert_xcu::TAG_NODE, yytext);
+  LOCptr->popKeyPart(convert_xcu::TAG_NODE, yytext, genxcu_lineno);
 }
   
 "<value xml:lang=\""[^\"]*\"[^>]*">" {
-  LOCptr->startCollectData(yytext);
+  LOCptr->startCollectData(yytext, genxcu_lineno);
 }
 
 "</value>" {
-  LOCptr->stopCollectData(yytext);
+  LOCptr->stopCollectData(yytext, genxcu_lineno);
 }
 
 .|\n {
-  IMPLptr->collectData(yytext);
+  IMPLptr->collectData(yytext, genxcu_lineno);
 }
 %%

Modified: openoffice/branches/l10n/main/l10ntools/source/gConXhp.hxx
URL: http://svn.apache.org/viewvc/openoffice/branches/l10n/main/l10ntools/source/gConXhp.hxx?rev=1447022&r1=1447021&r2=1447022&view=diff
==============================================================================
--- openoffice/branches/l10n/main/l10ntools/source/gConXhp.hxx (original)
+++ openoffice/branches/l10n/main/l10ntools/source/gConXhp.hxx Sun Feb 17 13:50:31 2013
@@ -39,8 +39,8 @@ class convert_xhp : public convert_gen_i
     convert_xhp(l10nMem& crMemory);
     ~convert_xhp();
 
-    void startCollectData(std::string sType, std::string& sCollectedText);
-    void stopCollectData(std::string sType, std::string& sCollectedText);
+    void startCollectData(std::string sType, std::string& sCollectedText, int iLineNo);
+    void stopCollectData(std::string sType, std::string& sCollectedText, int iLineNo);
 
   private:
 	std::string msMergeType;

Modified: openoffice/branches/l10n/main/l10ntools/source/gConXhpWrap.cxx
URL: http://svn.apache.org/viewvc/openoffice/branches/l10n/main/l10ntools/source/gConXhpWrap.cxx?rev=1447022&r1=1447021&r2=1447022&view=diff
==============================================================================
--- openoffice/branches/l10n/main/l10ntools/source/gConXhpWrap.cxx (original)
+++ openoffice/branches/l10n/main/l10ntools/source/gConXhpWrap.cxx Sun Feb 17 13:50:31 2013
@@ -70,7 +70,7 @@ void convert_xhp::execute()
 
 
 /**********************   I M P L E M E N T A T I O N   **********************/
-void convert_xhp::startCollectData(std::string sType, std::string& sCollectedText)
+void convert_xhp::startCollectData(std::string sType, std::string& sCollectedText, int iLineno)
 {
   if (mbMergeMode)
     writeSourceFile(msCollector+sCollectedText);
@@ -88,7 +88,7 @@ void convert_xhp::startCollectData(std::
 
 
 /**********************   I M P L E M E N T A T I O N   **********************/
-void convert_xhp::stopCollectData(std::string sType, std::string& sCollectedText)
+void convert_xhp::stopCollectData(std::string sType, std::string& sCollectedText, int iLineno)
 {
   std::string sKey;
   int    nL;

Modified: openoffice/branches/l10n/main/l10ntools/source/gConXhplex.l
URL: http://svn.apache.org/viewvc/openoffice/branches/l10n/main/l10ntools/source/gConXhplex.l?rev=1447022&r1=1447021&r2=1447022&view=diff
==============================================================================
--- openoffice/branches/l10n/main/l10ntools/source/gConXhplex.l (original)
+++ openoffice/branches/l10n/main/l10ntools/source/gConXhplex.l Sun Feb 17 13:50:31 2013
@@ -61,37 +61,37 @@
 
 "<title"[^>]*> {
   std::string text(yytext);
-  LOCptr->startCollectData(text.substr(1,5), text);
+  LOCptr->startCollectData(text.substr(1,5), text, genXhp_lineno);
 }
 
 "<bookmark "[^>]*> {
   std::string text(yytext);
-  LOCptr->startCollectData(text.substr(1,8), text);
+  LOCptr->startCollectData(text.substr(1,8), text, genXhp_lineno);
 }
 
 "<paragraph"[^>]*> {
   std::string text(yytext);
-  LOCptr->startCollectData(text.substr(1,9), text);
+  LOCptr->startCollectData(text.substr(1,9), text, genXhp_lineno);
 }
 
 "</paragraph>" {
   std::string text(yytext);
-  LOCptr->stopCollectData(text.substr(2,9), text);
+  LOCptr->stopCollectData(text.substr(2,9), text, genXhp_lineno);
 }
 
 "</bookmark>" {
   std::string text(yytext);
-  LOCptr->stopCollectData(text.substr(2,8), text);
+  LOCptr->stopCollectData(text.substr(2,8), text, genXhp_lineno);
 }
 
 "</title>" {
   std::string text(yytext);
-  LOCptr->stopCollectData(text.substr(2,5), text);
+  LOCptr->stopCollectData(text.substr(2,5), text, genXhp_lineno);
 }
 
 .|\n {
   std::string text(yytext);
-  IMPLptr->collectData(yytext);
+  IMPLptr->collectData(yytext, genXhp_lineno);
 }
 
 

Modified: openoffice/branches/l10n/main/l10ntools/source/gConXrm.hxx
URL: http://svn.apache.org/viewvc/openoffice/branches/l10n/main/l10ntools/source/gConXrm.hxx?rev=1447022&r1=1447021&r2=1447022&view=diff
==============================================================================
--- openoffice/branches/l10n/main/l10ntools/source/gConXrm.hxx (original)
+++ openoffice/branches/l10n/main/l10ntools/source/gConXrm.hxx Sun Feb 17 13:50:31 2013
@@ -39,8 +39,8 @@ class convert_xrm : public convert_gen_i
     convert_xrm(l10nMem& crMemory);
     ~convert_xrm();
 
-    void startCollectData(std::string sType, std::string& sCollectedText);
-    void stopCollectData(std::string sType, std::string& sCollectedText);
+    void startCollectData(std::string sType, std::string& sCollectedText, int iLineNo);
+    void stopCollectData(std::string sType, std::string& sCollectedText, int iLineNo);
 
   private:
 	std::string msTag;

Modified: openoffice/branches/l10n/main/l10ntools/source/gConXrmWrap.cxx
URL: http://svn.apache.org/viewvc/openoffice/branches/l10n/main/l10ntools/source/gConXrmWrap.cxx?rev=1447022&r1=1447021&r2=1447022&view=diff
==============================================================================
--- openoffice/branches/l10n/main/l10ntools/source/gConXrmWrap.cxx (original)
+++ openoffice/branches/l10n/main/l10ntools/source/gConXrmWrap.cxx Sun Feb 17 13:50:31 2013
@@ -70,7 +70,7 @@ void convert_xrm::execute()
 
 
 /**********************   I M P L E M E N T A T I O N   **********************/
-void convert_xrm::startCollectData(std::string sType, std::string& sCollectedText)
+void convert_xrm::startCollectData(std::string sType, std::string& sCollectedText, int iLineno)
 {
   if (mbMergeMode)
     writeSourceFile(msCollector+sCollectedText);
@@ -84,7 +84,7 @@ void convert_xrm::startCollectData(std::
 
 
 /**********************   I M P L E M E N T A T I O N   **********************/
-void convert_xrm::stopCollectData(std::string sType, std::string& sCollectedText)
+void convert_xrm::stopCollectData(std::string sType, std::string& sCollectedText, int iLineno)
 {
   std::string sKey;
   int    nL;

Modified: openoffice/branches/l10n/main/l10ntools/source/gConXrmlex.l
URL: http://svn.apache.org/viewvc/openoffice/branches/l10n/main/l10ntools/source/gConXrmlex.l?rev=1447022&r1=1447021&r2=1447022&view=diff
==============================================================================
--- openoffice/branches/l10n/main/l10ntools/source/gConXrmlex.l (original)
+++ openoffice/branches/l10n/main/l10ntools/source/gConXrmlex.l Sun Feb 17 13:50:31 2013
@@ -61,26 +61,26 @@
 
 "<p"[^>]*> {
   std::string text(yytext);
-  LOCptr->startCollectData(text.substr(1,1), text);
+  LOCptr->startCollectData(text.substr(1,1), text, genXrm_lineno);
 }
 
 "<h"[0-9][^>]*> {
   std::string text(yytext);
-  LOCptr->startCollectData(text.substr(1,2), text);
+  LOCptr->startCollectData(text.substr(1,2), text, genXrm_lineno);
 }
 
 "</p>" {
   std::string text(yytext);
-  LOCptr->stopCollectData(text.substr(2,1), text);
+  LOCptr->stopCollectData(text.substr(2,1), text, genXrm_lineno);
 }
 
 "</h"[0-9]> {
   std::string text(yytext);
-  LOCptr->stopCollectData(text.substr(2,2), text);
+  LOCptr->stopCollectData(text.substr(2,2), text, genXrm_lineno);
 }
 
 .|\n {
-  IMPLptr->collectData(yytext);
+  IMPLptr->collectData(yytext, genXrm_lineno);
 }