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:
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")) {