~ubuntu-branches/ubuntu/wily/bombono-dvd/wily

« back to all changes in this revision

Viewing changes to libs/boost-lib/libs/regex/src/c_regex_traits.cpp

  • Committer: Bazaar Package Importer
  • Author(s): Alessio Treglia
  • Date: 2010-11-04 11:46:25 UTC
  • mto: This revision was merged to the branch mainline in revision 8.
  • Revision ID: james.westby@ubuntu.com-20101104114625-8xfdhvhpsm51i0nu
Tags: upstream-0.8.0
ImportĀ upstreamĀ versionĀ 0.8.0

Show diffs side-by-side

added added

removed removed

Lines of Context:
122
122
   char_class_graph=char_class_alnum|char_class_punct,
123
123
   char_class_blank=1<<9,
124
124
   char_class_word=1<<10,
125
 
   char_class_unicode=1<<11
 
125
   char_class_unicode=1<<11,
 
126
   char_class_horizontal=1<<12,
 
127
   char_class_vertical=1<<13
126
128
};
127
129
 
128
130
c_regex_traits<char>::char_class_type BOOST_REGEX_CALL c_regex_traits<char>::lookup_classname(const char* p1, const char* p2)
137
139
      char_class_digit,
138
140
      char_class_digit,
139
141
      char_class_graph,
 
142
      char_class_horizontal,
140
143
      char_class_lower,
141
144
      char_class_lower,
142
145
      char_class_print,
146
149
      char_class_upper,
147
150
      char_class_unicode,
148
151
      char_class_upper,
 
152
      char_class_vertical,
149
153
      char_class_alnum | char_class_word, 
150
154
      char_class_alnum | char_class_word, 
151
155
      char_class_xdigit,
152
156
   };
153
157
 
154
 
   int id = ::boost::re_detail::get_default_class_id(p1, p2);
155
 
   if(id < 0)
 
158
   int idx = ::boost::re_detail::get_default_class_id(p1, p2);
 
159
   if(idx < 0)
156
160
   {
157
161
      std::string s(p1, p2);
158
162
      for(std::string::size_type i = 0; i < s.size(); ++i)
159
163
         s[i] = static_cast<char>((std::tolower)(static_cast<unsigned char>(s[i])));
160
 
      id = ::boost::re_detail::get_default_class_id(&*s.begin(), &*s.begin() + s.size());
 
164
      idx = ::boost::re_detail::get_default_class_id(&*s.begin(), &*s.begin() + s.size());
161
165
   }
162
 
   BOOST_ASSERT(std::size_t(id+1) < sizeof(masks) / sizeof(masks[0]));
163
 
   return masks[id+1];
 
166
   BOOST_ASSERT(std::size_t(idx+1) < sizeof(masks) / sizeof(masks[0]));
 
167
   return masks[idx+1];
164
168
}
165
169
 
166
170
bool BOOST_REGEX_CALL c_regex_traits<char>::isctype(char c, char_class_type mask)
176
180
      || ((mask & char_class_punct) && (std::ispunct)(static_cast<unsigned char>(c)))
177
181
      || ((mask & char_class_xdigit) && (std::isxdigit)(static_cast<unsigned char>(c)))
178
182
      || ((mask & char_class_blank) && (std::isspace)(static_cast<unsigned char>(c)) && !::boost::re_detail::is_separator(c))
179
 
      || ((mask & char_class_word) && (c == '_'));
 
183
      || ((mask & char_class_word) && (c == '_'))
 
184
      || ((mask & char_class_vertical) && (::boost::re_detail::is_separator(c) || (c == '\v')))
 
185
      || ((mask & char_class_horizontal) && (std::isspace)(static_cast<unsigned char>(c)) && !::boost::re_detail::is_separator(c) && (c != '\v'));
180
186
}
181
187
 
182
188
c_regex_traits<char>::string_type BOOST_REGEX_CALL c_regex_traits<char>::lookup_collatename(const char* p1, const char* p2)