[PATCH] use different OUString ctor for RTL_TEXTENCODING_UCS4

Caolán McNamara caolanm at redhat.com
Mon Feb 20 12:42:19 PST 2012


---
 clucene/Package_source.mk                          |    1 +
 configure.in                                       |   34 ++++++++++++++++++++
 l10ntools/prj/build.lst                            |    2 +-
 l10ntools/source/help/LuceneHelper.cxx             |   19 ++++-------
 l10ntools/source/help/makefile.mk                  |    7 +---
 scp2/source/ooo/file_library_ooo.scp               |   13 +++++++
 scp2/source/ooo/makefile.mk                        |    4 ++
 scp2/source/ooo/module_hidden_ooo.scp              |    3 ++
 solenv/inc/libs.mk                                 |    6 +++
 xmlhelp/source/cxxhelp/provider/makefile.mk        |    3 --
 .../source/helpcomponent/CLuceneHelpWrapper.cxx    |    5 ++-
 xmlhelp/source/helpcomponent/makefile.mk           |    5 +--
 12 files changed, 75 insertions(+), 27 deletions(-)

diff --git a/clucene/Package_source.mk b/clucene/Package_source.mk
index c51dbce..afafa18 100644
--- a/clucene/Package_source.mk
+++ b/clucene/Package_source.mk
@@ -46,6 +46,7 @@ $(eval $(call gb_CustomTarget_add_outdir_dependencies,clucene/source,\
 	$(FIXED_TARFILE_LOCATION)/48d647fbd8ef8889e5a7f422c1bfda94-clucene-core-2.3.3.4.tar.gz \
 ))
 
+$(eval $(call gb_Package_add_file,clucene_source,inc/CLucene/clucene-config.h,src/shared/CLucene/clucene-config.h))
 $(eval $(call gb_Package_add_file,clucene_source,inc/CLucene/SharedHeader.h,src/shared/CLucene/SharedHeader.h))
 $(eval $(call gb_Package_add_file,clucene_source,inc/CLucene/index/DirectoryIndexReader.h,src/core/CLucene/index/DirectoryIndexReader.h))
 $(eval $(call gb_Package_add_file,clucene_source,inc/CLucene/index/Terms.h,src/core/CLucene/index/Terms.h))
diff --git a/configure.in b/configure.in
index e28e588..cf45a08 100644
--- a/configure.in
+++ b/configure.in
@@ -1110,6 +1110,10 @@ AC_ARG_WITH(system-jpeg,
     with_system_jpeg="$with_system_libs"
   fi])
 
