]> git.lyx.org Git - lyx.git/blobdiff - src/buffer.C
fix linking problem with boost
[lyx.git] / src / buffer.C
index 0acfd71a7430df0f4c855a9318b6c2b751effeb1..5c07e74c5670af0ccdb2fc37800ec3f9dcd0cd16 100644 (file)
@@ -199,7 +199,7 @@ string const Buffer::getLatexName(bool no_path) const
 }
 
 
-pair<Buffer::LogType, string> const Buffer::getLogName(void) const
+pair<Buffer::LogType, string> const Buffer::getLogName() const
 {
        string const filename = getLatexName(false);
 
@@ -566,8 +566,7 @@ Buffer::parseSingleLyXformat2Token(LyXLex & lex, Paragraph *& par,
                                string next_token = lex.getString();
                                if (next_token == "\\-") {
                                        par->insertChar(pos, '-', font);
-                               } else if (next_token == "\\protected_separator"
-                                       || next_token == "~") {
+                               } else if (next_token == "~") {
                                        par->insertChar(pos, ' ', font);
                                } else {
                                        lex.printError("Token `$$Token' "
@@ -915,19 +914,6 @@ Buffer::parseSingleLyXformat2Token(LyXLex & lex, Paragraph *& par,
        } else if (token == "\\hfill") {
                par->insertChar(pos, Paragraph::META_HFILL, font);
                ++pos;
-       } else if (token == "\\protected_separator") { // obsolete
-               // This is a backward compability thingie. (Lgb)
-               // Remove it later some time...introduced with fileformat
-               // 2.16. (Lgb)
-               LyXLayout_ptr const & layout = par->layout();
-
-               if (layout->free_spacing || par->isFreeSpacing()) {
-                       par->insertChar(pos, ' ', font);
-               } else {
-                       Inset * inset = new InsetSpecialChar(InsetSpecialChar::PROTECTED_SEPARATOR);
-                       par->insertInset(pos, inset, font);
-               }
-               ++pos;
        } else if (token == "\\bibitem") {  // ale970302
                if (!par->bibkey) {
                        InsetCommandParams p("bibitem", "dummy");
@@ -1194,7 +1180,7 @@ bool Buffer::readFile(LyXLex & lex, string const & filename, Paragraph * par)
                                                               "running the conversion script."));
                                                return false;
                                        }
-                                       istringstream is(ret.second);
+                                       istringstream is(STRCONV(ret.second));
                                        LyXLex tmplex(0, 0);
                                        tmplex.setStream(is);
                                        return readFile(tmplex, string());
@@ -1602,7 +1588,7 @@ string const Buffer::asciiParagraph(Paragraph const & par,
                }
        }
        buffer << word;
-       return buffer.str().c_str();
+       return STRCONV(buffer.str());
 }
 
 
@@ -1789,7 +1775,7 @@ void Buffer::makeLaTeXFile(ostream & os,
                        options << params.options << ',';
                }
 
-               string strOptions(options.str().c_str());
+               string strOptions(STRCONV(options.str()));
                if (!strOptions.empty()) {
                        strOptions = rtrim(strOptions, ",");
                        os << '[' << strOptions << ']';
@@ -2069,7 +2055,7 @@ void Buffer::makeLaTeXFile(ostream & os,
                        if (!lyxrc.language_global_options
                            && tmp == "\\usepackage{babel}")
                                tmp = string("\\usepackage[") +
-                                       language_options.str().c_str() +
+                                       STRCONV(language_options.str()) +
                                        "]{babel}";
                        preamble += tmp + "\n";
                        preamble += features.getBabelOptions();
@@ -2215,38 +2201,6 @@ bool Buffer::isSGML() const
 }
 
 
-int Buffer::sgmlOpenTag(ostream & os, Paragraph::depth_type depth, bool mixcont,
-                        string const & latexname) const
-{
-       if (!latexname.empty() && latexname != "!-- --") {
-               if (!mixcont)
-                       os << string(" ",depth);
-               os << "<" << latexname << ">";
-       }
-
-       if (!mixcont)
-               os << endl;
-
-       return mixcont?0:1;
-}
-
-
-int Buffer::sgmlCloseTag(ostream & os, Paragraph::depth_type depth, bool mixcont,
-                         string const & latexname) const
-{
-       if (!latexname.empty() && latexname != "!-- --") {
-               if (!mixcont)
-                       os << endl << string(" ",depth);
-               os << "</" << latexname << ">";
-       }
-
-       if (!mixcont)
-               os << endl;
-
-       return mixcont?0:1;
-}
-
-
 void Buffer::makeLinuxDocFile(string const & fname, bool nice, bool body_only)
 {
        ofstream ofs(fname.c_str());
@@ -2283,12 +2237,12 @@ void Buffer::makeLinuxDocFile(string const & fname, bool nice, bool body_only)
                ofs << ">\n\n";
 
                if (params.options.empty())
-                       sgmlOpenTag(ofs, 0, false, top_element);
+                       sgml::openTag(ofs, 0, false, top_element);
                else {
                        string top = top_element;
                        top += " ";
                        top += params.options;
-                       sgmlOpenTag(ofs, 0, false, top);
+                       sgml::openTag(ofs, 0, false, top);
                }
        }
 
@@ -2309,7 +2263,7 @@ void Buffer::makeLinuxDocFile(string const & fname, bool nice, bool body_only)
                        Inset::Code lyx_code = inset->lyxCode();
                        if (lyx_code == Inset::TOC_CODE) {
                                string const temp = "toc";
-                               sgmlOpenTag(ofs, depth, false, temp);
+                               sgml::openTag(ofs, depth, false, temp);
 
                                par = par->next();
                                continue;
@@ -2318,7 +2272,7 @@ void Buffer::makeLinuxDocFile(string const & fname, bool nice, bool body_only)
 
                // environment tag closing
                for (; depth > par->params().depth(); --depth) {
-                       sgmlCloseTag(ofs, depth, false, environment_stack[depth]);
+                       sgml::closeTag(ofs, depth, false, environment_stack[depth]);
                        environment_stack[depth].erase();
                }
 
@@ -2327,14 +2281,14 @@ void Buffer::makeLinuxDocFile(string const & fname, bool nice, bool body_only)
                case LATEX_PARAGRAPH:
                        if (depth == par->params().depth()
                           && !environment_stack[depth].empty()) {
-                               sgmlCloseTag(ofs, depth, false, environment_stack[depth]);
+                               sgml::closeTag(ofs, depth, false, environment_stack[depth]);
                                environment_stack[depth].erase();
                                if (depth)
                                        --depth;
                                else
                                        ofs << "</p>";
                        }
-                       sgmlOpenTag(ofs, depth, false, style->latexname());
+                       sgml::openTag(ofs, depth, false, style->latexname());
                        break;
 
                case LATEX_COMMAND:
@@ -2344,12 +2298,12 @@ void Buffer::makeLinuxDocFile(string const & fname, bool nice, bool body_only)
                                            " LatexType Command.\n"));
 
                        if (!environment_stack[depth].empty()) {
-                               sgmlCloseTag(ofs, depth, false, environment_stack[depth]);
+                               sgml::closeTag(ofs, depth, false, environment_stack[depth]);
                                ofs << "</p>";
                        }
 
                        environment_stack[depth].erase();
-                       sgmlOpenTag(ofs, depth, false, style->latexname());
+                       sgml::openTag(ofs, depth, false, style->latexname());
                        break;
 
                case LATEX_ENVIRONMENT:
@@ -2359,7 +2313,7 @@ void Buffer::makeLinuxDocFile(string const & fname, bool nice, bool body_only)
 
                        if (depth == par->params().depth()
                            && environment_stack[depth] != latexname) {
-                               sgmlCloseTag(ofs, depth, false,
+                               sgml::closeTag(ofs, depth, false,
                                             environment_stack[depth]);
                                environment_stack[depth].erase();
                        }
@@ -2369,9 +2323,9 @@ void Buffer::makeLinuxDocFile(string const & fname, bool nice, bool body_only)
                        }
                        if (environment_stack[depth] != latexname) {
                                if (depth == 0) {
-                                       sgmlOpenTag(ofs, depth, false, "p");
+                                       sgml::openTag(ofs, depth, false, "p");
                                }
-                               sgmlOpenTag(ofs, depth, false, latexname);
+                               sgml::openTag(ofs, depth, false, latexname);
 
                                if (environment_stack.size() == depth + 1)
                                        environment_stack.push_back("!-- --");
@@ -2388,12 +2342,12 @@ void Buffer::makeLinuxDocFile(string const & fname, bool nice, bool body_only)
                        else
                                item_name = "item";
 
-                       sgmlOpenTag(ofs, depth + 1, false, item_name);
+                       sgml::openTag(ofs, depth + 1, false, item_name);
                }
                break;
 
                default:
-                       sgmlOpenTag(ofs, depth, false, style->latexname());
+                       sgml::openTag(ofs, depth, false, style->latexname());
                        break;
                }
 
