Code Cleanup

- Converted use of isspace (which doesn't know Unicode) to Lexer::is_ws.
This commit is contained in:
Paul Beckingham 2014-04-24 17:06:05 -04:00
parent 763ded488c
commit 74cfc972fc
2 changed files with 18 additions and 13 deletions

View file

@ -37,6 +37,7 @@
#ifdef NIBBLER_FEATURE_REGEX #ifdef NIBBLER_FEATURE_REGEX
#include <RX.h> #include <RX.h>
#endif #endif
#include <Lexer.h>
static const char* _uuid_pattern = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"; static const char* _uuid_pattern = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx";
static const unsigned int _uuid_min_length = 14; static const unsigned int _uuid_min_length = 14;
@ -1031,12 +1032,12 @@ bool Nibbler::getName (std::string& result)
{ {
if (! isdigit (_input[i]) && if (! isdigit (_input[i]) &&
! ispunct (_input[i]) && ! ispunct (_input[i]) &&
! isspace (_input[i])) ! Lexer::is_ws (_input[i]))
{ {
++i; ++i;
while (i < _length && while (i < _length &&
! ispunct (_input[i]) && ! ispunct (_input[i]) &&
! isspace (_input[i])) ! Lexer::is_ws (_input[i]))
{ {
++i; ++i;
} }
@ -1063,7 +1064,7 @@ bool Nibbler::getWord (std::string& result)
{ {
while (!isdigit (_input[i]) && while (!isdigit (_input[i]) &&
!isPunctuation (_input[i]) && !isPunctuation (_input[i]) &&
!isspace (_input[i])) !Lexer::is_ws (_input[i]))
{ {
++i; ++i;
} }

View file

@ -529,8 +529,10 @@ void guess (
//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////
bool nontrivial (const std::string& input) bool nontrivial (const std::string& input)
{ {
for (size_t i = 0; i < input.length (); ++i) std::string::size_type i = 0;
if (!isspace (input[i])) int character;
while ((character = utf8_next_char (input, i)))
if (! Lexer::is_ws (character))
return true; return true;
return false; return false;
@ -549,8 +551,10 @@ bool digitsOnly (const std::string& input)
//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////
bool noSpaces (const std::string& input) bool noSpaces (const std::string& input)
{ {
for (size_t i = 0; i < input.length (); ++i) std::string::size_type i = 0;
if (isspace (input[i])) int character;
while ((character = utf8_next_char (input, i)))
if (Lexer::is_ws (character))
return false; return false;
return true; return true;
@ -575,13 +579,13 @@ bool isWordStart (const std::string& input, std::string::size_type pos)
return false; return false;
// If pos is the first non space/punct character of the string. // If pos is the first non space/punct character of the string.
if (pos == 0 && !isspace (input[pos]) && !isPunctuation (input[pos])) if (pos == 0 && ! Lexer::is_ws (input[pos]) && !isPunctuation (input[pos]))
return true; return true;
// If pos is not the first alphanumeric character, but there is a preceding // If pos is not the first alphanumeric character, but there is a preceding
// space/punct character. // space/punct character.
if (pos > 0 && !isspace (input[pos]) && !isPunctuation (input[pos]) if (pos > 0 && ! Lexer::is_ws (input[pos]) && !isPunctuation (input[pos])
&& (isspace (input[pos - 1]) || isPunctuation (input[pos - 1]))) && ( Lexer::is_ws (input[pos - 1]) || isPunctuation (input[pos - 1])))
return true; return true;
return false; return false;
@ -597,13 +601,13 @@ bool isWordEnd (const std::string& input, std::string::size_type pos)
return false; return false;
// If pos is the last alphanumeric character of the string. // If pos is the last alphanumeric character of the string.
if (pos == input.length () - 1 && !isspace (input[pos]) && !isPunctuation (input[pos])) if (pos == input.length () - 1 && ! Lexer::is_ws (input[pos]) && !isPunctuation (input[pos]))
return true; return true;
// If pos is not the last alphanumeric character, but there is a following // If pos is not the last alphanumeric character, but there is a following
// non-alphanumeric character. // non-alphanumeric character.
if (pos < input.length () - 1 && !isspace (input[pos]) && !isPunctuation (input[pos]) if (pos < input.length () - 1 && ! Lexer::is_ws (input[pos]) && !isPunctuation (input[pos])
&& (isspace (input[pos + 1]) || isPunctuation (input[pos + 1]))) && ( Lexer::is_ws (input[pos + 1]) || isPunctuation (input[pos + 1])))
return true; return true;
return false; return false;