+AC_ARG_WITH(system-clucene,
+    AS_HELP_STRING([--with-system-clucene],
+        [Use clucene already on system.]),,)
+
 AC_ARG_WITH(system-expat,
     AS_HELP_STRING([--with-system-expat],
         [Use expat already on system.]),,
@@ -5616,6 +5620,36 @@ fi
 AC_SUBST(SYSTEM_JPEG)
 
 dnl ===================================================================
+dnl Check for system clucene
+dnl ===================================================================
+AC_MSG_CHECKING([which clucene to use])
+if test "$with_system_clucene" = "yes"; then
+    AC_MSG_RESULT([external])
+    SYSTEM_CLUCENE=YES
+    PKG_CHECK_MODULES(LIBCLUCENE, libclucene-core)
+
+    AC_LANG_PUSH([C++])
+    save_CXXFLAGS=$CXXFLAGS
+    save_CPPFLAGS=$CPPFLAGS
+    CXXFLAGS="$CXXFLAGS $LIBCLUCENE_CFLAGS"
+    CPPFLAGS="$CPPFLAGS $LIBCLUCENE_CFLAGS"
+    AC_CHECK_HEADER([CLucene/analysis/cjk/CJKAnalyzer.h], [],
+                 [AC_MSG_ERROR([Your version of libclucene has contribs-lib missing.])], [])
+    CXXFLAGS=$save_CXXFLAGS
+    CPPFLAGS=$save_CPPFLAGS
+    AC_LANG_POP([C++])
+
+    LIBCLUCENE_LIBS="$LIBCLUCENE_LIBS -lclucene-contribs-lib"
+else
+    AC_MSG_RESULT([internal])
+    SYSTEM_CLUCENE=NO
+    BUILD_TYPE="$BUILD_TYPE CLUCENE"
+fi
+AC_SUBST(SYSTEM_CLUCENE)
+AC_SUBST(LIBCLUCENE_CFLAGS)
+AC_SUBST(LIBCLUCENE_LIBS)
+
+dnl ===================================================================
 dnl Check for system expat
 dnl ===================================================================
 AC_MSG_CHECKING([which expat to use])
diff --git a/l10ntools/prj/build.lst b/l10ntools/prj/build.lst
index 8e3ea70..372fcfe 100644
--- a/l10ntools/prj/build.lst
+++ b/l10ntools/prj/build.lst
@@ -1,4 +1,4 @@
-tr l10ntools : BERKELEYDB:berkeleydb EXPAT:expat LIBXSLT:libxslt sal NULL
+tr l10ntools : BERKELEYDB:berkeleydb EXPAT:expat LIBXSLT:libxslt CLUCENE:clucene sal NULL
 tr	l10ntools						usr1	-	all	tr_mkout NULL
 tr	l10ntools\inc					nmake	-	all	tr_inc NULL
 tr	l10ntools\source					nmake	-	all	tr_src tr_inc NULL
diff --git a/l10ntools/source/help/LuceneHelper.cxx b/l10ntools/source/help/LuceneHelper.cxx
index a88542f..762475b 100644
--- a/l10ntools/source/help/LuceneHelper.cxx
+++ b/l10ntools/source/help/LuceneHelper.cxx
@@ -8,26 +8,21 @@ std::vector<TCHAR> OUStringToTCHARVec(rtl::OUString const &rStr)
 
     //UTF-32
     std::vector<TCHAR> aRet;
-    for (sal_Int32 nStrIndex = 0; nStrIndex < rStr.getLength() + 1; )
+    for (sal_Int32 nStrIndex = 0; nStrIndex < rStr.getLength(); )
     {
         const sal_uInt32 nCode = rStr.iterateCodePoints(&nStrIndex);
         aRet.push_back(nCode);
     }
+    aRet.push_back(0);
     return aRet;
 }
 
-inline unsigned tstrlen(TCHAR const *str) {
-	unsigned i;
-	for (i = 0; str[i] != 0; ++i) {}
-	return i;
-}
-
 rtl::OUString TCHARArrayToOUString(TCHAR const *str)
 {
-	// UTF-16
-	if (sizeof(TCHAR) == sizeof(sal_Unicode))
-		return rtl::OUString((sal_Unicode*) str);
+    // UTF-16
+    if (sizeof(TCHAR) == sizeof(sal_Unicode))
+        return rtl::OUString((const sal_Unicode*)(str));
 
-	// UTF-32
-	return rtl::OUString((char*) str, tstrlen(str), RTL_TEXTENCODING_UCS4);
+    // UTF-32
+    return rtl::OUString((const sal_uInt32*)str, wcslen(str));
 }
diff --git a/l10ntools/source/help/makefile.mk b/l10ntools/source/help/makefile.mk
index a466e2c..2b7cdf3 100644
--- a/l10ntools/source/help/makefile.mk
+++ b/l10ntools/source/help/makefile.mk
@@ -77,9 +77,6 @@ NOOPTFILES=\
         $(SLO)$/HelpLinker.obj
 .ENDIF
 
-PKGCONFIG_MODULES=libclucene-core libclucene-contribs-lib
-.INCLUDE : pkg_config.mk
-
 APP1TARGET= $(TARGET)
 APP1OBJS=\
       $(OBJ)$/HelpLinker.obj \
@@ -93,7 +90,7 @@ APP2OBJS=\
       $(OBJ)$/HelpIndexer.obj \
       $(OBJ)$/HelpIndexer_main.obj
 APP2RPATH = NONE
-APP2STDLIBS+=$(SALLIB) $(PKGCONFIG_LIBS)
+APP2STDLIBS+=$(SALLIB) $(CLUCENELIB)
 
 SHL1TARGET	=$(LIBBASENAME)$(DLLPOSTFIX)
 SHL1LIBS=	$(SLB)$/$(TARGET).lib
@@ -103,7 +100,7 @@ SHL1IMPLIB	=i$(LIBBASENAME)
 SHL1IMPLIB	=$(LIBBASENAME)$(DLLPOSTFIX)
 .ENDIF
 SHL1DEF		=$(MISC)$/$(SHL1TARGET).def