@@ -2412,18 +2366,18 @@ void Buffer::makeLinuxDocFile(string const & fname, bool nice, bool body_only)
                                ofs << "]]>";
                        break;
                default:
-                       sgmlCloseTag(ofs, depth, false, style->latexname());
+                       sgml::closeTag(ofs, depth, false, style->latexname());
                        break;
                }
        }
 
        // Close open tags
        for (int i = depth; i >= 0; --i)
-               sgmlCloseTag(ofs, depth, false, environment_stack[i]);
+               sgml::closeTag(ofs, depth, false, environment_stack[i]);
 
        if (!body_only) {
                ofs << "\n\n";
-               sgmlCloseTag(ofs, 0, false, top_element);
+               sgml::closeTag(ofs, 0, false, top_element);
        }
 
        ofs.close();
@@ -2749,7 +2703,7 @@ void Buffer::makeDocBookFile(string const & fname, bool nice, bool only_body)
                top += " ";
                top += params.options;
        }
-       sgmlOpenTag(ofs, 0, false, top);
+       sgml::openTag(ofs, 0, false, top);
 
        ofs << "<!-- DocBook file was created by " << lyx_docversion
            << "\n  See http://www.lyx.org/ for more information -->\n";
@@ -2779,11 +2733,11 @@ void Buffer::makeDocBookFile(string const & fname, bool nice, bool only_body)
                for (; depth > par->params().depth(); --depth) {
                        if (environment_inner[depth] != "!-- --") {
                                item_name = "listitem";
-                               sgmlCloseTag(ofs, command_depth + depth, false, item_name);
+                               sgml::closeTag(ofs, command_depth + depth, false, item_name);
                                if (environment_inner[depth] == "varlistentry")
-                                       sgmlCloseTag(ofs, depth+command_depth, false, environment_inner[depth]);
+                                       sgml::closeTag(ofs, depth+command_depth, false, environment_inner[depth]);
                        }
-                       sgmlCloseTag(ofs, depth + command_depth, false, environment_stack[depth]);
+                       sgml::closeTag(ofs, depth + command_depth, false, environment_stack[depth]);
                        environment_stack[depth].erase();
                        environment_inner[depth].erase();
                }
