foobar2000 SDK  2015-01-14
Public Member Functions | Private Attributes
string_filter_noncasesensitive

#include <string_filter.h>

Public Member Functions

 string_filter_noncasesensitive (const char *p_string, t_size p_string_len=~0)
 
bool test (const char *p_string, t_size p_string_len=~0) const
 

Private Attributes

pfc::string8_fastalloc m_lowercasebuffer
 
pfc::string8 m_pattern
 

Detailed Description

Definition at line 1 of file string_filter.h.

Constructor & Destructor Documentation

string_filter_noncasesensitive::string_filter_noncasesensitive ( const char *  p_string,
t_size  p_string_len = ~0 
)
inline

Definition at line 3 of file string_filter.h.

3  {
4  ::uStringLower(m_pattern,p_string,p_string_len);
5  }
void uStringLower(pfc::string_base &out, const char *src, t_size len=~0)
Definition: shared.h:383

Member Function Documentation

bool string_filter_noncasesensitive::test ( const char *  p_string,
t_size  p_string_len = ~0 
) const
inline

Definition at line 7 of file string_filter.h.

7  {
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  }
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

Field Documentation

pfc::string8_fastalloc string_filter_noncasesensitive::m_lowercasebuffer
mutableprivate

Definition at line 22 of file string_filter.h.

pfc::string8 string_filter_noncasesensitive::m_pattern
private

Definition at line 23 of file string_filter.h.


The documentation for this class was generated from the following file: