X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2FVSpace.cpp;h=da9133a4c090727525e11a413a82550439bd9c92;hb=8b7584846c4e1a9c87a004fab479722fee7e3013;hp=06799263f4e01a2049ff40d51e3941a6d446d978;hpb=a7b921aeeba67805a4057eba1cadac45e480e855;p=lyx.git diff --git a/src/VSpace.cpp b/src/VSpace.cpp index 06799263f4..da9133a4c0 100644 --- a/src/VSpace.cpp +++ b/src/VSpace.cpp @@ -244,27 +244,23 @@ bool isValidGlueLength(string const & data, GlueLength * result) } // end of hack - int pattern_index = 0; - int table_index = 0; - char pattern[22]; // 20 + 1 for pattern[20], + 1 for '\0' - - number_index = 1; - unit_index = 1; // entries at index 0 are sentinels + number_index = unit_index = 1; // entries at index 0 are sentinels // construct "pattern" from "data" + size_t const pattern_max_size = 20; + string pattern; while (!isEndOfData(buffer)) { - if (pattern_index > (sizeof(pattern) - 2)) + if (pattern.size() > pattern_max_size) return false; - pattern[pattern_index] = nextToken(buffer); - if (pattern[pattern_index] == 'E') + char const c = nextToken(buffer); + if (c == 'E') return false; - ++pattern_index; + pattern.push_back(c); } - pattern[pattern_index] = '\0'; // search "pattern" in "table" - table_index = 0; - while (strcmp(pattern, table[table_index].pattern)) { + size_t table_index = 0; + while (pattern != table[table_index].pattern) { ++table_index; if (!*table[table_index].pattern) return false;