]> git.lyx.org Git - features.git/commitdiff
Fix bug #7463: XHTML View>Source now shows only the paragraph with the
authorRichard Heck <rgheck@comcast.net>
Tue, 3 May 2011 14:05:42 +0000 (14:05 +0000)
committerRichard Heck <rgheck@comcast.net>
Tue, 3 May 2011 14:05:42 +0000 (14:05 +0000)
cursor. Fix is fairly simple.

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@38572 a592a061-630c-0410-9148-cb99ea01b6c8

src/output_xhtml.cpp

index 3a157c6f4d68c781da5b7fe65c35a39351c27c71..26d53ad96bb9be8e4983786a0ad2b72d4b49f49d 100644 (file)
@@ -922,11 +922,20 @@ void xhtmlParagraphs(Text const & text,
                       OutputParams const & runparams)
 {
        ParagraphList const & paragraphs = text.paragraphs();
-       ParagraphList::const_iterator par = paragraphs.begin();
-       ParagraphList::const_iterator pend = paragraphs.end();
+       if (runparams.par_begin == runparams.par_end) {
+               runparams.par_begin = 0;
+               runparams.par_end = paragraphs.size();
+       }
+       pit_type bpit = runparams.par_begin;
+       pit_type const epit = runparams.par_end;
+       LASSERT(bpit < epit, /* */);
 
        OutputParams ourparams = runparams;
-       while (par != pend) {
+       ParagraphList::const_iterator const pend =
+               (epit == (int) paragraphs.size()) ?
+                       paragraphs.end() : paragraphs.constIterator(epit);
+       while (bpit < epit) {
+               ParagraphList::const_iterator par = paragraphs.constIterator(bpit);
                if (par->params().startOfAppendix()) {
                        // FIXME: only the counter corresponding to toplevel
                        // sectioning should be reset
@@ -935,7 +944,7 @@ void xhtmlParagraphs(Text const & text,
                        cnts.appendix(true);
                }
                Layout const & style = par->layout();
-               ParagraphList::const_iterator lastpar = par;
+               ParagraphList::const_iterator const lastpar = par;
                ParagraphList::const_iterator send;
 
                switch (style.latextype) {
@@ -972,10 +981,7 @@ void xhtmlParagraphs(Text const & text,
                        par = makeParagraphs(buf, xs, ourparams, text, par, send);
                        break;
                }
-               // FIXME??
-               // makeEnvironment may process more than one paragraphs and bypass pend
-               if (distance(lastpar, par) >= distance(lastpar, pend))
-                       break;
+               bpit += distance(lastpar, par);
        }
 }