X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2FParagraphParameters.C;h=1f5da6720a93de1cb22715edf5508c2a1a17f7d3;hb=6c2e78e12855d8661eb289ded3dc8722748863b8;hp=a1e62c521ef25ea99bf1222c5b7dbc193fa00b31;hpb=f17505a8fb8b26b1ece59f57aff2f84d90be6438;p=lyx.git diff --git a/src/ParagraphParameters.C b/src/ParagraphParameters.C index a1e62c521e..1f5da6720a 100644 --- a/src/ParagraphParameters.C +++ b/src/ParagraphParameters.C @@ -38,6 +38,26 @@ using std::ostream; using std::ostringstream; using std::string; +// anonym namespace +namespace { +int findToken(char const * const str[], string const search_token) +{ + int i = 0; + + if (search_token != "default") { + while (str[i][0] && str[i] != search_token) { + ++i; + } + if (!str[i][0]) { + i = -1; + } + } + + return i; +} + +} + ParagraphParameters::ParagraphParameters() : noindent_(false), @@ -186,7 +206,7 @@ void ParagraphParameters::read(LyXLex & lex) if (token == "\\noindent") { noindent(true); } else if (token == "\\leftindent") { - lex.nextToken(); + lex.next(); LyXLength value(lex.getString()); leftIndent(value); } else if (token == "\\start_of_appendix") { @@ -203,12 +223,13 @@ void ParagraphParameters::read(LyXLex & lex) } else if (tmp == "other") { lex.next(); spacing(Spacing(Spacing::Other, - lex.getFloat())); + lex.getString())); } else { lex.printError("Unknown spacing token: '$$Token'"); } } else if (token == "\\align") { - int tmpret = lex.findToken(string_align); + lex.next(); + int tmpret = findToken(string_align, lex.getString()); if (tmpret == -1) ++tmpret; align(LyXAlignment(1 << tmpret)); @@ -225,28 +246,25 @@ void ParagraphParameters::read(LyXLex & lex) void ParagraphParameters::write(ostream & os) const { - ostringstream oss; - // Maybe the paragraph has special spacing - spacing().writeFile(oss, true); + spacing().writeFile(os, true); // The labelwidth string used in lists. if (!labelWidthString().empty()) - oss << "\\labelwidthstring " + os << "\\labelwidthstring " << labelWidthString() << '\n'; // Start of appendix? if (startOfAppendix()) - oss << "\\start_of_appendix "; + os << "\\start_of_appendix\n"; // Noindent? if (noindent()) - oss << "\\noindent "; + os << "\\noindent\n"; // Do we have a manual left indent? if (!leftIndent().zero()) - oss << "\\leftindent " << leftIndent().asString() - << ' '; + os << "\\leftindent " << leftIndent().asString() << '\n'; // Alignment? if (align() != LYX_ALIGN_LAYOUT) { @@ -257,9 +275,8 @@ void ParagraphParameters::write(ostream & os) const case LYX_ALIGN_CENTER: h = 3; break; default: h = 0; break; } - oss << "\\align " << string_align[h] << ' '; + os << "\\align " << string_align[h] << '\n'; } - os << rtrim(oss.str()); } @@ -280,7 +297,7 @@ void params2string(Paragraph const & par, string & data) params.write(os); // Is alignment possible - os << '\n' << "\\alignpossible " << layout->alignpossible << '\n'; + os << "\\alignpossible " << layout->alignpossible << '\n'; /// set default alignment os << "\\aligndefault " << layout->align << '\n';