zynaddsubfx

ZynAddSubFX open source synthesizer
Log | Files | Refs | Submodules | LICENSE

commit 10c87e134695c009d706fc2fa0fb2651a03a6f20
parent b2eb72f658c0e942978fee36f9d83305cbc975cb
Author: fundamental <mark.d.mccurry@gmail.com>
Date:   Wed,  2 Mar 2016 21:11:52 -0500

Bank: Fix Dedup Code For 3+ Identically Named Banks

Diffstat:
Msrc/Misc/Bank.cpp | 14+++++++-------
Msrc/UI/BankView.cpp | 3+++
2 files changed, 10 insertions(+), 7 deletions(-)

diff --git a/src/Misc/Bank.cpp b/src/Misc/Bank.cpp @@ -370,21 +370,21 @@ void Bank::rescanforbanks() sort(banks.begin(), banks.end()); //remove duplicate bank names - int dupl = 0; - for(int j = 0; j < (int) banks.size() - 1; ++j) + for(int j = 0; j < (int) banks.size() - 1; ++j) { + int dupl = 0; for(int i = j + 1; i < (int) banks.size(); ++i) { if(banks[i].name == banks[j].name) { //add a [1] to the first bankname and [n] to others banks[i].name = banks[i].name + '[' + stringFrom(dupl + 2) + ']'; - if(dupl == 0) - banks[j].name += "[1]"; - dupl++; } - else - dupl = 0; } + if(dupl != 0) + banks[j].name += "[1]"; + if(dupl) + j += dupl; + } } void Bank::setMsb(uint8_t msb) diff --git a/src/UI/BankView.cpp b/src/UI/BankView.cpp @@ -31,6 +31,9 @@ void BankList::OSC_raw(const char *msg) if(pos == 0) this->clear(); + if(pos <= this->size()-2) { + return; + } this->add(path); } if(!strcmp(msg, "/bank/bank_select")&& !strcmp(rtosc_argument_string(msg),"i")) {