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;
 }
 

Reply via email to