@@ -2793,12 +2747,12 @@ void Buffer::makeDocBookFile(string const & fname, bool nice, bool only_body)
                   && !environment_stack[depth].empty()) {
                        if (environment_inner[depth] != "!-- --") {
                                item_name= "listitem";
-                               sgmlCloseTag(ofs, command_depth+depth, false, item_name);
+                               sgml::closeTag(ofs, command_depth+depth, false, item_name);
                                if (environment_inner[depth] == "varlistentry")
-                                       sgmlCloseTag(ofs, depth + command_depth, false, environment_inner[depth]);
+                                       sgml::closeTag(ofs, depth + command_depth, false, environment_inner[depth]);
                        }
 
-                       sgmlCloseTag(ofs, depth + command_depth, false, environment_stack[depth]);
+                       sgml::closeTag(ofs, depth + command_depth, false, environment_stack[depth]);
 
                        environment_stack[depth].erase();
                        environment_inner[depth].erase();
@@ -2807,7 +2761,7 @@ void Buffer::makeDocBookFile(string const & fname, bool nice, bool only_body)
                // Write opening SGML tags.
                switch (style->latextype) {
                case LATEX_PARAGRAPH:
-                       sgmlOpenTag(ofs, depth + command_depth,
+                       sgml::openTag(ofs, depth + command_depth,
                                    false, style->latexname());
                        break;
 
@@ -2828,14 +2782,14 @@ void Buffer::makeDocBookFile(string const & fname, bool nice, bool only_body)
                                if (cmd_depth < command_base) {
                                        for (Paragraph::depth_type j = command_depth;
                                             j >= command_base; --j) {
-                                               sgmlCloseTag(ofs, j, false, command_stack[j]);
+                                               sgml::closeTag(ofs, j, false, command_stack[j]);
                                                ofs << endl;
                                        }
                                        command_depth = command_base = cmd_depth;
                                } else if (cmd_depth <= command_depth) {
                                        for (int j = command_depth;
                                             j >= int(cmd_depth); --j) {
-                                               sgmlCloseTag(ofs, j, false, command_stack[j]);
+                                               sgml::closeTag(ofs, j, false, command_stack[j]);
                                                ofs << endl;
                                        }
                                        command_depth = cmd_depth;
@@ -2864,10 +2818,10 @@ void Buffer::makeDocBookFile(string const & fname, bool nice, bool only_body)
                                }
                        }
 
-                       sgmlOpenTag(ofs, depth + command_depth, false, command_name);
+                       sgml::openTag(ofs, depth + command_depth, false, command_name);
 
                        item_name = c_params.empty()?"title":c_params;
-                       sgmlOpenTag(ofs, depth + 1 + command_depth, false, item_name);
+                       sgml::openTag(ofs, depth + 1 + command_depth, false, item_name);
                        break;
 
                case LATEX_ENVIRONMENT:
@@ -2884,13 +2838,13 @@ void Buffer::makeDocBookFile(string const & fname, bool nice, bool only_body)
                                }
                                environment_stack[depth] = style->latexname();
                                environment_inner[depth] = "!-- --";
-                               sgmlOpenTag(ofs, depth + command_depth, false, environment_stack[depth]);
+                               sgml::openTag(ofs, depth + command_depth, false, environment_stack[depth]);
                        } else {
                                if (environment_inner[depth] != "!-- --") {
                                        item_name= "listitem";
-                                       sgmlCloseTag(ofs, command_depth + depth, false, item_name);
+                                       sgml::closeTag(ofs, command_depth + depth, false, item_name);
                                        if (environment_inner[depth] == "varlistentry")
-                                               sgmlCloseTag(ofs, depth + command_depth, false, environment_inner[depth]);
+                                               sgml::closeTag(ofs, depth + command_depth, false, environment_inner[depth]);
                                }
                        }
 
