X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2FSpacing.C;h=0987e337bd6638280578d0b169ae1558dbaefbd5;hb=78046794ccfce3a20751e00b35295c290853afd6;hp=746ee33f43838c5d42e5b6c2ae57014935c586c8;hpb=d0950acedaa91320340af398bb06d790486a2207;p=lyx.git diff --git a/src/Spacing.C b/src/Spacing.C index 746ee33f43..0987e337bd 100644 --- a/src/Spacing.C +++ b/src/Spacing.C @@ -1,28 +1,32 @@ -#include - +/** + * \file Spacing.C + * This file is part of LyX, the document processor. + * Licence details can be found in the file COPYING. + * + * \author Lars Gullik Bjønnes + * \author Jean-Marc Lasgouttes + * + * Full author contact details are available in file CREDITS. + */ -#ifdef HAVE_SSTREAM -#include -using std::istringstream; -using std::ostringstream; -#else -#include -#endif +#include +#include "support/std_sstream.h" #include "Spacing.h" -#include "LString.h" using std::ios; +using std::istringstream; using std::ostream; +using std::ostringstream; +using std::string; -/// how can I put this inside of Spacing (class) -static -char const * spacing_string[] = {"single", "onehalf", "double", "other"}; +string const Spacing::spacing_string[] + = {"single", "onehalf", "double", "other"}; -float Spacing::getValue() const +float Spacing::getValue() const { - switch(space) { + switch (space) { case Default: // nothing special should happen with this... case Single: return 1.0; case Onehalf: return 1.25; @@ -37,7 +41,7 @@ void Spacing::set(Spacing::Space sp, float val) { space = sp; if (sp == Other) { - switch(int(val * 1000 + 0.5)) { + switch (int(val * 1000 + 0.5)) { case 1000: space = Single; break; case 1250: space = Onehalf; break; case 1667: space = Double; break; @@ -47,14 +51,10 @@ void Spacing::set(Spacing::Space sp, float val) } -void Spacing::set(Spacing::Space sp, char const * val) +void Spacing::set(Spacing::Space sp, string const & val) { - float fval; -#ifdef HAVE_SSTREAM - istringstream istr(val); -#else - istrstream istr(val); -#endif + float fval = 0.0; + istringstream istr(val.c_str()); istr >> fval; set(sp, fval); } @@ -63,70 +63,54 @@ void Spacing::set(Spacing::Space sp, char const * val) void Spacing::writeFile(ostream & os, bool para) const { if (space == Default) return; - + string cmd = para ? "\\paragraph_spacing " : "\\spacing "; - + if (getSpace() == Spacing::Other) { os.setf(ios::showpoint|ios::fixed); os.precision(2); os << cmd << spacing_string[getSpace()] - << " " << getValue() << " \n"; + << ' ' << getValue() << " \n"; } else { os << cmd << spacing_string[getSpace()] << " \n"; - } + } } -string Spacing::writeEnvirBegin() const +string const Spacing::writeEnvirBegin() const { - switch(space) { + switch (space) { case Default: break; // do nothing case Single: return "\\begin{singlespace}"; - break; case Onehalf: return "\\begin{onehalfspace}"; - break; case Double: return "\\begin{doublespace}"; - break; case Other: -#ifdef HAVE_SSTREAM + { ostringstream ost; ost << "\\begin{spacing}{" - << getValue() << "}"; - return ost.str().c_str(); -#else - { - char tmp[512]; - ostrstream ost(tmp, 512); - ost << "\\begin{spacing}{" - << getValue() << "}"; - return ost.str(); - } -#endif - break; + << getValue() << '}'; + return ost.str(); + } } return string(); } -string Spacing::writeEnvirEnd() const +string const Spacing::writeEnvirEnd() const { - switch(space) { + switch (space) { case Default: break; // do nothing case Single: return "\\end{singlespace}"; - break; case Onehalf: return "\\end{onehalfspace}"; - break; case Double: return "\\end{doublespace}"; - break; case Other: return "\\end{spacing}"; - break; } return string(); }