commit 74c10e06aa63161349def47738afcca7f398f330
Author: Juergen Spitzmueller <[email protected]>
Date: Mon May 1 17:34:25 2017 +0200
Do not add symbols twice to Encoding::symbolsList()
Also sort the list properly.
Fixes #10644
---
src/Encoding.cpp | 12 ++++++++----
1 files changed, 8 insertions(+), 4 deletions(-)
diff --git a/src/Encoding.cpp b/src/Encoding.cpp
index 9dde12d..7dc12af 100644
--- a/src/Encoding.cpp
+++ b/src/Encoding.cpp
@@ -264,11 +264,15 @@ vector<char_type> Encoding::symbolsList() const
vector<char_type> symbols;
for (char_type c = 0; c < start_encodable_; ++c)
symbols.push_back(c);
- //add all encodable characters
+ // add all encodable characters
copy(encodable_.begin(), encodable_.end(), back_inserter(symbols));
- // now the ones from the unicodesymbols file
- for (pair<char_type, CharInfo> const & elem : unicodesymbols)
- symbols.push_back(elem.first);
+ // now the ones from the unicodesymbols file that are not already there
+ for (pair<char_type, CharInfo> const & elem : unicodesymbols) {
+ if (find(symbols.begin(), symbols.end(), elem.first) ==
symbols.end())
+ symbols.push_back(elem.first);
+ }
+ // finally, sort the vector
+ sort(symbols.begin(), symbols.end());
return symbols;
}