Fix bug 2841

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@16938 a592a061-630c-0410-9148-cb99ea01b6c8
This commit is contained in:
José Matox 2007-01-29 20:28:44 +00:00
parent fda173a818
commit efa3955204
2 changed files with 26 additions and 2 deletions

View File

@ -641,6 +641,14 @@ contributers = [
"22 February 2005", "22 February 2005",
u"Fix to a very hard-to-find egcs bug that crashed LyX on alpha architecture"), u"Fix to a very hard-to-find egcs bug that crashed LyX on alpha architecture"),
contributer(u"Harshula Jayasuriya",
"harshula () gmail ! com",
"GPL",
"Re: Bug in export to DocBook",
"m=116884249725701",
"15 January 2007",
u"Fix docbook generation of nested lists"),
contributer(u"David L. Johnson", contributer(u"David L. Johnson",
"david.johnson () lehigh ! edu", "david.johnson () lehigh ! edu",
"GPL", "GPL",

View File

@ -167,7 +167,13 @@ ParagraphList::const_iterator makeEnvironment(Buffer const & buf,
sgml::closeTag(os, bstyle->labeltag()); sgml::closeTag(os, bstyle->labeltag());
} }
wrapper = defaultstyle->latexname(); wrapper = defaultstyle->latexname();
// If a sub list (embedded list) appears next with a
// different depth, then there is no need to open
// another tag at the current depth.
if(par->params().depth() == pbegin->params().depth()) {
sgml::openTag(os, bstyle->itemtag()); sgml::openTag(os, bstyle->itemtag());
}
break;
default: default:
break; break;
} }
@ -204,7 +210,17 @@ ParagraphList::const_iterator makeEnvironment(Buffer const & buf,
} }
break; break;
case LATEX_ITEM_ENVIRONMENT: case LATEX_ITEM_ENVIRONMENT:
// If a sub list (embedded list) appears next, then
// there is no need to close the current tag.
// par should have already been incremented to the next
// element. So we can compare the depth of the next
// element with pbegin.
// We need to be careful, that we don't dereference par
// when par == pend but at the same time that the
// current tag is closed.
if((par != pend && par->params().depth() == pbegin->params().depth()) || par == pend) {
sgml::closeTag(os, bstyle->itemtag()); sgml::closeTag(os, bstyle->itemtag());
}
if (!bstyle->labeltag().empty()) if (!bstyle->labeltag().empty())
sgml::closeTag(os, bstyle->innertag()); sgml::closeTag(os, bstyle->innertag());
break; break;