sc/qa/unit/data/xls/pass/crash-1.xls |binary sc/source/core/data/globalx.cxx | 4 ++++ sc/source/core/tool/optutil.cxx | 4 ++++ sc/source/filter/excel/excel.cxx | 13 ++++++++++++- sc/source/filter/excel/xicontent.cxx | 11 ++++++++--- vcl/opengl/win/blocklist_parser.cxx | 7 ++++--- vcl/workben/fftester.cxx | 14 ++++++++++++++ 7 files changed, 46 insertions(+), 7 deletions(-)
New commits: commit 358ca9eaa3d85236047a7a2781e38f57209c2858 Author: Caolán McNamara <[email protected]> Date: Wed Sep 30 17:01:23 2015 +0100 don't believe xls wrt size to reserve Change-Id: Id9864f199e270d13d801348b12f1e94dd80558c7 diff --git a/sc/qa/unit/data/xls/pass/crash-1.xls b/sc/qa/unit/data/xls/pass/crash-1.xls new file mode 100644 index 0000000..724bfc1 Binary files /dev/null and b/sc/qa/unit/data/xls/pass/crash-1.xls differ diff --git a/sc/source/filter/excel/xicontent.cxx b/sc/source/filter/excel/xicontent.cxx index d821a8a..6b0f688 100644 --- a/sc/source/filter/excel/xicontent.cxx +++ b/sc/source/filter/excel/xicontent.cxx @@ -75,10 +75,15 @@ XclImpSst::XclImpSst( const XclImpRoot& rRoot ) : void XclImpSst::ReadSst( XclImpStream& rStrm ) { rStrm.Ignore( 4 ); - sal_uInt32 nStrCount(0); - nStrCount = rStrm.ReaduInt32(); + sal_uInt32 nStrCount = rStrm.ReaduInt32(); + auto nBytesAvailable = rStrm.GetRecLeft(); + if (nStrCount > nBytesAvailable) + { + SAL_WARN("sc.filter", "xls claimed to have " << nStrCount << " strings, but only " << nBytesAvailable << " bytes available, truncating"); + nStrCount = nBytesAvailable; + } maStrings.clear(); - maStrings.reserve( static_cast< size_t >( nStrCount ) ); + maStrings.reserve(nStrCount); while( (nStrCount > 0) && rStrm.IsValid() ) { XclImpString aString; commit ac9e7af60bd4e898f921173260bd0e9ebfd0ea34 Author: Caolán McNamara <[email protected]> Date: Wed Sep 30 16:46:10 2015 +0100 add xls support to fftester Change-Id: I23e219cec1a8d98e02c3584041f67ff42dd29bd8 diff --git a/sc/source/core/data/globalx.cxx b/sc/source/core/data/globalx.cxx index 5430bb8..2b3794a 100644 --- a/sc/source/core/data/globalx.cxx +++ b/sc/source/core/data/globalx.cxx @@ -35,6 +35,7 @@ #include <com/sun/star/lang/XMultiServiceFactory.hpp> #include <comphelper/processfactory.hxx> #include <comphelper/string.hxx> +#include <unotools/configmgr.hxx> #include <unotools/localedatawrapper.hxx> using namespace ::com::sun::star; @@ -43,6 +44,9 @@ using namespace ::com::sun::star::ucb; void ScGlobal::InitAddIns() { + if (utl::ConfigManager::IsAvoidConfig()) + return; + // multi paths separated by semicolons SvtPathOptions aPathOpt; OUString aMultiPath = aPathOpt.GetAddinPath(); diff --git a/sc/source/core/tool/optutil.cxx b/sc/source/core/tool/optutil.cxx index 6bbc0dc..e78fabd 100644 --- a/sc/source/core/tool/optutil.cxx +++ b/sc/source/core/tool/optutil.cxx @@ -21,10 +21,14 @@ #include "optutil.hxx" #include "global.hxx" +#include <unotools/configmgr.hxx> #include <unotools/syslocale.hxx> bool ScOptionsUtil::IsMetricSystem() { + if (utl::ConfigManager::IsAvoidConfig()) + return true; + //TODO: which language should be used here - system language or installed office language? MeasurementSystem eSys = ScGlobal::pLocaleData->getMeasurementSystemEnum(); diff --git a/sc/source/filter/excel/excel.cxx b/sc/source/filter/excel/excel.cxx index 10c22a9..b21ca5f 100644 --- a/sc/source/filter/excel/excel.cxx +++ b/sc/source/filter/excel/excel.cxx @@ -40,6 +40,7 @@ #include "imp_op.hxx" #include "excimp8.hxx" #include "exp_op.hxx" +#include "scdll.hxx" #include <memory> @@ -217,4 +218,14 @@ FltError ScFormatFilterPluginImpl::ScExportExcel5( SfxMedium& rMedium, ScDocumen return eRet; } +extern "C" SAL_DLLPUBLIC_EXPORT bool SAL_CALL TestImportXLS(const OUString &rURL) +{ + ScDLL::Init(); + SfxMedium aMedium(rURL, StreamMode::READ); + ScDocument aDocument; + aDocument.MakeTable(0); + FltError eError = ScFormatFilter::Get().ScImportExcel(aMedium, &aDocument, EIF_AUTO); + return eError == eERR_OK; +} + /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/workben/fftester.cxx b/vcl/workben/fftester.cxx index 41f5f88..f0bbb74 100644 --- a/vcl/workben/fftester.cxx +++ b/vcl/workben/fftester.cxx @@ -335,6 +335,20 @@ try_again: else ret = (int) (*pfnImport)(out, OUString("CWW8")); } + else if (strcmp(argv[2], "xls") == 0) + { + static HFilterCall pfnImport(0); + if (!pfnImport) + { + osl::Module aLibrary; + aLibrary.loadRelative(&thisModule, "libscfiltlo.so", SAL_LOADMODULE_LAZY); + pfnImport = reinterpret_cast<HFilterCall>( + aLibrary.getFunctionSymbol("TestImportXLS")); + aLibrary.release(); + } + ret = (int) (*pfnImport)(out); + } + else if (strcmp(argv[2], "hwp") == 0) { static HFilterCall pfnImport(0); commit 9e481f6036775044bb02a5e08f6d3af3a37acc56 Author: Caolán McNamara <[email protected]> Date: Wed Sep 30 15:27:00 2015 +0100 cppcheck: uninitMemberVar Change-Id: I8409a6f00803e357a20b53fd59d77f155e057753 diff --git a/vcl/opengl/win/blocklist_parser.cxx b/vcl/opengl/win/blocklist_parser.cxx index ef4771a..b132265 100644 --- a/vcl/opengl/win/blocklist_parser.cxx +++ b/vcl/opengl/win/blocklist_parser.cxx @@ -10,9 +10,10 @@ #include "blocklist_parser.hxx" WinBlocklistParser::WinBlocklistParser(const OUString& rURL, - std::vector<wgl::DriverInfo>& rDriverList): - maURL(rURL), - mrDriverList(rDriverList) + std::vector<wgl::DriverInfo>& rDriverList) + : maURL(rURL) + , mrDriverList(rDriverList) + , meBlockType(BlockType::UNKNOWN) { } commit 80c4130367d0bbd527b8cec1bd10e4e72c453647 Author: Caolán McNamara <[email protected]> Date: Wed Sep 30 15:05:03 2015 +0100 titchy typo ScImportExcel->ScExportExcel Change-Id: I05624acbdf4695ef652e619662996ac41afed410 diff --git a/sc/source/filter/excel/excel.cxx b/sc/source/filter/excel/excel.cxx index d193bb5..10c22a9 100644 --- a/sc/source/filter/excel/excel.cxx +++ b/sc/source/filter/excel/excel.cxx @@ -202,7 +202,7 @@ FltError ScFormatFilterPluginImpl::ScExportExcel5( SfxMedium& rMedium, ScDocumen return eERR_NI; // check the passed Calc document - OSL_ENSURE( pDocument, "::ScImportExcel - no document" ); + OSL_ENSURE( pDocument, "::ScExportExcel5 - no document" ); if( !pDocument ) return eERR_INTERN; // should not happen // check the output stream from medium
_______________________________________________ Libreoffice-commits mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
