]> git.lyx.org Git - lyx.git/blobdiff - src/Paragraph.cpp
cleanup error messages
[lyx.git] / src / Paragraph.cpp
index 6052514f96d94580ddd4299b0afe785af870c30f..0266c2e6ff9cf19a5b7875a12ebee99a7fceed7e 100644 (file)
@@ -1077,7 +1077,6 @@ void Paragraph::Private::validate(LaTeXFeatures & features) const
                BufferParams const & bp = buf.params();
                Font f;
                TexRow tr;
-               // FIXME We probably would like actually to know about this.
                odocstringstream ods;
                owner_->latex(bp, f, ods, tr, features.runparams());
                docstring d = ods.str();
@@ -2313,7 +2312,7 @@ pos_type Paragraph::firstWordLyXHTML(XHTMLStream & xs, OutputParams const & runp
                        char_type c = d->text_[i];
                        if (c == ' ')
                                break;
-                       xs << html::escapeChar(c);
+                       xs << c;
                }
        }
        return i;
@@ -2395,6 +2394,7 @@ docstring Paragraph::simpleLyXHTMLOnePar(Buffer const & buf,
                                    XHTMLStream & xs,
                                    OutputParams const & runparams,
                                    Font const & outerfont,
+                                               bool fortoc,
                                    pos_type initial) const
 {
        docstring retval;
@@ -2404,6 +2404,13 @@ docstring Paragraph::simpleLyXHTMLOnePar(Buffer const & buf,
        std::string closing_tag;
 
        Layout const & style = *d->layout_;
+
+       if (!fortoc) {
+               // generate a magic label for this paragraph
+               string const attr = "id='" + magicLabel() + "'";
+               xs << CompTag("a", attr);
+       }
+
        FontInfo font_old =
                style.labeltype == LABEL_MANUAL ? style.labelfont : style.font;
 
@@ -2436,11 +2443,14 @@ docstring Paragraph::simpleLyXHTMLOnePar(Buffer const & buf,
 
                Inset const * inset = getInset(i);
                if (inset) {
+                       InsetCommand const * ic = inset->asInsetCommand();
                        InsetLayout const & il = inset->getLayout();
-                       OutputParams np = runparams;
-                       if (!il.htmlisblock())
-                               np.html_in_par = true;
-                       retval += inset->xhtml(xs, np);
+                       if (!fortoc || il.isInToc() || (ic && ic->isInToc())) {
+                               OutputParams np = runparams;
+                               if (!il.htmlisblock())
+                                       np.html_in_par = true;
+                               retval += inset->xhtml(xs, np);
+                       }
                } else {
                        char_type c = d->text_[i];
 
@@ -3138,4 +3148,12 @@ bool Paragraph::isMisspelled(pos_type pos) const
 }
 
 
+string Paragraph::magicLabel() const
+{
+       stringstream ss;
+       ss << "magicparlabel-" << id();
+       return ss.str();
+}
+
+
 } // namespace lyx