X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Flengthcommon.cpp;h=4478d84ae5da41acdf531b91669d7b85d379b1fb;hb=7441172d4d9a26eb4824bb8bee003f457ef34f1c;hp=72f5bbf88faf4274800b11edd344152b9ae79e4b;hpb=25ff2f8e2bd4b8567d8a921e478204759e0e942c;p=lyx.git diff --git a/src/lengthcommon.cpp b/src/lengthcommon.cpp index 72f5bbf88f..4478d84ae5 100644 --- a/src/lengthcommon.cpp +++ b/src/lengthcommon.cpp @@ -19,9 +19,6 @@ #include "support/lassert.h" #include "support/lstrings.h" -#include -#include - using namespace std; using namespace lyx::support; @@ -35,7 +32,7 @@ char const * const unit_name[] = { "bp", "cc", "cm", "dd", "em", "ex", "in", "mm", "mu", "pc", "pt", "sp", "text%", "col%", "page%", "line%", - "theight%", "pheight%", "" }; + "theight%", "pheight%", "baselineskip%", "" }; int const num_units = int(sizeof(unit_name) / sizeof(unit_name[0]) - 1); @@ -45,7 +42,7 @@ char const * const unit_name_gui[] = { N_("ex"), N_("in[[unit of measure]]"), N_("mm"), N_("mu[[unit of measure]]"), N_("pc"), N_("pt"), N_("sp"), N_("Text Width %"), N_("Column Width %"), N_("Page Width %"), N_("Line Width %"), - N_("Text Height %"), N_("Page Height %"), "" }; + N_("Text Height %"), N_("Page Height %"), N_("Line Distance %"), "" }; Length::UNIT unitFromString(string const & data) @@ -207,13 +204,13 @@ LaTeXLength table[] = { }; -} // namespace anon +} // namespace const char * stringFromUnit(int unit) { if (unit < 0 || unit > num_units) - return 0; + return nullptr; return unit_name[unit]; } @@ -315,9 +312,7 @@ bool isValidLength(string const & data, Length * result) return true; } - string buffer = data; - int pattern_index = 0; - char pattern[3]; + string buffer = data; // To make isValidLength recognize negative values // this little hack is needed: @@ -345,19 +340,19 @@ bool isValidLength(string const & data, Length * result) int unit_index = 1; // entries at index 0 are sentinels // construct "pattern" from "data" + string pattern; while (!isEndOfData(buffer)) { - if (pattern_index > 2) + if (pattern.size() > 2) return false; - pattern[pattern_index] = nextToken(buffer, number, + char const token = nextToken(buffer, number, number_index, unit, unit_index); - if (pattern[pattern_index] == 'E') + if (token == 'E') return false; - ++pattern_index; + pattern += token; } - pattern[pattern_index] = '\0'; // only the most basic pattern is accepted here - if (strcmp(pattern, "nu") != 0) + if (pattern != "nu") return false; // It _was_ a correct length string.