1 /* 2 * Part of WCM Commander 3 * https://github.com/corporateshark/WCMCommander 4 * wcm@linderdaum.com 5 */ 6 7 #pragma once 8 9 #include "wal/wal.h" 10 #include "unicode_lc.h" 11 12 #include <vector> 13 14 bool accmask_nocase( const unicode_t* name, const unicode_t* mask ); 15 bool accmask( const unicode_t* name, const unicode_t* mask ); 16 17 class clMultimaskSplitter 18 { 19 public: 20 explicit clMultimaskSplitter( const std::vector<unicode_t>& MultiMask ); 21 22 /// this is OS-specific: case insensitive on Win/Mac, case sensitive on Linux/FreeBSD 23 bool CheckAndFetchAllMasks( const unicode_t* FileName ); 24 25 bool CheckAndFetchAllMasks_NoCase( const unicode_t* FileName ); 26 27 bool CheckAndFetchAllMasks_Case( const unicode_t* FileName ); 28 29 protected: 30 bool HasNextMask() const; 31 std::vector<unicode_t> GetNextMask(); 32 33 private: 34 const std::vector<unicode_t>& m_MultiMask; 35 size_t m_CurrentPos; 36 }; 37