foobar2000 SDK  2015-01-14
string_filter.h
Go to the documentation of this file.
2 public:
3  string_filter_noncasesensitive(const char * p_string,t_size p_string_len = ~0) {
4  ::uStringLower(m_pattern,p_string,p_string_len);
5  }
6 
7  bool test(const char * p_string,t_size p_string_len = ~0) const {
8  ::uStringLower(m_lowercasebuffer,p_string,p_string_len);
9  t_size walk = 0;
10  while(m_pattern[walk] != 0) {
11  while(m_pattern[walk] == ' ') walk++;
12  t_size delta = 0;
13  while(m_pattern[walk+delta] != 0 && m_pattern[walk+delta] != ' ') delta++;
14  if (delta > 0) {
15  if (pfc::string_find_first_ex(m_lowercasebuffer,~0,m_pattern+walk,delta) == ~0) return false;
16  }
17  walk += delta;
18  }
19  return true;
20  }
21 private:
24 };
string_filter_noncasesensitive(const char *p_string, t_size p_string_len=~0)
Definition: string_filter.h:3
t_size string_find_first_ex(const char *p_string, t_size p_string_length, char p_tofind, t_size p_start)
size_t t_size
Definition: int_types.h:48
pfc::string8_fastalloc m_lowercasebuffer
Definition: string_filter.h:22
void uStringLower(pfc::string_base &out, const char *src, t_size len=~0)
Definition: shared.h:383
string8_t< pfc::alloc_fast_aggressive > string8_fastalloc
Definition: string_base.h:435
bool test(const char *p_string, t_size p_string_len=~0) const
Definition: string_filter.h:7