#include <iomanip>
#include <cstdlib>
+#include <cmath>
#include <unistd.h>
#include <sys/types.h>
#include <utime.h>
using std::vector;
using std::max;
using std::set;
-using std::istringstream;
// all these externs should eventually be removed.
extern BufferList bufferlist;
if (read_only != flag) {
read_only = flag;
updateTitles();
- users->owner()->getDialogs()->updateBufferDependent();
+ users->owner()->getDialogs()->updateBufferDependent(false);
}
if (read_only) {
WarnReadonly(filename);
}
-void Buffer::fileName(string const & newfile)
+void Buffer::setFileName(string const & newfile)
{
filename = MakeAbsPath(newfile);
filepath = OnlyPath(filename);
bool has_token = false;
string pretoken;
- if(!par) {
+ if (!par) {
par = new LyXParagraph;
} else {
users->text->BreakParagraph(users);
if (pp.first) {
params.textclass = pp.second;
} else {
- lex.printError("Unknown textclass `$$Token'");
+ WriteAlert(string(_("Textclass error")),
+ string(_("The document uses an unknown textclass \"")) +
+ lex.GetString() + string("\"."),
+ string(_("LyX will not be able to produce output correctly.")));
params.textclass = 0;
}
if (!textclasslist.Load(params.textclass)) {
if (tmpret != LYX_LAYOUT_DEFAULT) {
InsetQuotes::quote_language tmpl =
InsetQuotes::EnglishQ;
- switch(tmpret) {
+ switch (tmpret) {
case 0:
tmpl = InsetQuotes::EnglishQ;
break;
}
} else if (token == "\\quotes_times") {
lex.nextToken();
- switch(lex.GetInteger()) {
+ switch (lex.GetInteger()) {
case 1:
params.quotes_times = InsetQuotes::SingleQ;
break;
params.columns = lex.GetInteger();
} else if (token == "\\papersides") {
lex.nextToken();
- switch(lex.GetInteger()) {
+ switch (lex.GetInteger()) {
default:
case 1: params.sides = LyXTextClass::OneSide; break;
case 2: params.sides = LyXTextClass::TwoSides; break;
int tmpret = lex.FindToken(string_align);
if (tmpret == -1) ++tmpret;
if (tmpret != LYX_LAYOUT_DEFAULT) { // tmpret != 99 ???
+#if 0
int tmpret2 = 1;
for (; tmpret > 0; --tmpret)
tmpret2 = tmpret2 * 2;
+#else
+ int const tmpret2 = int(pow(2.0, tmpret));
+#endif
+ //lyxerr << "Tmpret2 = " << tmpret2 << endl;
par->align = LyXAlignment(tmpret2);
}
} else if (token == "\\added_space_top") {
"Inserting as text.");
string::const_iterator cit = token.begin();
string::const_iterator end = token.end();
- for(; cit != end; ++cit) {
+ for (; cit != end; ++cit) {
par->InsertChar(pos, (*cit), font);
++pos;
}
if (token == "\\lyxformat") { // the first token _must_ be...
lex.EatLine();
format = lex.GetFloat();
- if (format > 1) {
+ if (format > 1.0) {
if (LYX_FORMAT - format > 0.05) {
lyxerr << fmt(_("Warning: need lyxformat %.2f but found %.2f"),
LYX_FORMAT, format) << endl;
// We simulate a safe reading anyways to allow
// users to take the chance... (Asger)
return true;
- } // format < 1
+ } // format < 1.0
else {
WriteAlert(_("ERROR!"),
_("Old LyX file format found. "
// Write marker that shows file is complete
ofs << "\n\\the_end" << endl;
- ofs.close();
- // how to check if close went ok?
- return true;
-}
+ ofs.close();
+ // how to check if close went ok?
+ // Following is an attempt... (BE 20001011)
+
+ // good() returns false if any error occured, including some
+ // formatting error.
+ // bad() returns true if something bad happened in the buffer,
+ // which should include file system full errors.
+
+ bool status = true;
+ if (!ofs.good()) {
+ status = false;
#if 0
-void Buffer::writeFileAscii(string const & fname, int linelen)
-{
- Inset * inset;
- char c;
- char footnoteflag = 0;
- char depth = 0;
- string tmp;
- LyXParagraph::size_type i;
- int j;
- int ltype = 0;
- int ltype_depth = 0;
- int actcell = 0;
- int actpos = 0;
- int currlinelen = 0;
- int fpos = 0;
- bool ref_printed = false;
-
- ofstream ofs(fname.c_str());
- if (!ofs) {
- WriteFSAlert(_("Error: Cannot write file:"), fname);
- return;
- }
-
- string const fname1 = TmpFileName();
- LyXParagraph * par = paragraph;
- while (par) {
- int noparbreak = 0;
- int islatex = 0;
- if (
-#ifndef NEW_INSETS
- par->footnoteflag != LyXParagraph::NO_FOOTNOTE ||
-#endif
- !par->previous
-#ifndef NEW_INSETS
- || par->previous->footnoteflag == LyXParagraph::NO_FOOTNOTE
-#endif
- ){
-
-#ifndef NEW_INSETS
- /* begins a footnote environment ? */
- if (footnoteflag != par->footnoteflag) {
- footnoteflag = par->footnoteflag;
- if (footnoteflag) {
- j = strlen(string_footnotekinds[par->footnotekind])+4;
- if (currlinelen + j > linelen)
- ofs << "\n";
- ofs << "(["
- << string_footnotekinds[par->footnotekind] << "] ";
- currlinelen += j;
- }
- }
-#endif
-
- /* begins or ends a deeper area ?*/
- if (depth != par->depth) {
- if (par->depth > depth) {
- while (par->depth > depth) {
- ++depth;
- }
- }
- else {
- while (par->depth < depth) {
- --depth;
- }
- }
- }
-
- /* First write the layout */
- tmp = textclasslist.NameOfLayout(params.textclass, par->layout);
- if (tmp == "Itemize") {
- ltype = 1;
- ltype_depth = depth+1;
- } else if (tmp == "Enumerate") {
- ltype = 2;
- ltype_depth = depth+1;
- } else if (contains(tmp, "ection")) {
- ltype = 3;
- ltype_depth = depth+1;
- } else if (contains(tmp, "aragraph")) {
- ltype = 4;
- ltype_depth = depth+1;
- } else if (tmp == "Description") {
- ltype = 5;
- ltype_depth = depth+1;
- } else if (tmp == "Abstract") {
- ltype = 6;
- ltype_depth = 0;
- } else if (tmp == "Bibliography") {
- ltype = 7;
- ltype_depth = 0;
- } else {
- ltype = 0;
- ltype_depth = 0;
- }
-
- /* maybe some vertical spaces */
-
- /* the labelwidthstring used in lists */
-
- /* some lines? */
-
- /* some pagebreaks? */
-
- /* noindent ? */
-
- /* what about the alignment */
+ if (ofs.bad()) {
+ lyxerr << "Buffer::writeFile: BAD ERROR!" << endl;
} else {
-#ifndef NEW_INSETS
- /* dummy layout, that means a footnote ended */
- footnoteflag = LyXParagraph::NO_FOOTNOTE;
- ofs << ") ";
- noparbreak = 1;
-#else
- lyxerr << "Should this ever happen?" << endl;
-#endif
+ lyxerr << "Buffer::writeFile: NOT SO BAD ERROR!"
+ << endl;
}
-
- LyXFont font1 =
- LyXFont(LyXFont::ALL_INHERIT, params.language);
- actcell = 0;
- for (i = 0, actpos = 1; i < par->size(); ++i, ++actpos) {
- if (!i && !footnoteflag && !noparbreak){
- ofs << "\n\n";
- for(j = 0; j < depth; ++j)
- ofs << " ";
- currlinelen = depth * 2;
- switch(ltype) {
- case 0: /* Standard */
- case 4: /* (Sub)Paragraph */
- case 5: /* Description */
- break;
- case 6: /* Abstract */
- ofs << "Abstract\n\n";
- break;
- case 7: /* Bibliography */
- if (!ref_printed) {
- ofs << "References\n\n";
- ref_printed = true;
- }
- break;
- default:
- ofs << par->labelstring << " ";
- break;
- }
- if (ltype_depth > depth) {
- for(j = ltype_depth - 1; j > depth; --j)
- ofs << " ";
- currlinelen += (ltype_depth-depth)*2;
- }
- }
- LyXFont font2 = par->GetFontSettings(params, i);
- if (font1.latex() != font2.latex()) {
- if (font2.latex() == LyXFont::OFF)
- islatex = 0;
- else
- islatex = 1;
- } else {
- islatex = 0;
- }
- c = par->GetChar(i);
- if (islatex)
- continue;
- switch (c) {
- case LyXParagraph::META_INSET:
- if ((inset = par->GetInset(i))) {
- fpos = ofs.tellp();
- inset->Ascii(this, ofs);
- currlinelen += (ofs.tellp() - fpos);
- actpos += (ofs.tellp() - fpos) - 1;
- }
- break;
- case LyXParagraph::META_NEWLINE:
- ofs << "\n";
- for(j = 0; j < depth; ++j)
- ofs << " ";
- currlinelen = depth * 2;
- if (ltype_depth > depth) {
- for(j = ltype_depth;
- j > depth; --j)
- ofs << " ";
- currlinelen += (ltype_depth - depth) * 2;
- }
- break;
- case LyXParagraph::META_HFILL:
- ofs << "\t";
- break;
- case '\\':
- ofs << "\\";
- break;
- default:
- if (currlinelen > linelen - 10
- && c == ' ' && i + 2 < par->size()) {
- ofs << "\n";
- for(j = 0; j < depth; ++j)
- ofs << " ";
- currlinelen = depth * 2;
- if (ltype_depth > depth) {
- for(j = ltype_depth;
- j > depth; --j)
- ofs << " ";
- currlinelen += (ltype_depth-depth)*2;
- }
- } else if (c != '\0')
- ofs << c;
- else if (c == '\0')
- lyxerr.debug() << "writeAsciiFile: NULL char in structure." << endl;
- ++currlinelen;
- break;
- }
- }
- par = par->next;
+#endif
}
-
- ofs << "\n";
+
+ return status;
}
-//----------------------------------------------------------------------------
-#else
-//----------------------------------------------------------------------------
+
+
string const Buffer::asciiParagraph(LyXParagraph const * par,
unsigned int linelen) const
{
LyXFont font2;
Inset const * inset;
char c;
+#ifndef NEW_INSETS
LyXParagraph::footnote_flag footnoteflag = LyXParagraph::NO_FOOTNOTE;
+#endif
char depth = 0;
int ltype = 0;
int ltype_depth = 0;
font1 = LyXFont(LyXFont::ALL_INHERIT, params.language);
for (LyXParagraph::size_type i = 0; i < par->size(); ++i) {
- if (!i && !footnoteflag && !noparbreak){
+ if (!i &&
+#ifndef NEW_INSETS
+ !footnoteflag &&
+#endif
+ !noparbreak) {
if (linelen > 0)
buffer << "\n\n";
- for(char j = 0; j < depth; ++j)
+ for (char j = 0; j < depth; ++j)
buffer << " ";
currlinelen = depth * 2;
- switch(ltype) {
+ switch (ltype) {
case 0: /* Standard */
case 4: /* (Sub)Paragraph */
case 5: /* Description */
break;
}
if (ltype_depth > depth) {
- for(char j = ltype_depth - 1; j > depth; --j)
+ for (char j = ltype_depth - 1; j > depth; --j)
buffer << " ";
currlinelen += (ltype_depth-depth)*2;
}
if ((inset = par->GetInset(i))) {
if (!inset->Ascii(this, buffer)) {
string dummy;
- string s = rsplit(buffer.str(),
+ string s = rsplit(buffer.str().c_str(),
dummy, '\n');
currlinelen += s.length();
} else {
case LyXParagraph::META_NEWLINE:
if (linelen > 0) {
buffer << "\n";
- for(char j = 0; j < depth; ++j)
+ for (char j = 0; j < depth; ++j)
buffer << " ";
}
currlinelen = depth * 2;
if (ltype_depth > depth) {
- for(char j = ltype_depth;
+ for (char j = ltype_depth;
j > depth; --j)
buffer << " ";
currlinelen += (ltype_depth - depth) * 2;
(c == ' ') && ((i + 2) < par->size()))
{
buffer << "\n";
- for(char j = 0; j < depth; ++j)
+ for (char j = 0; j < depth; ++j)
buffer << " ";
currlinelen = depth * 2;
if (ltype_depth > depth) {
- for(char j = ltype_depth;
+ for (char j = ltype_depth;
j > depth; --j)
buffer << " ";
currlinelen += (ltype_depth-depth)*2;
break;
}
}
- return buffer.str();
+ return buffer.str().c_str();
}
}
ofs << "\n";
}
-#endif
+
void Buffer::makeLaTeXFile(string const & fname,
string const & original_path,
features.UsedLanguages.insert(default_language);
#ifdef DO_USE_DEFAULT_LANGUAGE
if (params.language->lang() != "default" ||
- !features.UsedLanguages.empty() ) {
+ !features.UsedLanguages.empty()) {
#endif
use_babel = true;
for (LaTeXFeatures::LanguageList::const_iterator cit =
encodings.insert((*it)->encoding()->LatexName());
ofs << "\\usepackage[";
- copy(encodings.begin(), encodings.end(),
- ostream_iterator<string>(ofs, ","));
+ std::copy(encodings.begin(), encodings.end(),
+ std::ostream_iterator<string>(ofs, ","));
ofs << doc_encoding << "]{inputenc}\n";
texrow.newline();
} else if (params.inputenc != "default") {
void Buffer::sgmlOpenTag(ostream & os, int depth,
string const & latexname) const
{
- os << string(depth, ' ') << "<" << latexname << ">\n";
+ if (latexname != "!-- --")
+ os << string(depth, ' ') << "<" << latexname << ">\n";
}
void Buffer::sgmlCloseTag(ostream & os, int depth,
string const & latexname) const
{
- os << string(depth, ' ') << "</" << latexname << ">\n";
+ if (latexname != "!-- --")
+ os << string(depth, ' ') << "</" << latexname << ">\n";
}
LaTeXFeatures features(params, tclass.numLayouts());
validate(features);
- //if(nice)
+ //if (nice)
tex_code_break_column = lyxrc.ascii_linelen;
//else
//tex_code_break_column = 0;
texrow.reset();
if (!body_only) {
- string sgml_includedfiles=features.getIncludedFiles();
+ string sgml_includedfiles=features.getIncludedFiles(fname);
if (params.preamble.empty() && sgml_includedfiles.empty()) {
ofs << "<!doctype linuxdoc system>\n\n";
<< params.preamble << sgml_includedfiles << " \n]>\n\n";
}
- if(params.options.empty())
+ if (params.options.empty())
sgmlOpenTag(ofs, 0, top_element);
else {
string top = top_element;
// write opening SGML tags
switch (style.latextype) {
case LATEX_PARAGRAPH:
- if(depth == par->depth
+ if (depth == par->depth
&& !environment_stack[depth].empty()) {
sgmlCloseTag(ofs, depth, environment_stack[depth]);
environment_stack[depth].erase();
- if(depth)
+ if (depth)
--depth;
else
ofs << "</p>";
environment_stack[depth].erase();
}
if (environment_stack[depth] != style.latexname()) {
- if(depth == 0) {
+ if (depth == 0) {
string const temp = "p";
sgmlOpenTag(ofs, depth, temp);
}
sgmlOpenTag(ofs, depth,
environment_stack[depth]);
}
- if(style.latextype == LATEX_ENVIRONMENT) break;
+ if (style.latextype == LATEX_ENVIRONMENT) break;
desc_on = (style.labeltype == LABEL_MANUAL);
- if(desc_on)
+ if (desc_on)
item_name = "tag";
else
item_name = "item";
ofs << "\n";
// write closing SGML tags
- switch(style.latextype) {
+ switch (style.latextype) {
case LATEX_COMMAND:
case LATEX_ENVIRONMENT:
case LATEX_ITEM_ENVIRONMENT:
}
// Close open tags
- for(; depth > 0; --depth)
+ for (; depth > 0; --depth)
sgmlCloseTag(ofs, depth, environment_stack[depth]);
- if(!environment_stack[depth].empty())
+ if (!environment_stack[depth].empty())
sgmlCloseTag(ofs, depth, environment_stack[depth]);
if (!body_only) {
SimpleDocBookOnePar(os, extra_par, tpar,
desc_on, depth + 2);
sgmlCloseTag(os, depth+1, inner_tag);
- if(!extra_par.empty())
+ if (!extra_par.empty())
os << extra_par;
}
}
par = par->next;
}
os << tmp_par;
- if(!inner_tag.empty()) sgmlCloseTag(os, depth + 1, inner_tag);
- if(!extra_par.empty()) os << extra_par;
- if(!tag.empty()) sgmlCloseTag(os, depth, tag);
+ if (!inner_tag.empty()) sgmlCloseTag(os, depth + 1, inner_tag);
+ if (!extra_par.empty()) os << extra_par;
+ if (!tag.empty()) sgmlCloseTag(os, depth, tag);
}
#endif
#warning Use a real stack! (Lgb)
#endif
// Please, Lars, do not remove the global variable. I already
- // had to reintroduce it twice! (JMarc)
+ // had to reintroduce it twice! (JMarc)
+ // but...but... I'll remove it anyway. (well not quite) (Lgb)
+#if 0
int j;
// pop all tags till specified one
// push all tags, but the specified one
for (j = j + 1; j <= pos; ++j) {
os << "<" << stack[j] << ">";
- strcpy(stack[j-1], stack[j]);
+ strcpy(stack[j - 1], stack[j]);
}
--pos;
+#else
+ // pop all tags till specified one
+ int j = pos;
+ for (int j = pos; (j >= 0) && (strcmp(stack[j], tag.c_str())); --j)
+ os << "</" << stack[j] << ">";
+
+ // closes the tag
+ os << "</" << tag << ">";
+
+ // push all tags, but the specified one
+ for (int i = j + 1; i <= pos; ++i) {
+ os << "<" << stack[i] << ">";
+ strcpy(stack[i - 1], stack[i]);
+ }
+ --pos;
+#endif
}
LyXFont const font2 = par->getFont(params, i);
if (font1.family() != font2.family()) {
- switch(family_type) {
+ switch (family_type) {
case 0:
if (font2.family() == LyXFont::TYPEWRITER_FAMILY) {
push_tag(os, "tt", stack_num, stack);
// handle italic and slanted fonts
if (font1.shape() != font2.shape()) {
- switch(shape_type) {
+ switch (shape_type) {
case 0:
if (font2.shape() == LyXFont::ITALIC_SHAPE) {
push_tag(os, "it", stack_num, stack);
}
// resets description flag correctly
- switch(desc_on){
+ switch (desc_on){
case 1:
// <tag> not closed...
linux_doc_line_break(os, char_line_count, 6);
LaTeXFeatures features(params, tclass.numLayouts());
validate(features);
- //if(nice)
+ //if (nice)
tex_code_break_column = lyxrc.ascii_linelen;
//else
//tex_code_break_column = 0;
texrow.reset();
- if(!only_body) {
- string sgml_includedfiles=features.getIncludedFiles();
+ if (!only_body) {
+ string sgml_includedfiles=features.getIncludedFiles(fname);
ofs << "<!doctype " << top_element
<< " public \"-//OASIS//DTD DocBook V3.1//EN\"";
else
ofs << "\n [ " << params.preamble
<< sgml_includedfiles << " \n]>\n\n";
+ }
- if(params.options.empty())
- sgmlOpenTag(ofs, 0, top_element);
- else {
- string top = top_element;
- top += " ";
- top += params.options;
- sgmlOpenTag(ofs, 0, top);
- }
+ if (params.options.empty())
+ sgmlOpenTag(ofs, 0, top_element);
+ else {
+ string top = top_element;
+ top += " ";
+ top += params.options;
+ sgmlOpenTag(ofs, 0, top);
}
ofs << "<!-- DocBook file was created by " << LYX_DOCVERSION
par->layout);
// environment tag closing
- for( ; depth > par->depth; --depth) {
- if(environment_inner[depth] != "!-- --") {
+ for (; depth > par->depth; --depth) {
+ if (environment_inner[depth] != "!-- --") {
item_name= "listitem";
sgmlCloseTag(ofs, command_depth + depth,
item_name);
- if( environment_inner[depth] == "varlistentry")
+ if (environment_inner[depth] == "varlistentry")
sgmlCloseTag(ofs, depth+command_depth,
environment_inner[depth]);
}
environment_inner[depth].erase();
}
- if(depth == par->depth
+ if (depth == par->depth
&& environment_stack[depth] != style.latexname()
&& !environment_stack[depth].empty()) {
- if(environment_inner[depth] != "!-- --") {
+ if (environment_inner[depth] != "!-- --") {
item_name= "listitem";
sgmlCloseTag(ofs, command_depth+depth,
item_name);
- if( environment_inner[depth] == "varlistentry")
+ if (environment_inner[depth] == "varlistentry")
sgmlCloseTag(ofs,
depth + command_depth,
environment_inner[depth]);
}
// Write opening SGML tags.
- switch(style.latextype) {
+ switch (style.latextype) {
case LATEX_PARAGRAPH:
- if(style.latexname() != "dummy")
- sgmlOpenTag(ofs, depth+command_depth,
- style.latexname());
+ sgmlOpenTag(ofs, depth+command_depth, style.latexname());
break;
case LATEX_COMMAND:
cmd_depth= lyx::atoi(c_depth);
- if(command_flag) {
- if(cmd_depth<command_base) {
- for(int j = command_depth;
+ if (command_flag) {
+ if (cmd_depth<command_base) {
+ for (int j = command_depth;
j >= command_base; --j)
- if(!command_stack[j].empty())
+ if (!command_stack[j].empty())
sgmlCloseTag(ofs, j, command_stack[j]);
command_depth= command_base= cmd_depth;
- } else if(cmd_depth <= command_depth) {
- for(int j = command_depth;
+ } else if (cmd_depth <= command_depth) {
+ for (int j = command_depth;
j >= cmd_depth; --j)
- if(!command_stack[j].empty())
+ if (!command_stack[j].empty())
sgmlCloseTag(ofs, j, command_stack[j]);
command_depth= cmd_depth;
} else
sgmlOpenTag(ofs, depth + command_depth, command_name);
item_name = "title";
- sgmlOpenTag(ofs, depth + 1 + command_depth, item_name);
+ if (command_name != "!-- --")
+ sgmlOpenTag(ofs, depth + 1 + command_depth, item_name);
break;
case LATEX_ENVIRONMENT:
sgmlOpenTag(ofs, depth + command_depth,
environment_stack[depth]);
} else {
- if(environment_inner[depth] != "!-- --") {
+ if (environment_inner[depth] != "!-- --") {
item_name= "listitem";
sgmlCloseTag(ofs,
command_depth + depth,
}
}
- if(style.latextype == LATEX_ENVIRONMENT) {
- if(!style.latexparam().empty())
+ if (style.latextype == LATEX_ENVIRONMENT) {
+ if (!style.latexparam().empty())
sgmlOpenTag(ofs, depth + command_depth,
style.latexparam());
break;
desc_on = (style.labeltype == LABEL_MANUAL);
- if(desc_on)
+ if (desc_on)
environment_inner[depth]= "varlistentry";
else
environment_inner[depth]= "listitem";
sgmlOpenTag(ofs, depth + 1 + command_depth,
environment_inner[depth]);
- if(desc_on) {
+ if (desc_on) {
item_name= "term";
sgmlOpenTag(ofs, depth + 1 + command_depth,
item_name);
#endif
string end_tag;
// write closing SGML tags
- switch(style.latextype) {
+ switch (style.latextype) {
case LATEX_COMMAND:
end_tag = "title";
- sgmlCloseTag(ofs, depth + command_depth, end_tag);
+ if (command_name != "!-- --")
+ sgmlCloseTag(ofs, depth + command_depth, end_tag);
break;
case LATEX_ENVIRONMENT:
- if(!style.latexparam().empty())
+ if (!style.latexparam().empty())
sgmlCloseTag(ofs, depth + command_depth,
style.latexparam());
break;
case LATEX_ITEM_ENVIRONMENT:
- if(desc_on == 1) break;
+ if (desc_on == 1) break;
end_tag= "para";
sgmlCloseTag(ofs, depth + 1 + command_depth, end_tag);
break;
case LATEX_PARAGRAPH:
- if(style.latexname() != "dummy")
- sgmlCloseTag(ofs, depth + command_depth,
- style.latexname());
+ sgmlCloseTag(ofs, depth + command_depth, style.latexname());
break;
default:
- sgmlCloseTag(ofs, depth + command_depth,
- style.latexname());
+ sgmlCloseTag(ofs, depth + command_depth, style.latexname());
break;
}
}
// Close open tags
- for(; depth >= 0; --depth) {
- if(!environment_stack[depth].empty()) {
- if(environment_inner[depth] != "!-- --") {
+ for (; depth >= 0; --depth) {
+ if (!environment_stack[depth].empty()) {
+ if (environment_inner[depth] != "!-- --") {
item_name= "listitem";
sgmlCloseTag(ofs, command_depth + depth,
item_name);
- if( environment_inner[depth] == "varlistentry")
+ if (environment_inner[depth] == "varlistentry")
sgmlCloseTag(ofs, depth + command_depth,
environment_inner[depth]);
}
}
}
- for(int j = command_depth; j >= command_base; --j)
- if(!command_stack[j].empty())
+ for (int j = command_depth; j >= command_base; --j)
+ if (!command_stack[j].empty())
sgmlCloseTag(ofs, j, command_stack[j]);
- if (!only_body) {
- ofs << "\n\n";
- sgmlCloseTag(ofs, 0, top_element);
- }
+ ofs << "\n\n";
+ sgmlCloseTag(ofs, 0, top_element);
ofs.close();
// How to check for successful close
void Buffer::SimpleDocBookOnePar(ostream & os, string & extra,
LyXParagraph * par, int & desc_on,
- int depth)
+ int depth) const
{
bool emph_flag = false;
LyXFont font1 = main_body > 0 ? style.labelfont : style.font;
int char_line_count = depth;
- if(!style.free_spacing)
+ if (!style.free_spacing)
for (int j = 0; j < depth; ++j)
os << ' ';
// and title should come first
// desc_on == 4
//
- if(desc_on!= 3 || i!= 0) {
- if(!tmp_out.empty() && tmp_out[0] == '@') {
- if(desc_on == 4)
+ if (desc_on!= 3 || i!= 0) {
+ if (!tmp_out.empty() && tmp_out[0] == '@') {
+ if (desc_on == 4)
extra += frontStrip(tmp_out, '@');
else
os << frontStrip(tmp_out, '@');
}
// resets description flag correctly
- switch(desc_on){
+ switch (desc_on){
case 1:
// <term> not closed...
os << "</term>";
vector<vector<Buffer::TocItem> > const Buffer::getTocList()
{
+ int figs = 0;
+ int tables = 0;
+ int algs = 0;
vector<vector<TocItem> > l(4);
LyXParagraph * par = paragraph;
while (par) {
switch (par->footnotekind) {
case LyXParagraph::FIG:
case LyXParagraph::WIDE_FIG:
+ tmp.str = tostr(++figs) + ". "
+ + tmp.str;
l[TOC_LOF].push_back(tmp);
break;
case LyXParagraph::TAB:
case LyXParagraph::WIDE_TAB:
+ tmp.str = tostr(++tables) + ". "
+ + tmp.str;
l[TOC_LOT].push_back(tmp);
break;
case LyXParagraph::ALGORITHM:
+ tmp.str = tostr(++algs) + ". "
+ + tmp.str;
l[TOC_LOA].push_back(tmp);
break;
case LyXParagraph::FOOTNOTE:
{
/// then remove all LyXText in text-insets
LyXParagraph * par = paragraph;
- for(; par; par = par->next) {
+ for (; par; par = par->next) {
par->resizeInsetsLyXText(bv);
}
}