From 20d28e80a5c861a9d5f449ea911ab75b4f37ad0d Mon Sep 17 00:00:00 2001 From: Jef Date: Tue, 24 Sep 2024 14:54:57 +0200 Subject: Initial community commit --- Src/Wasabi/bfc/file/wildcharsenum.cpp | 64 +++++++++++++++++++++++++++++++++++ 1 file changed, 64 insertions(+) create mode 100644 Src/Wasabi/bfc/file/wildcharsenum.cpp (limited to 'Src/Wasabi/bfc/file/wildcharsenum.cpp') diff --git a/Src/Wasabi/bfc/file/wildcharsenum.cpp b/Src/Wasabi/bfc/file/wildcharsenum.cpp new file mode 100644 index 00000000..ae3e24e2 --- /dev/null +++ b/Src/Wasabi/bfc/file/wildcharsenum.cpp @@ -0,0 +1,64 @@ +// NONPORTABLE NONPORTABLE NONPORTABLE +#include "precomp_wasabi_bfc.h" +#ifdef WIN32 +#include +#endif +#include "wildcharsenum.h" +#include +#include +#include + +WildcharsEnumerator::WildcharsEnumerator(const wchar_t *_selection) : selection(_selection) +{ + // Then scan. + rescan(); +} + +WildcharsEnumerator::~WildcharsEnumerator() { + finddatalist.deleteAll(); +} + +int WildcharsEnumerator::getNumFiles() +{ + return finddatalist.getNumItems(); +} + +const wchar_t *WildcharsEnumerator::enumFile(int n) { + StringW path = finddatalist.enumItem(n)->path; + if (!path.isempty()) + { + enumFileString = StringPathCombine(path.getValue(), finddatalist.enumItem(n)->filename.getValue()); + return enumFileString; + } + return finddatalist.enumItem(n)->filename; +} + +void WildcharsEnumerator::rescan() +{ + finddatalist.removeAll(); + ParamParser pp(selection, L";"); + for (int is = 0; is < pp.getNumItems(); is++) + { + StringW _selection = pp.enumItem(is); + + PathParserW parse(_selection); + StringW path = L""; + StringW mask = L""; + + for (int i=0;i