Index: inc/export.hxx
===================================================================
RCS file: /cvs/l10n/transex3/inc/export.hxx,v
retrieving revision 1.18
retrieving revision 1.18.12.1
diff -u -r1.18 -r1.18.12.1
--- inc/export.hxx	8 Apr 2006 09:56:45 -0000	1.18
+++ inc/export.hxx	10 Jul 2006 15:07:13 -0000	1.18.12.1
@@ -439,7 +439,8 @@
                     const ByteString &nId ,
                     const ByteString &rText,
 					const ByteString &rQuickHelpText,
-					const ByteString &rTitle )
+					const ByteString &rTitle 
+                    )
 		{
 			
 			sText[ nId ] = rText;
@@ -505,23 +506,25 @@
     
 
 public:
-    MergeDataFile( const ByteString &rFileName, const ByteString& rFile , BOOL bErrLog, CharSet aCharSet, BOOL bUTF8 );
+    MergeDataFile( const ByteString &rFileName, const ByteString& rFile , BOOL bErrLog, CharSet aCharSet, BOOL bUTF8 , bool bCaseSensitive = false );
 	~MergeDataFile();
     
     
 	std::vector<ByteString> GetLanguages();
-	MergeData *GetMergeData( ResData *pResData );
+	MergeData *GetMergeData( ResData *pResData , bool bCaseSensitve = false );
 	
     PFormEntrys *GetPFormEntrys( ResData *pResData );
+    PFormEntrys *GetPFormEntrysCaseSensitive( ResData *pResData );
+
 	void InsertEntry( const ByteString &rTYP, const ByteString &rGID, const ByteString &rLID,
 				const ByteString &rPFO, 
                 const ByteString &nLang , const ByteString &rTEXT,
 				const ByteString &rQHTEXT, const ByteString &rTITLE , 
-                const ByteString &sFilename 
+                const ByteString &sFilename , bool bCaseSensitive 
 				);
 	static USHORT GetLangIndex( USHORT nId );
-	static ByteString CreateKey( const ByteString& rTYP , const ByteString& rGID , const ByteString& rLID , const ByteString& rFilename //= ByteString("")
-		);
+	static ByteString CreateKey( const ByteString& rTYP , const ByteString& rGID , const ByteString& rLID , const ByteString& rFilename , bool bCaseSensitive = false );
+
 	ByteString Dump();
 	void WriteErrorLog( const ByteString &rFileName );
 	void WriteError( const ByteString &rLine );
Index: source/cfgmerge.cxx
===================================================================
RCS file: /cvs/l10n/transex3/source/cfgmerge.cxx,v
retrieving revision 1.38
retrieving revision 1.38.16.1
diff -u -r1.38 -r1.38.16.1
--- source/cfgmerge.cxx	29 Mar 2006 13:26:12 -0000	1.38
+++ source/cfgmerge.cxx	10 Jul 2006 15:07:13 -0000	1.38.16.1
@@ -815,7 +815,9 @@
 {
     if ( rMergeSource.Len()){
 		pMergeDataFile = new MergeDataFile(
-			rMergeSource, sInputFileName  , bErrorLog, RTL_TEXTENCODING_MS_1252, bUTF8 );
+			rMergeSource, sInputFileName  , bErrorLog, RTL_TEXTENCODING_MS_1252, bUTF8 , true ); 
+			//rMergeSource, sInputFileName  , bErrorLog, RTL_TEXTENCODING_MS_1252, bUTF8  );
+        //pMergeDataFile->Dump();
         if( Export::sLanguages.EqualsIgnoreCaseAscii("ALL") ){
             Export::SetLanguages( pMergeDataFile->GetLanguages() );
             aLanguages = pMergeDataFile->GetLanguages();
@@ -872,7 +874,7 @@
 		if (( nLangIndex.EqualsIgnoreCaseAscii("en-US") ))
 			bEnglish = TRUE;
 
-		PFormEntrys *pEntrys = pMergeDataFile->GetPFormEntrys( pResData );
+		PFormEntrys *pEntrys = pMergeDataFile->GetPFormEntrysCaseSensitive( pResData );
 		if ( pEntrys ) {
 			ByteString sContent;
             pEntrys->GetText( sContent, STRING_TYP_TEXT, nLangIndex );
@@ -908,7 +910,7 @@
 {
 
 	if ( pMergeDataFile && pResData && bLocalize && (( bGerman && bEnglish ) || bForce )) {
-		PFormEntrys *pEntrys = pMergeDataFile->GetPFormEntrys( pResData );
+		PFormEntrys *pEntrys = pMergeDataFile->GetPFormEntrysCaseSensitive( pResData );
 		if ( pEntrys ) {
             ByteString sCur;
 
Index: source/merge.cxx
===================================================================
RCS file: /cvs/l10n/transex3/source/merge.cxx,v
retrieving revision 1.23
retrieving revision 1.23.16.1
diff -u -r1.23 -r1.23.16.1
--- source/merge.cxx	29 Mar 2006 13:27:32 -0000	1.23
+++ source/merge.cxx	10 Jul 2006 15:07:14 -0000	1.23.16.1
@@ -201,7 +201,7 @@
 }*/
 /*****************************************************************************/
 MergeDataFile::MergeDataFile( const ByteString &rFileName, const ByteString& sFile ,BOOL bErrLog,
-							CharSet aCharSet, BOOL bUTF8 )
+							CharSet aCharSet, BOOL bUTF8 , bool bCaseSensitive )
 /*****************************************************************************/
 				: bErrorLog( bErrLog )
 {
@@ -257,7 +257,7 @@
 #else
                 if (  !nLANG.EqualsIgnoreCaseAscii("en-US")  ){
 #endif
-				    InsertEntry( sTYP, sGID, sLID, sPFO, nLANG, sTEXT, sQHTEXT, sTITLE , filename );
+				    InsertEntry( sTYP, sGID, sLID, sPFO, nLANG, sTEXT, sQHTEXT, sTITLE , filename , bCaseSensitive );
                     if( nLANG.Len() > 0 ){
                         bool bFound = false;
                         for( int x = 0; x < aLanguages.size(); x++ ){
@@ -330,7 +330,7 @@
 }
 
 /*****************************************************************************/
-MergeData *MergeDataFile::GetMergeData( ResData *pResData )
+MergeData *MergeDataFile::GetMergeData( ResData *pResData , bool bCaseSensitive )
 /*****************************************************************************/
 {
 	ByteString sOldG = pResData->sGId;
@@ -344,7 +344,7 @@
 	pResData->sGId = sGID;
 	pResData->sId = sLID;
 
-    ByteString sKey = CreateKey( pResData->sResTyp , pResData->sGId , pResData->sId , pResData->sFilename );
+    ByteString sKey = CreateKey( pResData->sResTyp , pResData->sGId , pResData->sId , pResData->sFilename , bCaseSensitive );
     
 	//printf("DBG: Searching [%s]\n",sKey.GetBuffer());
     if( aMap.find( sKey ) != aMap.end() ){
@@ -372,12 +372,22 @@
 }
 
 /*****************************************************************************/
+PFormEntrys *MergeDataFile::GetPFormEntrysCaseSensitive( ResData *pResData )
+/*****************************************************************************/
+{
+	// search for requested PFormEntrys
+	MergeData *pData = GetMergeData( pResData , true );
+	if ( pData )
+		return pData->GetPFormEntrys( pResData );
+	return NULL;
+}
+/*****************************************************************************/
 void MergeDataFile::InsertEntry(
 					const ByteString &rTYP, const ByteString &rGID,
 					const ByteString &rLID, const ByteString &rPFO,
 					const ByteString &nLANG, const ByteString &rTEXT,
 					const ByteString &rQHTEXT, const ByteString &rTITLE ,
-                    const ByteString &rFilename
+                    const ByteString &rFilename , bool bCaseSensitive
                     )
 /*****************************************************************************/
 {
@@ -385,14 +395,15 @@
 	BOOL bFound = FALSE;
 
 	// search for MergeData
-    ByteString sKey = CreateKey( rTYP , rGID , rLID , rFilename );
+    
+	ByteString sKey = CreateKey( rTYP , rGID , rLID , rFilename , bCaseSensitive );
 	ByteString sKey2;
 
     if( aMap.find( sKey ) != aMap.end() ){
         pData = aMap[ sKey ];
     }else{ 
         pData = new MergeData( rTYP, rGID, rLID , rFilename );
-        aMap.insert( MergeDataHashMap::value_type( CreateKey( rTYP , rGID , rLID , rFilename ) , pData ) );
+        aMap.insert( MergeDataHashMap::value_type( CreateKey( rTYP , rGID , rLID , rFilename , bCaseSensitive ) , pData ) );
 	}
 
 	bFound = FALSE;
@@ -419,11 +430,12 @@
 //		pFEntrys->InsertEntry( sKey2 , rTEXT, rQHTEXT, rTITLE );
 //	}
 //	else
-		pFEntrys->InsertEntry( nLANG , rTEXT, rQHTEXT, rTITLE );
+		
+	pFEntrys->InsertEntry( nLANG , rTEXT, rQHTEXT, rTITLE );
 	
-	//printf("DBG: MergeDataFile::Insert[%s]=( sKey=%s,rTEXT=%s,%s,%s)\n",sKey2.GetBuffer(),nLANG.GetBuffer(),rTEXT.GetBuffer(),rQHTEXT.GetBuffer(),rTITLE.GetBuffer());
+	//printf("DBG: MergeDataFile::Insert[]=( sKey=%s,nLang=%s,rTEXT=%s)\n",sKey2.GetBuffer(),nLANG.GetBuffer(),rTEXT.GetBuffer());
 }
-ByteString MergeDataFile::CreateKey( const ByteString& rTYP , const ByteString& rGID , const ByteString& rLID , const ByteString& rFilename ){
+ByteString MergeDataFile::CreateKey( const ByteString& rTYP , const ByteString& rGID , const ByteString& rLID , const ByteString& rFilename , bool bCaseSensitive ){
     
     ByteString sKey( rTYP );
     sKey.Append( '-'        );
@@ -433,7 +445,8 @@
     sKey.Append( '-'        );
     sKey.Append( rFilename  );
     
-    return sKey.ToUpperAscii(); 
+    if( bCaseSensitive ) return sKey;         // officecfg case sensitive identifier
+    else return sKey.ToUpperAscii(); 
 }
 
 
