Anonymous avatar Anonymous committed 2c3930a

CWS-TOOLING: integrate CWS sw32bf04
2009-09-22 Michael Stahl galobj.hxx: do not export SgaObject methods (fixes wntmsci12 build)
2009-09-21 Michael Stahl #i105149# #i93308# svx: unofield.cxx: support field services with proper case
2009-09-21 Michael Stahl #i105149# #i102468# sc: servuno.cxx: support field services with proper case
2009-09-21 Michael Stahl #i105149# txtflde.cxx: support docinfo field services with proper case
2009-09-18 Michael Stahl #i105148# fmtatr2.cxx: SwFmtMeta::Clone(): avoid assert on clone pool default
2009-09-18 Michael Stahl #i105148# fmtatr2.cxx: SwFmtMeta::~SwFmtMeta(): check if m_pMeta != 0
2009-09-18 Michael Stahl #i105179# unocoll.cxx: SwXFrames::getByName(): add missing breaks
2009-09-18 Michael Stahl dbgoutsw.cxx: explicitly convert from SwNodeIndex to SwPosition
2009-09-18 Michael Stahl galobj.hxx: export class SgaObject from svxcore, needed by unogalitem.cxx
2009-09-17 Michael Stahl #i105149# txtflde.cxx: compare text field prefix case-insensitively
2009-09-16 Michael Stahl #i105117# docdde.cxx: fix possible NULL dereference (patch by cmc)
2009-09-16 Michael Stahl #i105124# docdde.cxx: fix use-after-free bug: make _FindItem member String

Comments (0)

Files changed (10)

sc/source/ui/unoobj/servuno.cxx

 
 
 //------------------------------------------------------------------------
+//
+struct ProvNamesId_Type
+{
+    const char *    pName;
+    sal_uInt16      nType;
+};
 
