X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Fbuffer.C;h=c42098707bacd16f6a317ccef77d38358371ece2;hb=a393cfc37c978985f534f9f00bdbbcfed07b3731;hp=873d135c900642536a6e699f190ab2c129fbb490;hpb=b44c7a6767b530ae052f3364d19e1f3a65d89e97;p=lyx.git
diff --git a/src/buffer.C b/src/buffer.C
index 873d135c90..c42098707b 100644
--- a/src/buffer.C
+++ b/src/buffer.C
@@ -89,10 +89,10 @@
#include "support/filetools.h"
#include "support/path.h"
#include "support/os.h"
-#include "support/syscall.h"
#include "support/lyxlib.h"
#include "support/FileInfo.h"
#include "support/lyxmanip.h"
+#include "support/lyxalgo.h" // for lyx::count
#include
#include
@@ -148,21 +148,26 @@ extern int tex_code_break_column;
Buffer::Buffer(string const & file, bool ronly)
+ : paragraph(0), lyx_clean(true), bak_clean(true),
+ unnamed(false), dep_clean(0), read_only(ronly),
+ filename_(file), users(0)
{
lyxerr[Debug::INFO] << "Buffer::Buffer()" << endl;
- filename = file;
- filepath = OnlyPath(file);
- paragraph = 0;
- lyx_clean = true;
- bak_clean = true;
- dep_clean = 0;
- read_only = ronly;
- unnamed = false;
- users = 0;
+// filename = file;
+ filepath_ = OnlyPath(file);
+// paragraph = 0;
+// lyx_clean = true;
+// bak_clean = true;
+// dep_clean = 0;
+// read_only = ronly;
+// unnamed = false;
+// users = 0;
lyxvc.buffer(this);
- if (read_only || (lyxrc.use_tempdir)) {
+ if (read_only || lyxrc.use_tempdir) {
tmppath = CreateBufferTmpDir();
- } else tmppath.erase();
+ } else {
+ tmppath.erase();
+ }
}
@@ -194,7 +199,7 @@ Buffer::~Buffer()
string const Buffer::getLatexName(bool no_path) const
{
- string const name = ChangeExtension(MakeLatexName(filename), ".tex");
+ string const name = ChangeExtension(MakeLatexName(fileName()), ".tex");
if (no_path)
return OnlyFilename(name);
else
@@ -267,9 +272,9 @@ void Buffer::resetAutosaveTimers() const
void Buffer::setFileName(string const & newfile)
{
- filename = MakeAbsPath(newfile);
- filepath = OnlyPath(filename);
- setReadonly(IsFileWriteable(filename) == 0);
+ filename_ = MakeAbsPath(newfile);
+ filepath_ = OnlyPath(filename_);
+ setReadonly(IsFileWriteable(filename_) == 0);
updateTitles();
}
@@ -332,7 +337,7 @@ bool Buffer::readLyXformat2(LyXLex & lex, Paragraph * par)
} else {
// We are inserting into an existing document
users->text->breakParagraph(users);
- first_par = users->text->firstParagraph();
+ first_par = users->text->ownerParagraph();
pos = 0;
markDirty();
// We don't want to adopt the parameters from the
@@ -890,6 +895,7 @@ Buffer::parseSingleLyXformat2Token(LyXLex & lex, Paragraph *& par,
//how can I put it back?
}
} else if (token == "\\bulletLaTeX") {
+ // The bullet class should be able to read this.
lex.nextToken();
int const index = lex.getInteger();
lex.next();
@@ -906,6 +912,7 @@ Buffer::parseSingleLyXformat2Token(LyXLex & lex, Paragraph *& par,
lex.next();
temp_str = lex.getString();
}
+
params.user_defined_bullets[index].setText(sum_str);
params.temp_bullets[index].setText(sum_str);
} else if (token == "\\secnumdepth") {
@@ -1033,10 +1040,16 @@ Buffer::parseSingleLyXformat2Token(LyXLex & lex, Paragraph *& par,
}
} else if (token == "\\added_space_top") {
lex.nextToken();
- par->params().spaceTop(VSpace(lex.getString()));
+ VSpace value = VSpace(lex.getString());
+ if ((value.length().len().value() != 0) ||
+ (value.kind() != VSpace::LENGTH))
+ par->params().spaceTop(value);
} else if (token == "\\added_space_bottom") {
lex.nextToken();
- par->params().spaceBottom(VSpace(lex.getString()));
+ VSpace value = VSpace(lex.getString());
+ if ((value.length().len().value() != 0) ||
+ (value.kind() != VSpace::LENGTH))
+ par->params().spaceBottom(value);
#ifndef NO_COMPABILITY
#ifndef NO_PEXTRA_REALLY
} else if (token == "\\pextra_type") {
@@ -1270,10 +1283,10 @@ Buffer::parseSingleLyXformat2Token(LyXLex & lex, Paragraph *& par,
}
InsetMinipage * mini = new InsetMinipage;
mini->pos(static_cast(par->params().pextraAlignment()));
- mini->width(par->params().pextraWidth());
+ mini->pageWidth(LyXLength(par->params().pextraWidth()));
if (!par->params().pextraWidthp().empty()) {
- lyxerr << "WP:" << mini->width() << endl;
- mini->width(tostr(par->params().pextraWidthp())+"%");
+ lyxerr << "WP:" << mini->pageWidth().asString() << endl;
+ mini->pageWidth(LyXLength((par->params().pextraWidthp())+"%"));
}
Paragraph * op = mini->firstParagraph();
mini->inset.paragraph(par);
@@ -1351,10 +1364,10 @@ Buffer::parseSingleLyXformat2Token(LyXLex & lex, Paragraph *& par,
InsetMinipage * mini = new InsetMinipage;
mini->pos(static_cast(minipar->params().pextraAlignment()));
- mini->width(minipar->params().pextraWidth());
+ mini->pageWidth(LyXLength(minipar->params().pextraWidth()));
if (!par->params().pextraWidthp().empty()) {
- lyxerr << "WP:" << mini->width() << endl;
- mini->width(tostr(par->params().pextraWidthp())+"%");
+ lyxerr << "WP:" << mini->pageWidth().asString() << endl;
+ mini->pageWidth(LyXLength((par->params().pextraWidthp())+"%"));
}
mini->inset.paragraph(minipar);
@@ -1505,8 +1518,8 @@ void Buffer::readInset(LyXLex & lex, Paragraph *& par,
} else if (tmptok == "Formula") {
inset = new InsetFormula;
} else if (tmptok == "Figure") { // Backward compatibility
- inset = new InsetFig(100, 100, *this);
- //inset = new InsetGraphics;
+// inset = new InsetFig(100, 100, *this);
+ inset = new InsetGraphics;
} else if (tmptok == "Graphics") {
inset = new InsetGraphics;
} else if (tmptok == "Info") {// backwards compatibility
@@ -1517,7 +1530,7 @@ void Buffer::readInset(LyXLex & lex, Paragraph *& par,
} else if (tmptok == "Note") {
inset = new InsetNote;
} else if (tmptok == "Include") {
- InsetCommandParams p( "Include" );
+ InsetCommandParams p("Include");
inset = new InsetInclude(p, *this);
} else if (tmptok == "ERT") {
inset = new InsetERT;
@@ -1694,7 +1707,7 @@ bool Buffer::writeFile(string const & fname, bool flag) const
// warnings, only cerr.
// Needed for autosave in background or panic save (Matthias 120496)
- if (read_only && (fname == filename)) {
+ if (read_only && (fname == fileName())) {
// Here we should come with a question if we should
// perform the write anyway.
if (flag)
@@ -2073,7 +2086,7 @@ void Buffer::makeLaTeXFile(string const & fname,
// original_path is set. This is done for usual tex-file, but not
// for nice-latex-file. (Matthias 250696)
if (!only_body) {
- if (!nice){
+ if (!nice) {
// code for usual, NOT nice-latex-file
ofs << "\\batchmode\n"; // changed
// from \nonstopmode
@@ -2172,7 +2185,7 @@ void Buffer::makeLaTeXFile(string const & fname,
}
string strOptions(options.str().c_str());
- if (!strOptions.empty()){
+ if (!strOptions.empty()) {
strOptions = strip(strOptions, ',');
ofs << '[' << strOptions << ']';
}
@@ -2442,7 +2455,9 @@ void Buffer::makeLaTeXFile(string const & fname,
if (!bullets_def.empty())
preamble += bullets_def + "}\n\n";
- for (int j = countChar(preamble, '\n'); j-- ;) {
+ int const nlines =
+ int(lyx::count(preamble.begin(), preamble.end(), '\n'));
+ for (int j = 0; j != nlines; ++j) {
texrow.newline();
}
@@ -2535,15 +2550,15 @@ void Buffer::latexParagraphs(ostream & ofs, Paragraph * par,
if ((in == 0) || !in->forceDefaultParagraphs(in)) {
LyXLayout const & layout =
textclasslist.Style(params.textclass, par->layout);
-
- if (layout.intitle) {
+
+ if (layout.intitle) {
if (already_title) {
lyxerr <<"Error in latexParagraphs: You"
" should not mix title layouts"
" with normal ones." << endl;
} else
was_title = true;
- } else if (was_title && !already_title) {
+ } else if (was_title && !already_title) {
ofs << "\\maketitle\n";
texrow.newline();
already_title = true;
@@ -2677,7 +2692,7 @@ void Buffer::makeLinuxDocFile(string const & fname, bool nice, bool body_only)
if (par->isInset(0)) {
Inset * inset = par->getInset(0);
Inset::Code lyx_code = inset->lyxCode();
- if (lyx_code == Inset::TOC_CODE){
+ if (lyx_code == Inset::TOC_CODE) {
string const temp = "toc";
sgmlOpenTag(ofs, depth, temp);
@@ -2713,7 +2728,7 @@ void Buffer::makeLinuxDocFile(string const & fname, bool nice, bool body_only)
_("Error : Wrong depth for"
" LatexType Command.\n"));
- if (!environment_stack[depth].empty()){
+ if (!environment_stack[depth].empty()) {
sgmlCloseTag(ofs, depth,
environment_stack[depth]);
ofs << "
";
@@ -2846,7 +2861,7 @@ void operator|=(PAR_TAG & p1, PAR_TAG const & p2)
inline
void reset(PAR_TAG & p1, PAR_TAG const & p2)
{
- p1 = static_cast( p1 & ~p2);
+ p1 = static_cast(p1 & ~p2);
}
} // namespace anon
@@ -2971,7 +2986,7 @@ void Buffer::simpleLinuxDocOnePar(ostream & os,
}
list < PAR_TAG > temp;
- while (!tag_state.empty() && tag_close ) {
+ while (!tag_state.empty() && tag_close) {
PAR_TAG k = tag_state.top();
tag_state.pop();
os << "" << tag_name(k) << ">";
@@ -3212,7 +3227,7 @@ void Buffer::makeDocBookFile(string const & fname, bool nice, bool only_body)
if (par->isInset(0)) {
Inset * inset = par->getInset(0);
Inset::Code lyx_code = inset->lyxCode();
- if (lyx_code == Inset::LABEL_CODE){
+ if (lyx_code == Inset::LABEL_CODE) {
command_name += " id=\"";
command_name += (static_cast(inset))->getContents();
command_name += "\"";
@@ -3236,7 +3251,7 @@ void Buffer::makeDocBookFile(string const & fname, bool nice, bool only_body)
}
if (environment_stack[depth] != style.latexname()) {
- if(environment_stack.size() == depth + 1) {
+ if (environment_stack.size() == depth + 1) {
environment_stack.push_back("!-- --");
environment_inner.push_back("!-- --");
}
@@ -3259,7 +3274,7 @@ void Buffer::makeDocBookFile(string const & fname, bool nice, bool only_body)
if (style.latextype == LATEX_ENVIRONMENT) {
if (!style.latexparam().empty()) {
- if(style.latexparam() == "CDATA")
+ if (style.latexparam() == "CDATA")
ofs << "";
else
sgmlCloseTag(ofs, depth + command_depth,
@@ -3383,17 +3398,17 @@ void Buffer::simpleDocBookOnePar(ostream & os,
if (font.emph() == LyXFont::ON) {
os << "";
emph_flag = true;
- }else if(i) {
+ } else if (i) {
os << "";
emph_flag = false;
}
}
- if ( par->isInset(i) ) {
+ if (par->isInset(i)) {
Inset * inset = par->getInset(i);
// don't print the inset in position 0 if desc_on == 3 (label)
- if ( i || desc_on != 3)
+ if (i || desc_on != 3)
inset->docbook(this, os);
} else {
char c = par->getChar(i);
@@ -3402,7 +3417,7 @@ void Buffer::simpleDocBookOnePar(ostream & os,
if (style.pass_thru) {
os << c;
- } else if(style.free_spacing || par->isFreeSpacing() || c != ' ') {
+ } else if (style.free_spacing || par->isFreeSpacing() || c != ' ') {
os << sgml_string;
} else if (desc_on ==1) {
++char_line_count;
@@ -3424,7 +3439,7 @@ void Buffer::simpleDocBookOnePar(ostream & os,
// not closed...
os << "";
}
- if(style.free_spacing) os << '\n';
+ if (style.free_spacing) os << '\n';
}
@@ -3439,7 +3454,7 @@ int Buffer::runChktex()
// get LaTeX-Filename
string const name = getLatexName();
- string path = OnlyPath(filename);
+ string path = filePath();
string const org_path = path;
if (lyxrc.use_tempdir || !IsDirWriteable(path)) {
@@ -3456,7 +3471,7 @@ int Buffer::runChktex()
makeLaTeXFile(name, org_path, false);
TeXErrors terr;
- Chktex chktex(lyxrc.chktex_command, name, filepath);
+ Chktex chktex(lyxrc.chktex_command, name, filePath());
int res = chktex.run(terr); // run chktex
if (res == -1) {
@@ -3469,7 +3484,7 @@ int Buffer::runChktex()
// if we removed error insets before we ran chktex or if we inserted
// error insets after we ran chktex, this must be run:
- if (removedErrorInsets || res){
+ if (removedErrorInsets || res) {
users->redraw();
users->fitCursor();
}