Mercurial > hg > orthanc
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 |