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 | dd24e21bbeadbd1c7f6954f72ebe479e7ce3dc99 (patch) | |
tree | 52cde4788556622c9e58f09a202df524e3497216 /src/CharClassify.cxx | |
parent | 9adc3c5c2f112142780c0cdd892e3ff7e338c3ad (diff) | |
download | scintilla-mirror-dd24e21bbeadbd1c7f6954f72ebe479e7ce3dc99.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; +} |