-static const sal_Char* __FAR_DATA aProvNames[SC_SERVICE_COUNT] =
-	{
-		"com.sun.star.sheet.Spreadsheet",			// SC_SERVICE_SHEET
-		"com.sun.star.text.TextField.URL",			// SC_SERVICE_URLFIELD
-		"com.sun.star.text.TextField.PageNumber",	// SC_SERVICE_PAGEFIELD
-		"com.sun.star.text.TextField.PageCount",	// SC_SERVICE_PAGESFIELD
-		"com.sun.star.text.TextField.Date",			// SC_SERVICE_DATEFIELD
-		"com.sun.star.text.TextField.Time",			// SC_SERVICE_TIMEFIELD
-		"com.sun.star.text.TextField.DocumentTitle",// SC_SERVICE_TITLEFIELD
-		"com.sun.star.text.TextField.FileName",		// SC_SERVICE_FILEFIELD
-		"com.sun.star.text.TextField.SheetName",	// SC_SERVICE_SHEETFIELD
-		"com.sun.star.style.CellStyle",				// SC_SERVICE_CELLSTYLE
-		"com.sun.star.style.PageStyle",				// SC_SERVICE_PAGESTYLE
-		"com.sun.star.sheet.TableAutoFormat",		// SC_SERVICE_AUTOFORMAT
-		"com.sun.star.sheet.SheetCellRanges",		// SC_SERVICE_CELLRANGES
-		"com.sun.star.drawing.GradientTable",		// SC_SERVICE_GRADTAB
-		"com.sun.star.drawing.HatchTable",			// SC_SERVICE_HATCHTAB
-		"com.sun.star.drawing.BitmapTable",			// SC_SERVICE_BITMAPTAB
-		"com.sun.star.drawing.TransparencyGradientTable",	// SC_SERVICE_TRGRADTAB
-		"com.sun.star.drawing.MarkerTable",			// SC_SERVICE_MARKERTAB
-		"com.sun.star.drawing.DashTable",			// SC_SERVICE_DASHTAB
-		"com.sun.star.text.NumberingRules",			// SC_SERVICE_NUMRULES
-		"com.sun.star.sheet.Defaults",				// SC_SERVICE_DOCDEFLTS
-		"com.sun.star.drawing.Defaults",			// SC_SERVICE_DRAWDEFLTS
-		"com.sun.star.comp.SpreadsheetSettings",	// SC_SERVICE_DOCSPRSETT
-		"com.sun.star.document.Settings",			// SC_SERVICE_DOCCONF
-		"com.sun.star.image.ImageMapRectangleObject",// SC_SERVICE_IMAP_RECT
-		"com.sun.star.image.ImageMapCircleObject",	// SC_SERVICE_IMAP_CIRC
-		"com.sun.star.image.ImageMapPolygonObject",	// SC_SERVICE_IMAP_POLY
+static const ProvNamesId_Type __FAR_DATA aProvNamesId[] =
+{
+    { "com.sun.star.sheet.Spreadsheet",                 SC_SERVICE_SHEET },
+    { "com.sun.star.text.TextField.URL",                SC_SERVICE_URLFIELD },
+    { "com.sun.star.text.TextField.PageNumber",         SC_SERVICE_PAGEFIELD },
+    { "com.sun.star.text.TextField.PageCount",          SC_SERVICE_PAGESFIELD },
+    { "com.sun.star.text.TextField.Date",               SC_SERVICE_DATEFIELD },
+    { "com.sun.star.text.TextField.Time",               SC_SERVICE_TIMEFIELD },
+    { "com.sun.star.text.TextField.DocumentTitle",      SC_SERVICE_TITLEFIELD },
+    { "com.sun.star.text.TextField.FileName",           SC_SERVICE_FILEFIELD },
+    { "com.sun.star.text.TextField.SheetName",          SC_SERVICE_SHEETFIELD },
+    { "com.sun.star.style.CellStyle",                   SC_SERVICE_CELLSTYLE },
+    { "com.sun.star.style.PageStyle",                   SC_SERVICE_PAGESTYLE },
+    { "com.sun.star.sheet.TableAutoFormat",             SC_SERVICE_AUTOFORMAT },
+    { "com.sun.star.sheet.SheetCellRanges",             SC_SERVICE_CELLRANGES },
+    { "com.sun.star.drawing.GradientTable",             SC_SERVICE_GRADTAB },
+    { "com.sun.star.drawing.HatchTable",                SC_SERVICE_HATCHTAB },
+    { "com.sun.star.drawing.BitmapTable",               SC_SERVICE_BITMAPTAB },
+    { "com.sun.star.drawing.TransparencyGradientTable", SC_SERVICE_TRGRADTAB },
+    { "com.sun.star.drawing.MarkerTable",               SC_SERVICE_MARKERTAB },
+    { "com.sun.star.drawing.DashTable",                 SC_SERVICE_DASHTAB },
+    { "com.sun.star.text.NumberingRules",               SC_SERVICE_NUMRULES },
+    { "com.sun.star.sheet.Defaults",                    SC_SERVICE_DOCDEFLTS },
+    { "com.sun.star.drawing.Defaults",                  SC_SERVICE_DRAWDEFLTS },
+    { "com.sun.star.comp.SpreadsheetSettings",          SC_SERVICE_DOCSPRSETT },
+    { "com.sun.star.document.Settings",                 SC_SERVICE_DOCCONF },
+    { "com.sun.star.image.ImageMapRectangleObject",     SC_SERVICE_IMAP_RECT },
+    { "com.sun.star.image.ImageMapCircleObject",        SC_SERVICE_IMAP_CIRC },
+    { "com.sun.star.image.ImageMapPolygonObject",       SC_SERVICE_IMAP_POLY },
 
 		// #100263# Support creation of GraphicObjectResolver and EmbeddedObjectResolver
-		"com.sun.star.document.ExportGraphicObjectResolver",	// SC_SERVICE_EXPORT_GOR
-		"com.sun.star.document.ImportGraphicObjectResolver",	// SC_SERVICE_IMPORT_GOR
-		"com.sun.star.document.ExportEmbeddedObjectResolver",	// SC_SERVICE_EXPORT_EOR
-		"com.sun.star.document.ImportEmbeddedObjectResolver",	// SC_SERVICE_IMPORT_EOR
+    { "com.sun.star.document.ExportGraphicObjectResolver",  SC_SERVICE_EXPORT_GOR },
+    { "com.sun.star.document.ImportGraphicObjectResolver",  SC_SERVICE_IMPORT_GOR },
+    { "com.sun.star.document.ExportEmbeddedObjectResolver", SC_SERVICE_EXPORT_EOR },
+    { "com.sun.star.document.ImportEmbeddedObjectResolver", SC_SERVICE_IMPORT_EOR },
 
-        SC_SERVICENAME_VALBIND,                    // SC_SERVICE_VALBIND
-        SC_SERVICENAME_LISTCELLBIND,               // SC_SERVICE_LISTCELLBIND
-        SC_SERVICENAME_LISTSOURCE,                 // SC_SERVICE_LISTSOURCE
-        SC_SERVICENAME_CELLADDRESS,                // SC_SERVICE_CELLADDRESS
-        SC_SERVICENAME_RANGEADDRESS,                // SC_SERVICE_RANGEADDRESS
+    { SC_SERVICENAME_VALBIND,               SC_SERVICE_VALBIND },
+    { SC_SERVICENAME_LISTCELLBIND,          SC_SERVICE_LISTCELLBIND },
+    { SC_SERVICENAME_LISTSOURCE,            SC_SERVICE_LISTSOURCE },
+    { SC_SERVICENAME_CELLADDRESS,           SC_SERVICE_CELLADDRESS },
+    { SC_SERVICENAME_RANGEADDRESS,          SC_SERVICE_RANGEADDRESS },
 
-        "com.sun.star.sheet.DocumentSettings",      // SC_SERVICE_SHEETDOCSET
+    { "com.sun.star.sheet.DocumentSettings",SC_SERVICE_SHEETDOCSET },
 
-        SC_SERVICENAME_CHDATAPROV,                  // SC_SERVICE_CHDATAPROV
-        SC_SERVICENAME_FORMULAPARS,                 // SC_SERVICE_FORMULAPARS
-        SC_SERVICENAME_OPCODEMAPPER                 // SC_SERVICE_OPCODEMAPPER
-	};
+    { SC_SERVICENAME_CHDATAPROV,            SC_SERVICE_CHDATAPROV },
+    { SC_SERVICENAME_FORMULAPARS,           SC_SERVICE_FORMULAPARS },
+    { SC_SERVICENAME_OPCODEMAPPER,          SC_SERVICE_OPCODEMAPPER },
+
+    // case-correct versions of the service names (#i102468#)
+    { "com.sun.star.text.textfield.URL",                SC_SERVICE_URLFIELD },
+    { "com.sun.star.text.textfield.PageNumber",         SC_SERVICE_PAGEFIELD },
+    { "com.sun.star.text.textfield.PageCount",          SC_SERVICE_PAGESFIELD },
+    { "com.sun.star.text.textfield.Date",               SC_SERVICE_DATEFIELD },
+    { "com.sun.star.text.textfield.Time",               SC_SERVICE_TIMEFIELD },
+    { "com.sun.star.text.textfield.DocumentTitle",      SC_SERVICE_TITLEFIELD },
+    { "com.sun.star.text.textfield.FileName",           SC_SERVICE_FILEFIELD },
+    { "com.sun.star.text.textfield.SheetName",          SC_SERVICE_SHEETFIELD },
+};
 
 //
 //	old service names that were in 567 still work in createInstance,
 {
 	if (rServiceName.Len())
 	{
+        const sal_uInt16 nEntries =
+            sizeof(aProvNamesId) / sizeof(aProvNamesId[0]);
+        for (sal_uInt16 i = 0; i < nEntries; i++)
+        {
+            if (rServiceName.EqualsAscii( aProvNamesId[i].pName ))
+            {
+                return aProvNamesId[i].nType;
+            }
+        }
+
 		USHORT i;
 		for (i=0; i<SC_SERVICE_COUNT; i++)
-			if (rServiceName.EqualsAscii( aProvNames[i] ))
-				return i;
-
-		for (i=0; i<SC_SERVICE_COUNT; i++)
         {
             DBG_ASSERT( aOldNames[i], "ScServiceProvider::GetProviderType: no oldname => crash");
 			if (rServiceName.EqualsAscii( aOldNames[i] ))
 
 uno::Sequence<rtl::OUString> ScServiceProvider::GetAllServiceNames()
 {
-	uno::Sequence<rtl::OUString> aRet(SC_SERVICE_COUNT);
+    const sal_uInt16 nEntries = sizeof(aProvNamesId) / sizeof(aProvNamesId[0]);
+    uno::Sequence<rtl::OUString> aRet(nEntries);
 	rtl::OUString* pArray = aRet.getArray();
-	for (sal_uInt16 i = 0; i < SC_SERVICE_COUNT; i++)
-		pArray[i] = rtl::OUString::createFromAscii( aProvNames[i] );
+    for (sal_uInt16 i = 0; i < nEntries; i++)
+    {
+        pArray[i] = rtl::OUString::createFromAscii( aProvNamesId[i].pName );
+    }
 	return aRet;
 }
 

svx/inc/galobj.hxx

 // - SgaObject -
 // -------------
 
-class SgaObject
+class SVX_DLLPUBLIC SgaObject
 {
 	friend class GalleryTheme;
 
 	BOOL					IsValid() const { return bIsValid; }
 	BOOL					IsThumbBitmap() const { return bIsThumbBmp; }
 
-	SVX_DLLPUBLIC const String			GetTitle() const;
-	SVX_DLLPUBLIC void					SetTitle( const String& rTitle );
+    const String            GetTitle() const;
+    void                    SetTitle( const String& rTitle );
 
 	friend SvStream& 		operator<<( SvStream& rOut, const SgaObject& rObj );
 	friend SvStream& 		operator>>( SvStream& rIn, SgaObject& rObj );

svx/source/unodraw/unomod.cxx

 		{
 			nId = ID_EXT_FILEFIELD;
 		}
-		else if( aFieldType.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM("DocInfo.Title") ) )
+        else if (aFieldType.equalsAsciiL(
+                    RTL_CONSTASCII_STRINGPARAM("docinfo.Title") ) ||
+                 aFieldType.equalsAsciiL(
+                    RTL_CONSTASCII_STRINGPARAM("DocInfo.Title") ) )
 		{
 			nId = ID_FILEFIELD;
 		}

svx/source/unoedit/unofield.cxx

 	return OUString(RTL_CONSTASCII_USTRINGPARAM("SvxUnoTextField"));
 }
 
-static const sal_Char* pServiceNames[] = 
+static const sal_Char* pOldServiceNames[] =
 {
 	"com.sun.star.text.TextField.DateTime",
 	"com.sun.star.text.TextField.URL",
 	"com.sun.star.presentation.TextField.DateTime"
 };
 
+static const sal_Char* pNewServiceNames[] =
+{
+    "com.sun.star.text.textfield.DateTime",
+    "com.sun.star.text.textfield.URL",
+    "com.sun.star.text.textfield.PageNumber",
+    "com.sun.star.text.textfield.PageCount",
+    "com.sun.star.text.textfield.DateTime",
+    "com.sun.star.text.textfield.docinfo.Title",    // SvxFileField is used for title
+    "com.sun.star.text.textfield.SheetName",
+    "com.sun.star.text.textfield.DateTime",
+    "com.sun.star.text.textfield.FileName",
+    "com.sun.star.text.textfield.Author",
+    "com.sun.star.text.textfield.Measure",
+    "com.sun.star.text.textfield.DateTime",
+    "com.sun.star.presentation.textfield.Header",
+    "com.sun.star.presentation.textfield.Footer",
+    "com.sun.star.presentation.textfield.DateTime"
+};
+
 uno::Sequence< OUString > SAL_CALL SvxUnoTextField::getSupportedServiceNames()
 	throw(uno::RuntimeException)
 {
-	uno::Sequence< OUString > aSeq( 3 );
+    uno::Sequence< OUString > aSeq( 4 );
 	OUString* pServices = aSeq.getArray();
-	pServices[0] = OUString::createFromAscii( pServiceNames[mnServiceId] );
-	pServices[1] = OUString::createFromAscii( "com.sun.star.text.TextContent" ),
-	pServices[2] = OUString::createFromAscii( "com.sun.star.text.TextField" );
+    pServices[0] = OUString::createFromAscii( pNewServiceNames[mnServiceId] );
+    pServices[1] = OUString::createFromAscii( pOldServiceNames[mnServiceId] );
+    pServices[2] = OUString::createFromAscii( "com.sun.star.text.TextContent" ),
+    pServices[3] = OUString::createFromAscii( "com.sun.star.text.TextField" );
 
 	return aSeq;
 }

svx/source/xml/xmltxtexp.cxx

 		return uno::Reference< uno::XInterface >(
             SvxCreateNumRule( (SdrModel*)NULL ), uno::UNO_QUERY );
 	}
-	if( 0 == aServiceSpecifier.reverseCompareToAsciiL( RTL_CONSTASCII_STRINGPARAM("com.sun.star.text.TextField.DateTime") ) )
+    if (   (0 == aServiceSpecifier.reverseCompareToAsciiL(
+            RTL_CONSTASCII_STRINGPARAM("com.sun.star.text.textfield.DateTime")))
+        || (0 == aServiceSpecifier.reverseCompareToAsciiL(
+            RTL_CONSTASCII_STRINGPARAM("com.sun.star.text.TextField.DateTime")))
+       )
 	{
 		return (::cppu::OWeakObject * )new SvxUnoTextField( ID_EXT_DATEFIELD );
 	}

sw/source/core/doc/dbgoutsw.cxx

 {
     String aStr("[", RTL_TEXTENCODING_ASCII_US);
     
-    aStr += lcl_dbg_out(rRange.aStart);
+    aStr += lcl_dbg_out(SwPosition(rRange.aStart));
     aStr += String(", ", RTL_TEXTENCODING_ASCII_US);
-    aStr += lcl_dbg_out(rRange.aEnd);
+    aStr += lcl_dbg_out(SwPosition(rRange.aEnd));
 
     aStr += String("]" , RTL_TEXTENCODING_ASCII_US);
 

sw/source/core/doc/docdde.cxx

             ppMark != rMarkAccess.getMarksEnd();
             ppMark++)
         {
-            ::sw::mark::DdeBookmark* const pBkmk = dynamic_cast< ::sw::mark::DdeBookmark*>(ppMark->get());
-            if(pBkmk && 
-                (bCaseSensitive && (pBkmk->GetName() == sNameLc)) ||
-                (!bCaseSensitive && GetAppCharClass().lower(pBkmk->GetName()) == String( sNameLc )))
-                return pBkmk;
+            if (::sw::mark::DdeBookmark* const pBkmk = dynamic_cast< ::sw::mark::DdeBookmark*>(ppMark->get()))
+            {
+                if (
+                    (bCaseSensitive && (pBkmk->GetName() == sNameLc)) ||
+                    (!bCaseSensitive && GetAppCharClass().lower(pBkmk->GetName()) == String(sNameLc))
+                   )
+                {
+                    return pBkmk;
+                }
+            }
         }
         return NULL;
     }
 
 struct _FindItem
 {
-    const String& rItem;
+    const String m_Item;
     SwTableNode* pTblNd;
     SwSectionNode* pSectNd;
 
     _FindItem(const String& rS)
-        : rItem(rS), pTblNd(0), pSectNd(0)
+        : m_Item(rS), pTblNd(0), pSectNd(0)
     {}
 };
 
 BOOL lcl_FindSection( const SwSectionFmtPtr& rpSectFmt, void* pArgs, bool bCaseSensitive )
 {
+    _FindItem * const pItem( static_cast<_FindItem*>(pArgs) );
 	SwSection* pSect = rpSectFmt->GetSection();
 	if( pSect )
 	{
         String sNm( bCaseSensitive ? pSect->GetName() : GetAppCharClass().lower( pSect->GetName() ));
-        String sCompare( bCaseSensitive ? ((_FindItem*)pArgs)->rItem  : GetAppCharClass().lower( ((_FindItem*)pArgs)->rItem ));
+        String sCompare( (bCaseSensitive)
+                ? pItem->m_Item
+                : GetAppCharClass().lower( pItem->m_Item ) );
         if( sNm == sCompare )
 		{
 			// gefunden, als erfrage die Daten
 				&rpSectFmt->GetDoc()->GetNodes() == &pIdx->GetNodes() )
 			{
 				// eine Tabelle im normalen NodesArr
-				((_FindItem*)pArgs)->pSectNd = pIdx->GetNode().GetSectionNode();
+                pItem->pSectNd = pIdx->GetNode().GetSectionNode();
 				return FALSE;
 			}
 //nein!!			// sollte der Namen schon passen, der Rest aber nicht, dann haben wir
 
 BOOL lcl_FindTable( const SwFrmFmtPtr& rpTableFmt, void* pArgs )
 {
+    _FindItem * const pItem( static_cast<_FindItem*>(pArgs) );
 	String sNm( GetAppCharClass().lower( rpTableFmt->GetName() ));
-	if( sNm.Equals( ((_FindItem*)pArgs)->rItem ))
+    if (sNm.Equals( pItem->m_Item ))
 	{
 		SwTable* pTmpTbl;
 		SwTableBox* pFBox;
 			&rpTableFmt->GetDoc()->GetNodes() == &pFBox->GetSttNd()->GetNodes() )
 		{
 			// eine Tabelle im normalen NodesArr
-			((_FindItem*)pArgs)->pTblNd = (SwTableNode*)
+            pItem->pTblNd = (SwTableNode*)
 										pFBox->GetSttNd()->FindTableNode();
 			return FALSE;
 		}

sw/source/core/txtnode/fmtatr2.cxx

 
 SwFmtMeta::~SwFmtMeta()
 {
-    if (m_pMeta->GetFmtMeta() == this)
+    if (m_pMeta && (m_pMeta->GetFmtMeta() == this))
     {
         m_pMeta->SetFmtMeta(0);
     }
 SfxPoolItem * SwFmtMeta::Clone( SfxItemPool * /*pPool*/ ) const
 {
     // if this is indeed a copy, then DoCopy must be called later!
-    return new SwFmtMeta( m_pMeta, Which() );
+    return (m_pMeta) // #i105148# pool default may be cloned also!
+        ? new SwFmtMeta( m_pMeta, Which() ) : new SwFmtMeta( Which() );
 }
 
 void SwFmtMeta::SetTxtAttr(SwTxtMeta * const i_pTxtAttr)

sw/source/core/unocore/unocoll.cxx

         throw IndexOutOfBoundsException();
     return lcl_UnoWrapFrame(pFmt, eType);
 }
+
 uno::Any SwXFrames::getByName(const OUString& rName)
 	throw(NoSuchElementException, WrappedTargetException, uno::RuntimeException )
 {
     {
         case FLYCNTTYPE_GRF:
             pFmt = GetDoc()->FindFlyByName(rName, ND_GRFNODE);
+            break;
         case FLYCNTTYPE_OLE:
             pFmt = GetDoc()->FindFlyByName(rName, ND_OLENODE);
+            break;
         default:
             pFmt = GetDoc()->FindFlyByName(rName, ND_TEXTNODE);
+            break;
     }
     if(!pFmt)
         throw NoSuchElementException();

xmloff/source/text/txtflde.cxx

 static sal_Char __READONLY_DATA FIELD_SERVICE_HIDDEN_TEXT[] = "HiddenText";
 static sal_Char __READONLY_DATA FIELD_SERVICE_HIDDEN_PARAGRAPH[] = "HiddenParagraph";
 static sal_Char __READONLY_DATA FIELD_SERVICE_DOC_INFO_CHANGE_AUTHOR[] = "DocInfo.ChangeAuthor";
+static sal_Char __READONLY_DATA FIELD_SERVICE_DOC_INFO_CHANGE_AUTHOR2[] = "docinfo.ChangeAuthor";
 static sal_Char __READONLY_DATA FIELD_SERVICE_DOC_INFO_CHANGE_DATE_TIME[] = "DocInfo.ChangeDateTime";
+static sal_Char __READONLY_DATA FIELD_SERVICE_DOC_INFO_CHANGE_DATE_TIME2[] = "docinfo.ChangeDateTime";
 static sal_Char __READONLY_DATA FIELD_SERVICE_DOC_INFO_EDIT_TIME[] = "DocInfo.EditTime";
+static sal_Char __READONLY_DATA FIELD_SERVICE_DOC_INFO_EDIT_TIME2[] = "docinfo.EditTime";
 static sal_Char __READONLY_DATA FIELD_SERVICE_DOC_INFO_DESCRIPTION[] = "DocInfo.Description";
+static sal_Char __READONLY_DATA FIELD_SERVICE_DOC_INFO_DESCRIPTION2[] = "docinfo.Description";
 static sal_Char __READONLY_DATA FIELD_SERVICE_DOC_INFO_CREATE_AUTHOR[] = "DocInfo.CreateAuthor";
+static sal_Char __READONLY_DATA FIELD_SERVICE_DOC_INFO_CREATE_AUTHOR2[] = "docinfo.CreateAuthor";
 static sal_Char __READONLY_DATA FIELD_SERVICE_DOC_INFO_CREATE_DATE_TIME[] = "DocInfo.CreateDateTime";
+static sal_Char __READONLY_DATA FIELD_SERVICE_DOC_INFO_CREATE_DATE_TIME2[] = "docinfo.CreateDateTime";
 static sal_Char __READONLY_DATA FIELD_SERVICE_DOC_INFO_CUSTOM[] = "DocInfo.Custom";
+static sal_Char __READONLY_DATA FIELD_SERVICE_DOC_INFO_CUSTOM2[] = "docinfo.Custom";
 static sal_Char __READONLY_DATA FIELD_SERVICE_DOC_INFO_PRINT_AUTHOR[] = "DocInfo.PrintAuthor";
+static sal_Char __READONLY_DATA FIELD_SERVICE_DOC_INFO_PRINT_AUTHOR2[] = "docinfo.PrintAuthor";
 static sal_Char __READONLY_DATA FIELD_SERVICE_DOC_INFO_PRINT_DATE_TIME[] = "DocInfo.PrintDateTime";
+static sal_Char __READONLY_DATA FIELD_SERVICE_DOC_INFO_PRINT_DATE_TIME2[] = "docinfo.PrintDateTime";
 static sal_Char __READONLY_DATA FIELD_SERVICE_DOC_INFO_KEY_WORDS[] = "DocInfo.KeyWords";
+static sal_Char __READONLY_DATA FIELD_SERVICE_DOC_INFO_KEY_WORDS2[] = "docinfo.KeyWords";
 static sal_Char __READONLY_DATA FIELD_SERVICE_DOC_INFO_SUBJECT[] = "DocInfo.Subject";
+static sal_Char __READONLY_DATA FIELD_SERVICE_DOC_INFO_SUBJECT2[] = "docinfo.Subject";
 static sal_Char __READONLY_DATA FIELD_SERVICE_DOC_INFO_TITLE[] = "DocInfo.Title";
+static sal_Char __READONLY_DATA FIELD_SERVICE_DOC_INFO_TITLE2[] = "docinfo.Title";
 static sal_Char __READONLY_DATA FIELD_SERVICE_DOC_INFO_REVISION[] = "DocInfo.Revision";
+static sal_Char __READONLY_DATA FIELD_SERVICE_DOC_INFO_REVISION2[] = "docinfo.Revision";
 static sal_Char __READONLY_DATA FIELD_SERVICE_FILE_NAME[] = "FileName";
 static sal_Char __READONLY_DATA FIELD_SERVICE_CHAPTER[] = "Chapter";
 static sal_Char __READONLY_DATA FIELD_SERVICE_TEMPLATE_NAME[] = "TemplateName";
 	ENUM_STRING_MAP_ENTRY( FIELD_SERVICE_DB_NAME, FIELD_ID_DATABASE_NAME ),
 
 	ENUM_STRING_MAP_ENTRY( FIELD_SERVICE_DOC_INFO_CREATE_AUTHOR, FIELD_ID_DOCINFO_CREATION_AUTHOR ),
+    ENUM_STRING_MAP_ENTRY( FIELD_SERVICE_DOC_INFO_CREATE_AUTHOR2, FIELD_ID_DOCINFO_CREATION_AUTHOR ),
 	ENUM_STRING_MAP_ENTRY( FIELD_SERVICE_DOC_INFO_CREATE_DATE_TIME, FIELD_ID_DOCINFO_CREATION_TIME),
+    ENUM_STRING_MAP_ENTRY( FIELD_SERVICE_DOC_INFO_CREATE_DATE_TIME2, FIELD_ID_DOCINFO_CREATION_TIME),
 	ENUM_STRING_MAP_ENTRY( FIELD_SERVICE_DOC_INFO_CHANGE_AUTHOR, FIELD_ID_DOCINFO_SAVE_AUTHOR ),
+    ENUM_STRING_MAP_ENTRY( FIELD_SERVICE_DOC_INFO_CHANGE_AUTHOR2, FIELD_ID_DOCINFO_SAVE_AUTHOR ),
 	ENUM_STRING_MAP_ENTRY( FIELD_SERVICE_DOC_INFO_CHANGE_DATE_TIME, FIELD_ID_DOCINFO_SAVE_TIME ),
+    ENUM_STRING_MAP_ENTRY( FIELD_SERVICE_DOC_INFO_CHANGE_DATE_TIME2, FIELD_ID_DOCINFO_SAVE_TIME ),
 	ENUM_STRING_MAP_ENTRY( FIELD_SERVICE_DOC_INFO_EDIT_TIME, FIELD_ID_DOCINFO_EDIT_DURATION ),
+    ENUM_STRING_MAP_ENTRY( FIELD_SERVICE_DOC_INFO_EDIT_TIME2, FIELD_ID_DOCINFO_EDIT_DURATION ),
 	ENUM_STRING_MAP_ENTRY( FIELD_SERVICE_DOC_INFO_DESCRIPTION, FIELD_ID_DOCINFO_DESCRIPTION ),
+    ENUM_STRING_MAP_ENTRY( FIELD_SERVICE_DOC_INFO_DESCRIPTION2, FIELD_ID_DOCINFO_DESCRIPTION ),
 	ENUM_STRING_MAP_ENTRY( FIELD_SERVICE_DOC_INFO_CUSTOM, FIELD_ID_DOCINFO_CUSTOM ),
+    ENUM_STRING_MAP_ENTRY( FIELD_SERVICE_DOC_INFO_CUSTOM2, FIELD_ID_DOCINFO_CUSTOM ),
 	ENUM_STRING_MAP_ENTRY( FIELD_SERVICE_DOC_INFO_PRINT_AUTHOR, FIELD_ID_DOCINFO_PRINT_AUTHOR ),
+    ENUM_STRING_MAP_ENTRY( FIELD_SERVICE_DOC_INFO_PRINT_AUTHOR2, FIELD_ID_DOCINFO_PRINT_AUTHOR ),
 	ENUM_STRING_MAP_ENTRY( FIELD_SERVICE_DOC_INFO_PRINT_DATE_TIME, FIELD_ID_DOCINFO_PRINT_TIME ),
+    ENUM_STRING_MAP_ENTRY( FIELD_SERVICE_DOC_INFO_PRINT_DATE_TIME2, FIELD_ID_DOCINFO_PRINT_TIME ),
 	ENUM_STRING_MAP_ENTRY( FIELD_SERVICE_DOC_INFO_KEY_WORDS, FIELD_ID_DOCINFO_KEYWORDS ),
+    ENUM_STRING_MAP_ENTRY( FIELD_SERVICE_DOC_INFO_KEY_WORDS2, FIELD_ID_DOCINFO_KEYWORDS ),
 	ENUM_STRING_MAP_ENTRY( FIELD_SERVICE_DOC_INFO_SUBJECT, FIELD_ID_DOCINFO_SUBJECT ),
+    ENUM_STRING_MAP_ENTRY( FIELD_SERVICE_DOC_INFO_SUBJECT2, FIELD_ID_DOCINFO_SUBJECT ),
 	ENUM_STRING_MAP_ENTRY( FIELD_SERVICE_DOC_INFO_TITLE, FIELD_ID_DOCINFO_TITLE ),
+    ENUM_STRING_MAP_ENTRY( FIELD_SERVICE_DOC_INFO_TITLE2, FIELD_ID_DOCINFO_TITLE ),
 	ENUM_STRING_MAP_ENTRY( FIELD_SERVICE_DOC_INFO_REVISION, FIELD_ID_DOCINFO_REVISION ),
+    ENUM_STRING_MAP_ENTRY( FIELD_SERVICE_DOC_INFO_REVISION2, FIELD_ID_DOCINFO_REVISION ),
 
 	ENUM_STRING_MAP_ENTRY( FIELD_SERVICE_CONDITIONAL_TEXT, FIELD_ID_CONDITIONAL_TEXT ),
 	ENUM_STRING_MAP_ENTRY( FIELD_SERVICE_HIDDEN_TEXT, FIELD_ID_HIDDEN_TEXT ),
 	// search for TextField service name
 	while( nCount-- )
 	{
-		if( 0 == pNames->compareTo(sServicePrefix, sServicePrefix.getLength()))
+        if (pNames->matchIgnoreAsciiCase(sServicePrefix))
 		{
 			// TextField found => postfix is field type!
 			sFieldName = pNames->copy(sServicePrefix.getLength());
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.