mirror of
https://git.lyx.org/repos/lyx.git
synced 2024-12-22 05:16:21 +00:00
Improve support for empty lengths
Parse empty string as empty length Output empty length as empty string when it makes sense (not for LaTeX strings, for example).
This commit is contained in:
parent
13b34ae4d8
commit
25ff2f8e2b
@ -19,6 +19,7 @@
|
||||
#include "LyXRC.h"
|
||||
|
||||
#include "support/docstream.h"
|
||||
#include "support/lassert.h"
|
||||
|
||||
#include <sstream>
|
||||
#include <iomanip>
|
||||
@ -67,7 +68,8 @@ void Length::swap(Length & rhs)
|
||||
string const Length::asString() const
|
||||
{
|
||||
ostringstream os;
|
||||
os << val_ << unit_name[unit_]; // setw?
|
||||
if (unit_ != UNIT_NONE)
|
||||
os << val_ << unit_name[unit_]; // setw?
|
||||
return os.str();
|
||||
}
|
||||
|
||||
@ -75,7 +77,8 @@ string const Length::asString() const
|
||||
docstring const Length::asDocstring() const
|
||||
{
|
||||
odocstringstream os;
|
||||
os << val_ << unit_name[unit_]; // setw?
|
||||
if (unit_ != UNIT_NONE)
|
||||
os << val_ << unit_name[unit_]; // setw?
|
||||
return os.str();
|
||||
}
|
||||
|
||||
@ -102,6 +105,9 @@ string const Length::asLatexString() const
|
||||
case PPH:
|
||||
os << val_ / 100.0 << "\\paperheight";
|
||||
break;
|
||||
case UNIT_NONE:
|
||||
// One should not try to ouput latex code for an empty length
|
||||
LASSERT(false, break);
|
||||
default:
|
||||
os << val_ << unit_name[unit_];
|
||||
break;
|
||||
@ -363,6 +369,9 @@ GlueLength::GlueLength(string const & data)
|
||||
|
||||
string const GlueLength::asString() const
|
||||
{
|
||||
if (len_.empty())
|
||||
return string();
|
||||
|
||||
ostringstream buffer;
|
||||
|
||||
buffer << len_.value();
|
||||
|
@ -236,8 +236,11 @@ bool isValidGlueLength(string const & data, GlueLength * result)
|
||||
// forward approach leads to very long, tedious code that would be
|
||||
// much harder to understand and maintain. (AS)
|
||||
|
||||
if (data.empty())
|
||||
if (data.empty()) {
|
||||
if (result)
|
||||
*result = GlueLength();
|
||||
return true;
|
||||
}
|
||||
string buffer = ltrim(data);
|
||||
|
||||
// To make isValidGlueLength recognize negative values as
|
||||
@ -306,8 +309,11 @@ bool isValidLength(string const & data, Length * result)
|
||||
// The parser may seem overkill for lengths without
|
||||
// glue, but since we already have it, using it is
|
||||
// easier than writing something from scratch.
|
||||
if (data.empty())
|
||||
if (data.empty()) {
|
||||
if (result)
|
||||
*result = Length();
|
||||
return true;
|
||||
}
|
||||
|
||||
string buffer = data;
|
||||
int pattern_index = 0;
|
||||
|
Loading…
Reference in New Issue
Block a user