]> git.ipfire.org Git - thirdparty/squid.git/blame - src/base/CharacterSet.cc
Merged from trunk
[thirdparty/squid.git] / src / base / CharacterSet.cc
CommitLineData
c8046ec7
FC
1#include "squid.h"
2
3#include "CharacterSet.h"
4
13aef560
FC
5#include <algorithm>
6
7static bool
8isNonZero(uint8_t i) {
9 return i!=0;
10}
11
c8046ec7
FC
12const CharacterSet &
13CharacterSet::operator +=(const CharacterSet &src)
14{
13aef560 15 std::copy_if(src.chars_.begin(),src.chars_.end(),chars_.begin(),isNonZero);
c8046ec7
FC
16 return *this;
17}
dcd4fdac
FC
18
19CharacterSet &
20CharacterSet::add(const unsigned char c)
21{
22 chars_[static_cast<uint8_t>(c)] = 1;
23 return *this;
24}
25
26CharacterSet::CharacterSet(const char *label, const char * const c)
27: name(label == NULL ? "anonymous" : label), chars_(vector_type(256,0))
28{
29 const size_t clen = strlen(c);
30 for (size_t i = 0; i < clen; ++i)
31 add(c[i]);
32}