diff options
| author | Neil <nyamatongwe@gmail.com> | 2018-05-14 16:14:00 +1000 | 
|---|---|---|
| committer | Neil <nyamatongwe@gmail.com> | 2018-05-14 16:14:00 +1000 | 
| commit | 1877c3dbf8b5132d3b7f95fe373d1d97961e4129 (patch) | |
| tree | 9aeac19749bf95010bf6a542e5088caaa8aaad93 /src | |
| parent | 8c5c845e2fb26e5b4b10b8d882b02b39bdb39454 (diff) | |
| download | scintilla-mirror-1877c3dbf8b5132d3b7f95fe373d1d97961e4129.tar.gz | |
Remove dependency on StringCopy and simplify constructor.
Diffstat (limited to 'src')
| -rw-r--r-- | src/CaseConvert.cxx | 14 | 
1 files changed, 9 insertions, 5 deletions
| diff --git a/src/CaseConvert.cxx b/src/CaseConvert.cxx index 8f5a25aa4..6228f89d3 100644 --- a/src/CaseConvert.cxx +++ b/src/CaseConvert.cxx @@ -8,6 +8,7 @@  // Copyright 2013 by Neil Hodgson <neilh@scintilla.org>  // The License.txt file describes the conditions under which this software may be distributed. +#include <cassert>  #include <cstring>  #include <stdexcept> @@ -16,7 +17,6 @@  #include <vector>  #include <algorithm> -#include "StringCopy.h"  #include "CaseConvert.h"  #include "UniConversion.h" @@ -572,8 +572,12 @@ class CaseConverter : public ICaseConverter {  	struct CharacterConversion {  		int character;  		ConversionString conversion; -		CharacterConversion(int character_=0, const char *conversion_="") noexcept : character(character_) { -			StringCopy(conversion.conversion, conversion_); +		CharacterConversion() noexcept : character(0) { +			// Empty case: NUL -> "". +		} +		CharacterConversion(int character_, std::string_view conversion_) noexcept : character(character_) { +			assert(conversion_.length() <= maxConversionLength); +			std::copy(std::begin(conversion_), std::end(conversion_), conversion.conversion);  		}  		bool operator<(const CharacterConversion &other) const noexcept {  			return character < other.character; @@ -685,7 +689,7 @@ void AddSymmetric(enum CaseConversion conversion, int lower,int upper) {  void SetupConversions(enum CaseConversion conversion) {  	// First initialize for the symmetric ranges -	for (size_t i=0; i<ELEMENTS(symmetricCaseConversionRanges);) { +	for (size_t i=0; i<std::size(symmetricCaseConversionRanges);) {  		const int lower = symmetricCaseConversionRanges[i++];  		const int upper = symmetricCaseConversionRanges[i++];  		const int length = symmetricCaseConversionRanges[i++]; @@ -695,7 +699,7 @@ void SetupConversions(enum CaseConversion conversion) {  		}  	}  	// Add the symmetric singletons -	for (size_t i=0; i<ELEMENTS(symmetricCaseConversions);) { +	for (size_t i=0; i<std::size(symmetricCaseConversions);) {  		const int lower = symmetricCaseConversions[i++];  		const int upper = symmetricCaseConversions[i++];  		AddSymmetric(conversion, lower, upper); | 
