From 348a03f3e47b89609ca3843b52da129df15e68f8 Mon Sep 17 00:00:00 2001 From: Stephan Bergmann Date: Fri, 13 Sep 2013 15:25:45 +0200 Subject: Hook SourceProvider into unoidl::loadProvider Change-Id: I0a499fd98a1008ced0efdeec3b10bff30df57c0e --- unoidl/source/unoidl.cxx | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'unoidl') diff --git a/unoidl/source/unoidl.cxx b/unoidl/source/unoidl.cxx index a9939e4b9755..bdc7b98ed0d4 100644 --- a/unoidl/source/unoidl.cxx +++ b/unoidl/source/unoidl.cxx @@ -12,10 +12,13 @@ #include #include +#include "osl/file.h" +#include "osl/file.hxx" #include "osl/mutex.hxx" #include "rtl/ref.hxx" #include "rtl/ustring.hxx" #include "unoidl/legacyprovider.hxx" +#include "unoidl/sourceprovider.hxx" #include "unoidl/unoidl.hxx" #include "unoidl/unoidlprovider.hxx" @@ -104,6 +107,15 @@ Provider::~Provider() throw () {} rtl::Reference< Provider > loadProvider( rtl::Reference< Manager > const & manager, OUString const & uri) { + osl::DirectoryItem item; + if (osl::DirectoryItem::get(uri, item) == osl::FileBase::E_None) { + osl::FileStatus status(osl_FileStatus_Mask_Type); + if (item.getFileStatus(status) == osl::FileBase::E_None + && status.getFileType() == osl::FileStatus::Directory) + { + return new SourceProvider(manager, uri); + } + } try { return new UnoidlProvider(uri); } catch (FileFormatException & e) { -- cgit