@@ -2899,7 +2853,7 @@ void Buffer::makeDocBookFile(string const & fname, bool nice, bool only_body)
                                        if (style->latexparam() == "CDATA")
                                                ofs << "<![CDATA[";
                                        else
-                                               sgmlOpenTag(ofs, depth + command_depth, false, style->latexparam());
+                                               sgml::openTag(ofs, depth + command_depth, false, style->latexparam());
                                }
                                break;
                        }
@@ -2907,15 +2861,15 @@ void Buffer::makeDocBookFile(string const & fname, bool nice, bool only_body)
                        desc_on = (style->labeltype == LABEL_MANUAL);
 
                        environment_inner[depth] = desc_on ? "varlistentry" : "listitem";
-                       sgmlOpenTag(ofs, depth + 1 + command_depth,
+                       sgml::openTag(ofs, depth + 1 + command_depth,
                                    false, environment_inner[depth]);
 
                        item_name = desc_on ? "term" : "para";
-                       sgmlOpenTag(ofs, depth + 1 + command_depth,
+                       sgml::openTag(ofs, depth + 1 + command_depth,
                                    false, item_name);
                        break;
                default:
-                       sgmlOpenTag(ofs, depth + command_depth,
+                       sgml::openTag(ofs, depth + command_depth,
                                    false, style->latexname());
                        break;
                }
@@ -2929,7 +2883,7 @@ void Buffer::makeDocBookFile(string const & fname, bool nice, bool only_body)
                switch (style->latextype) {
                case LATEX_COMMAND:
                        end_tag = c_params.empty() ? "title" : c_params;
-                       sgmlCloseTag(ofs, depth + command_depth,
+                       sgml::closeTag(ofs, depth + command_depth,
                                     false, end_tag);
                        break;
                case LATEX_ENVIRONMENT:
@@ -2937,19 +2891,19 @@ void Buffer::makeDocBookFile(string const & fname, bool nice, bool only_body)
                                if (style->latexparam() == "CDATA")
                                        ofs << "]]>";
                                else
-                                       sgmlCloseTag(ofs, depth + command_depth, false, style->latexparam());
+                                       sgml::closeTag(ofs, depth + command_depth, false, style->latexparam());
                        }
                        break;
                case LATEX_ITEM_ENVIRONMENT:
                        if (desc_on == 1) break;
                        end_tag= "para";
-                       sgmlCloseTag(ofs, depth + 1 + command_depth, false, end_tag);
+                       sgml::closeTag(ofs, depth + 1 + command_depth, false, end_tag);
                        break;
                case LATEX_PARAGRAPH:
-                       sgmlCloseTag(ofs, depth + command_depth, false, style->latexname());
+                       sgml::closeTag(ofs, depth + command_depth, false, style->latexname());
                        break;
                default:
-                       sgmlCloseTag(ofs, depth + command_depth, false, style->latexname());
+                       sgml::closeTag(ofs, depth + command_depth, false, style->latexname());
                        break;
                }
        }
@@ -2959,23 +2913,23 @@ void Buffer::makeDocBookFile(string const & fname, bool nice, bool only_body)
                if (!environment_stack[depth].empty()) {
                        if (environment_inner[depth] != "!-- --") {
                                item_name = "listitem";
-                               sgmlCloseTag(ofs, command_depth + depth, false, item_name);
+                               sgml::closeTag(ofs, command_depth + depth, false, item_name);
                               if (environment_inner[depth] == "varlistentry")
-                                      sgmlCloseTag(ofs, depth + command_depth, false, environment_inner[depth]);
+                                      sgml::closeTag(ofs, depth + command_depth, false, environment_inner[depth]);
                        }
 
-                       sgmlCloseTag(ofs, depth + command_depth, false, environment_stack[depth]);
+                       sgml::closeTag(ofs, depth + command_depth, false, environment_stack[depth]);
                }
        }
 
        for (int j = command_depth; j >= 0 ; --j)
                if (!command_stack[j].empty()) {
-                       sgmlCloseTag(ofs, j, false, command_stack[j]);
+                       sgml::closeTag(ofs, j, false, command_stack[j]);
                        ofs << endl;
                }
 
        ofs << "\n\n";
-       sgmlCloseTag(ofs, 0, false, top_element);
+       sgml::closeTag(ofs, 0, false, top_element);
 
        ofs.close();
        // How to check for successful close
@@ -3389,6 +3343,18 @@ ParIterator Buffer::par_iterator_end()
        return ParIterator();
 }
 
+ParConstIterator Buffer::par_iterator_begin() const
+{
+       return ParConstIterator(&*(paragraphs.begin()));
+}
+
+
+ParConstIterator Buffer::par_iterator_end() const
+{
+       return ParConstIterator();
+}
+
+
 
 void Buffer::addUser(BufferView * u)
 {