Fix bug 3080

* src/paragraph.C (adjust_row_column): renamed from adjust_column_count;
	add texrow argument and adjust row as needed.
        (startTeXParParams, endTeXParParams, simpleTeXOnePar): adjust to above 
	changes.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@17342 a592a061-630c-0410-9148-cb99ea01b6c8
This commit is contained in:
Jean-Marc Lasgouttes 2007-02-25 13:20:29 +00:00
parent 447c382829
commit 07aead5b21
2 changed files with 24 additions and 17 deletions

View File

@ -792,13 +792,14 @@ string const corrected_env(string const & suffix, string const & env,
}
int adjust_column_count(string const & str, int oldcol)
void adjust_row_column(string const & str, TexRow & texrow, int & column)
{
if (!contains(str, "\n"))
return oldcol + str.size();
column += str.size();
else {
string tmp;
return rsplit(str, tmp, '\n').size();
texrow.newline();
column = rsplit(str, tmp, '\n').size();
}
}
@ -807,7 +808,8 @@ int adjust_column_count(string const & str, int oldcol)
// This could go to ParagraphParameters if we want to
int Paragraph::startTeXParParams(BufferParams const & bparams,
odocstream & os, bool moving_arg) const
odocstream & os, TexRow & texrow,
bool moving_arg) const
{
int column = 0;
@ -845,7 +847,7 @@ int Paragraph::startTeXParParams(BufferParams const & bparams,
else
output = corrected_env("\\begin", "flushright", ownerCode());
os << from_ascii(output);
column = adjust_column_count(output, column);
adjust_row_column(output, texrow, column);
break;
} case LYX_ALIGN_RIGHT: {
string output;
@ -854,13 +856,13 @@ int Paragraph::startTeXParParams(BufferParams const & bparams,
else
output = corrected_env("\\begin", "flushleft", ownerCode());
os << from_ascii(output);
column = adjust_column_count(output, column);
adjust_row_column(output, texrow, column);
break;
} case LYX_ALIGN_CENTER: {
string output;
output = corrected_env("\\begin", "center", ownerCode());
os << from_ascii(output);
column = adjust_column_count(output, column);
adjust_row_column(output, texrow, column);
break;
}
}
@ -871,7 +873,8 @@ int Paragraph::startTeXParParams(BufferParams const & bparams,
// This could go to ParagraphParameters if we want to
int Paragraph::endTeXParParams(BufferParams const & bparams,
odocstream & os, bool moving_arg) const
odocstream & os, TexRow & texrow,
bool moving_arg) const
{
int column = 0;
@ -904,7 +907,7 @@ int Paragraph::endTeXParParams(BufferParams const & bparams,
else
output = corrected_env("\n\\par\\end", "flushright", ownerCode());
os << from_ascii(output);
column = adjust_column_count(output, column);
adjust_row_column(output, texrow, column);
break;
} case LYX_ALIGN_RIGHT: {
string output;
@ -913,13 +916,13 @@ int Paragraph::endTeXParParams(BufferParams const & bparams,
else
output = corrected_env("\n\\par\\end", "flushleft", ownerCode());
os << from_ascii(output);
column = adjust_column_count(output, column);
adjust_row_column(output, texrow, column);
break;
} case LYX_ALIGN_CENTER: {
string output;
output = corrected_env("\n\\par\\end", "center", ownerCode());
os << from_ascii(output);
column = adjust_column_count(output, column);
adjust_row_column(output, texrow, column);
break;
}
}
@ -1000,7 +1003,7 @@ bool Paragraph::simpleTeXOnePar(Buffer const & buf,
++column;
}
if (!asdefault)
column += startTeXParParams(bparams, os,
column += startTeXParParams(bparams, os, texrow,
runparams.moving_arg);
}
@ -1032,6 +1035,7 @@ bool Paragraph::simpleTeXOnePar(Buffer const & buf,
if (!asdefault)
column += startTeXParParams(bparams, os,
texrow,
runparams.moving_arg);
}
@ -1140,7 +1144,8 @@ bool Paragraph::simpleTeXOnePar(Buffer const & buf,
}
if (!asdefault) {
column += endTeXParParams(bparams, os, runparams.moving_arg);
column += endTeXParParams(bparams, os, texrow,
runparams.moving_arg);
}
lyxerr[Debug::LATEX] << "SimpleTeXOnePar...done " << this << endl;

View File

@ -115,10 +115,12 @@ public:
void validate(LaTeXFeatures &) const;
///
int startTeXParParams(BufferParams const &, odocstream &, bool) const;
int startTeXParParams(BufferParams const &, odocstream &, TexRow &,
bool) const;
///
int endTeXParParams(BufferParams const &, odocstream &, bool) const;
int endTeXParParams(BufferParams const &, odocstream &, TexRow &,
bool) const;
///