comparison Core/Toolbox.cpp @ 2900:668d5ad73c74

Font::Render()
author Sebastien Jodogne <s.jodogne@gmail.com>
date Mon, 22 Oct 2018 14:20:21 +0200
parents 49b152059472
children ae20fccdd867
comparison
equal deleted inserted replaced
2899:5dd649de253d 2900:668d5ad73c74
622 } 622 }
623 } 623 }
624 #endif 624 #endif
625 625
626 626
627 static bool IsAsciiCharacter(uint8_t c)
628 {
629 return (c != 0 &&
630 c <= 127 &&
631 (c == '\n' || !iscntrl(c)));
632 }
633
634
627 bool Toolbox::IsAsciiString(const void* data, 635 bool Toolbox::IsAsciiString(const void* data,
628 size_t size) 636 size_t size)
629 { 637 {
630 const uint8_t* p = reinterpret_cast<const uint8_t*>(data); 638 const uint8_t* p = reinterpret_cast<const uint8_t*>(data);
631 639
632 for (size_t i = 0; i < size; i++, p++) 640 for (size_t i = 0; i < size; i++, p++)
633 { 641 {
634 if (*p > 127 || *p == 0 || iscntrl(*p)) 642 if (!IsAsciiCharacter(*p))
635 { 643 {
636 return false; 644 return false;
637 } 645 }
638 } 646 }
639 647
652 std::string result; 660 std::string result;
653 661
654 result.reserve(source.size() + 1); 662 result.reserve(source.size() + 1);
655 for (size_t i = 0; i < source.size(); i++) 663 for (size_t i = 0; i < source.size(); i++)
656 { 664 {
657 if (source[i] <= 127 && source[i] >= 0 && !iscntrl(source[i])) 665 if (IsAsciiCharacter(source[i]))
658 { 666 {
659 result.push_back(source[i]); 667 result.push_back(source[i]);
660 } 668 }
661 } 669 }
662 670