-SHL1STDLIBS =$(SALLIB) $(BERKELEYLIB) $(XSLTLIB) $(EXPATASCII3RDLIB) $(PKGCONFIG_LIBS)
+SHL1STDLIBS =$(SALLIB) $(BERKELEYLIB) $(XSLTLIB) $(EXPATASCII3RDLIB) $(CLUCENELIB)
 SHL1USE_EXPORTS	=ordinal
 
 DEF1NAME	=$(SHL1TARGET) 
diff --git a/scp2/source/ooo/file_library_ooo.scp b/scp2/source/ooo/file_library_ooo.scp
index b73ab3b..aa9a31fa 100644
--- a/scp2/source/ooo/file_library_ooo.scp
+++ b/scp2/source/ooo/file_library_ooo.scp
@@ -76,6 +76,19 @@ File gid_File_Lib_Cached1
   #endif
 End
 
+#ifndef SYSTEM_CLUCENE
+File gid_File_Lib_CLucene
+    LIB_FILE_BODY;
+    Styles = (PACKED);
+    Dir = SCP2_OOO_BIN_DIR;
+  #ifdef UNX
+    Name = STRING(CONCAT2(libclucene,UNXSUFFIX));
+  #else
+    Name = "clucene.dll";
+  #endif
+End
+#endif
+
 SPECIAL_COMPONENT_LIB_FILE(gid_File_Lib_Configmgr, configmgr.uno)
 
 #ifdef WITH_LDAP
diff --git a/scp2/source/ooo/makefile.mk b/scp2/source/ooo/makefile.mk
index bd1036b..e7e57db 100644
--- a/scp2/source/ooo/makefile.mk
+++ b/scp2/source/ooo/makefile.mk
@@ -101,6 +101,10 @@ SCPDEFS+=-DENABLE_CAIROCANVAS
 .ENDIF
 .ENDIF
 
+.IF "$(SYSTEM_LUCENE)" == "YES"
+SCPDEFS+=-DSYSTEM_LUCENE
+.ENDIF
+
 .IF "$(SYSTEM_EXPAT)" == "YES"
 SCPDEFS+=-DSYSTEM_EXPAT
 .ENDIF
diff --git a/scp2/source/ooo/module_hidden_ooo.scp b/scp2/source/ooo/module_hidden_ooo.scp
index de79930..63a5c9f 100644
--- a/scp2/source/ooo/module_hidden_ooo.scp
+++ b/scp2/source/ooo/module_hidden_ooo.scp
@@ -337,6 +337,9 @@ Module gid_Module_Root_Files_5
 	gid_File_Lib_Stringresource,
 	gid_File_Lib_Ldapbe2,
 	gid_File_Lib_Cached1,
+#if ! defined SYSTEM_CLUCENE
+        gid_File_Lib_CLucene,
+#endif
         gid_File_Lib_CLuceneHelpWrapper,
 	gid_File_Lib_Comphelper2,
 	gid_File_Lib_Curl,
diff --git a/solenv/inc/libs.mk b/solenv/inc/libs.mk
index 12db54a..be93ae3 100644
--- a/solenv/inc/libs.mk
+++ b/solenv/inc/libs.mk
@@ -174,6 +174,11 @@ HM2LIBSH=-lhmwrpdll
 HM2LIBST=-lhmwrap
 LINGULIB=$(HM2LIBST)
 LNGLIB=-llng$(DLLPOSTFIX)
+.IF "$(SYSTEM_CLUCENE)"=="YES"
+CLUCENELIB=$(LIBCLUCENE_LIBS)
+.ELSE
+CLUCENELIB=-lclucene
+.ENDIF
 .IF "$(SYSTEM_EXPAT)"=="YES"
 EXPAT3RDLIB=-lexpat
 EXPATASCII3RDLIB=-lexpat
@@ -445,6 +450,7 @@ HM2LIBSH=hmwrpdll.lib
 HM2LIBST=hmwrap.lib
 LINGULIB=$(HM2LIBST)
 LNGLIB=ilng.lib
+CLUCENELIB=clucene.lib
 EXPAT3RDLIB=expat_xmltok.lib expat_xmlparse.lib
 EXPATASCII3RDLIB=expat_xmltok.lib ascii_expat_xmlparse.lib
 ZLIB3RDLIB=zlib.lib
