X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2FVSpace.cpp;h=da9133a4c090727525e11a413a82550439bd9c92;hb=8b7584846c4e1a9c87a004fab479722fee7e3013;hp=9003951e912a514ee58e1f827d26950d6d7d98b1;hpb=f407442b39b1f163990f8c35cfc6f62de8dd2210;p=lyx.git diff --git a/src/VSpace.cpp b/src/VSpace.cpp index 9003951e91..da9133a4c0 100644 --- a/src/VSpace.cpp +++ b/src/VSpace.cpp @@ -23,11 +23,14 @@ #include "support/convert.h" #include "support/lstrings.h" +#include "support/lassert.h" + #include using namespace std; using namespace lyx::support; + namespace lyx { namespace { @@ -241,27 +244,23 @@ bool isValidGlueLength(string const & data, GlueLength * result) } // end of hack - int pattern_index = 0; - int table_index = 0; - char pattern[20]; - - 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 > 20) + 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; @@ -455,7 +454,7 @@ string const VSpace::asLatexCommand(BufferParams const & params) const : "\\vspace{" + len_.asLatexString() + '}'; default: - BOOST_ASSERT(false); + LASSERT(false, /**/); return string(); } } @@ -490,6 +489,24 @@ docstring const VSpace::asGUIName() const } +string VSpace::asHTMLLength() const +{ + string result; + switch (kind_) { + case DEFSKIP: result = "2ex"; break; + case SMALLSKIP: result = "1ex"; break; + case MEDSKIP: result = "3ex"; break; + case BIGSKIP: result = "5ex"; break; + case LENGTH: { + Length tmp = len_.len(); + if (tmp.value() > 0) + result = tmp.asHTMLString(); + } + case VFILL: break; + } + return result; +} + int VSpace::inPixels(BufferView const & bv) const { // Height of a normal line in pixels (zoom factor considered) @@ -519,7 +536,7 @@ int VSpace::inPixels(BufferView const & bv) const return len_.len().inPixels(bv.workWidth()); default: - BOOST_ASSERT(false); + LASSERT(false, /**/); return 0; } }