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