diff --git a/xmlhelp/source/cxxhelp/provider/makefile.mk b/xmlhelp/source/cxxhelp/provider/makefile.mk
index 4c9a099..b709797 100644
--- a/xmlhelp/source/cxxhelp/provider/makefile.mk
+++ b/xmlhelp/source/cxxhelp/provider/makefile.mk
@@ -67,9 +67,6 @@ LIBXSLTINCDIR=external$/libxslt
 CFLAGS+= -I$(SOLARINCDIR)$/$(LIBXSLTINCDIR)
 .ENDIF
 
-PKGCONFIG_MODULES=libclucene-core libclucene-contribs-lib
-.INCLUDE : pkg_config.mk
-
 .IF "$(GUI)"=="WNT"
 .IF "$(COM)"=="MSC"
 CFLAGS+=-GR
diff --git a/xmlhelp/source/helpcomponent/CLuceneHelpWrapper.cxx b/xmlhelp/source/helpcomponent/CLuceneHelpWrapper.cxx
index fb53fab..40ee9be 100644
--- a/xmlhelp/source/helpcomponent/CLuceneHelpWrapper.cxx
+++ b/xmlhelp/source/helpcomponent/CLuceneHelpWrapper.cxx
@@ -61,7 +61,7 @@ public:
     }
     virtual Any SAL_CALL invoke(const OUString& FunctionName, const Sequence< Any >& Params, Sequence< sal_Int16 >& OutParamIndex, Sequence< Any >& OutParam)
         throw( IllegalArgumentException, CannotConvertException, InvocationTargetException, RuntimeException );
-    virtual void SAL_CALL setValue(const OUString& PropertyName, const Any& Value)
+    virtual void SAL_CALL setValue(const OUString&, const Any&)
         throw( UnknownPropertyException, CannotConvertException, InvocationTargetException, RuntimeException )
     {
         throw UnknownPropertyException();
@@ -83,7 +83,7 @@ public:
 
 #include <stdio.h> // FIXME: remove once the fprintf() calls below are gone
 
-Any CLuceneHelpWrapper::invoke(const OUString& rFunctionName, const Sequence< Any >& Params, Sequence< sal_Int16 >& OutParamIndex, Sequence< Any >& OutParam)
+Any CLuceneHelpWrapper::invoke(const OUString& rFunctionName, const Sequence< Any >&, Sequence< sal_Int16 >&, Sequence< Any >& )
         throw( IllegalArgumentException, CannotConvertException, InvocationTargetException, RuntimeException )
 {
     fprintf(stderr, "invoke something or other, %s\n", rtl::OUStringToOString(rFunctionName, RTL_TEXTENCODING_UTF8).getStr());
@@ -93,6 +93,7 @@ Any CLuceneHelpWrapper::invoke(const OUString& rFunctionName, const Sequence< An
         fprintf(stderr, "implement me, do indexing thing for extensions with help, but without pre-created index, make need to split l10ntools HelpIndexer tool into a lib and header that we can link to here");
     else
         throw IllegalArgumentException();
+    return Any();
 }
 
 namespace
diff --git a/xmlhelp/source/helpcomponent/makefile.mk b/xmlhelp/source/helpcomponent/makefile.mk
index 50b635e..18cf4dc 100755
--- a/xmlhelp/source/helpcomponent/makefile.mk
+++ b/xmlhelp/source/helpcomponent/makefile.mk
@@ -37,9 +37,6 @@ ENABLE_EXCEPTIONS=TRUE
 SLOFILES=\
     $(SLO)$/CLuceneHelpWrapper.obj
 
-PKGCONFIG_MODULES=libclucene-core
-.INCLUDE : pkg_config.mk
-
 LIB1TARGET=$(SLB)$/_$(TARGET).lib
 LIB1OBJFILES=$(SLOFILES)
 
@@ -52,7 +49,7 @@ SHL1STDLIBS=\
     $(COMPHELPERLIB) \
     $(UNOTOOLSLIB) \
     $(SALLIB) \
-    $(PKGCONFIG_LIBS)
+    $(LIBCLUCENE_LIBS)
 SHL1VERSIONMAP=$(SOLARENV)/src/component.map
  
 .INCLUDE :  target.mk
-- 
1.7.7.6


--=-3ctzQzVm5ioPAf3xFV07--



More information about the LibreOffice mailing list