mirror of
https://github.com/wled/WLED.git
synced 2025-07-26 04:06:37 +00:00
bugfix: indexOf() returns -1 if string not found
... so we must use `int` instead of `unsigned`
This commit is contained in:
parent
703f84e5e1
commit
7be868db12
@ -265,16 +265,16 @@ uint8_t extractModeSlider(uint8_t mode, uint8_t slider, char *dest, uint8_t maxL
|
|||||||
if (mode < strip.getModeCount()) {
|
if (mode < strip.getModeCount()) {
|
||||||
String lineBuffer = FPSTR(strip.getModeData(mode));
|
String lineBuffer = FPSTR(strip.getModeData(mode));
|
||||||
if (lineBuffer.length() > 0) {
|
if (lineBuffer.length() > 0) {
|
||||||
unsigned start = lineBuffer.indexOf('@');
|
int start = lineBuffer.indexOf('@'); // String::indexOf() returns an int, not an unsigned; -1 means "not found"
|
||||||
unsigned stop = lineBuffer.indexOf(';', start);
|
int stop = lineBuffer.indexOf(';', start);
|
||||||
if (start>0 && stop>0) {
|
if (start>0 && stop>0) {
|
||||||
String names = lineBuffer.substring(start, stop); // include @
|
String names = lineBuffer.substring(start, stop); // include @
|
||||||
unsigned nameBegin = 1, nameEnd, nameDefault;
|
int nameBegin = 1, nameEnd, nameDefault;
|
||||||
if (slider < 10) {
|
if (slider < 10) {
|
||||||
for (size_t i=0; i<=slider; i++) {
|
for (size_t i=0; i<=slider; i++) {
|
||||||
const char *tmpstr;
|
const char *tmpstr;
|
||||||
dest[0] = '\0'; //clear dest buffer
|
dest[0] = '\0'; //clear dest buffer
|
||||||
if (nameBegin == 0) break; // there are no more names
|
if (nameBegin <= 0) break; // there are no more names
|
||||||
nameEnd = names.indexOf(',', nameBegin);
|
nameEnd = names.indexOf(',', nameBegin);
|
||||||
if (i == slider) {
|
if (i == slider) {
|
||||||
nameDefault = names.indexOf('=', nameBegin); // find default value
|
nameDefault = names.indexOf('=', nameBegin); // find default value
|
||||||
|
Loading…
x
Reference in New Issue
Block a user