diff options
| author | Mook <marky@activestate.com> | 2012-05-29 12:44:34 -0700 | 
|---|---|---|
| committer | Mook <marky@activestate.com> | 2012-05-29 12:44:34 -0700 | 
| commit | 7e9e5b1e059efa957d2d7e9fa6b364706f621711 (patch) | |
| tree | 24e9e113362f6a3f05f39e64ef9207f712b4e1a9 /src/CharClassify.cxx | |
| parent | 08d35504786635e06b870b2674da38c0e89521cd (diff) | |
| download | scintilla-mirror-7e9e5b1e059efa957d2d7e9fa6b364706f621711.tar.gz | |
add CharClassifier::GetCharsOfClass
add SCI_GETWORDCHARS(<unused>, stringresult chars) command to get word chars
add SCI_GETWHITESPACECHARS(<unused>, stringresult chars) to get whitespace chars
add SCI_GETPUNCTUATIONCHARS(<unused>, stringresult chars) to get punctutation
also add tests for {Set,Get}{Word,Whitespce,Punctuation}Chars, CharClassifier
Diffstat (limited to 'src/CharClassify.cxx')
| -rw-r--r-- | src/CharClassify.cxx | 16 | 
1 files changed, 16 insertions, 0 deletions
diff --git a/src/CharClassify.cxx b/src/CharClassify.cxx index c16af4547..7e3db737e 100644 --- a/src/CharClassify.cxx +++ b/src/CharClassify.cxx @@ -46,3 +46,19 @@ void CharClassify::SetCharClasses(const unsigned char *chars, cc newCharClass) {  		}  	}  } + +int CharClassify::GetCharsOfClass(cc characterClass, unsigned char *buffer) { +	// Get characters belonging to the given char class; return the number +	// of characters (if the buffer is NULL, don't write to it). +	int count = 0; +	for (int ch = maxChar - 1; ch >= 0; --ch) { +		if (charClass[ch] == characterClass) { +			++count; +			if (buffer) { +				*buffer = static_cast<unsigned char>(ch); +				buffer++; +			} +		} +	} +	return count; +}  | 
