#include <config.h>
-#include <fstream>
-#include <cstdlib>
-
#ifdef __GNUG__
#pragma implementation
#endif
-#include "frontends/Dialogs.h"
#include "insetbib.h"
#include "buffer.h"
#include "debug.h"
#include "BufferView.h"
#include "gettext.h"
#include "lyxtext.h"
+#include "lyxrc.h"
+#include "font.h"
+#include "LyXView.h"
+#include "lyxtextclasslist.h"
+
+#include "frontends/Dialogs.h"
+
#include "support/filetools.h"
#include "support/path.h"
#include "support/os.h"
#include "support/lstrings.h"
#include "support/LAssert.h"
-#include "lyxrc.h"
-#include "font.h"
-#include "LyXView.h"
+
+#include <fstream>
+#include <cstdlib>
using std::ostream;
using std::ifstream;
}
-void InsetBibKey::setCounter(int c)
-{
- counter = c;
+void InsetBibKey::setCounter(int c)
+{
+ counter = c;
}
// I'm sorry but this is still necessary because \bibitem is used also
// as a LyX 2.x command, and lyxlex is not enough smart to understand
-// real LaTeX commands. Yes, that could be fixed, but would be a waste
+// real LaTeX commands. Yes, that could be fixed, but would be a waste
// of time cause LyX3 won't use lyxlex anyway. (ale)
void InsetBibKey::write(Buffer const *, ostream & os) const
{
void InsetBibKey::edit(BufferView * bv, int, int, unsigned int)
-{
+{
bv->owner()->getDialogs()->showBibitem(this);
}
// 1. \bibliographystyle{style}
// 2. \addcontentsline{...} - if option bibtotoc set
// 3. \bibliography{database}
- string adb, db_out;
+ string adb;
string db_in = getContents();
db_in = split(db_in, adb, ',');
}
}
- if (!buffer->niceFile
- && IsFileReadable(MakeAbsPath(style, buffer->filepath) + ".bst")) {
- style = MakeAbsPath(style, buffer->filepath);
+ if (!buffer->niceFile
+ && IsFileReadable(MakeAbsPath(style, buffer->filePath()) + ".bst")) {
+ style = MakeAbsPath(style, buffer->filePath());
}
if (!style.empty()) { // we want no \biblio...{}
}
// bibtotoc-Option
- if (!bibtotoc.empty()) {
+ if (!bibtotoc.empty()) {
// maybe a problem when a textclass has no "art" as
// part of its name, because it's than book.
// For the "official" lyx-layouts it's no problem to support
// all well
- if (!contains(textclasslist.NameOfClass(buffer->params.textclass),"art")) {
+ if (!contains(textclasslist[buffer->params.textclass].name(),
+ "art")) {
if (buffer->params.sides == LyXTextClass::OneSide) {
// oneside
os << "\\clearpage";
} else {
// article class
- os << "\\addcontentsline{toc}{section}{\\refname}";
+ os << "\\addcontentsline{toc}{section}{\\refname}";
}
}
// If we generate in a temp dir, we might need to give an
// absolute path there. This is a bit complicated since we can
// have a comma-separated list of bibliographies
- while(!adb.empty()) {
+ string db_out;
+ while (!adb.empty()) {
if (!buffer->niceFile &&
- IsFileReadable(MakeAbsPath(adb, buffer->filepath)+".bib"))
- adb = os::external_path(MakeAbsPath(adb, buffer->filepath));
+ IsFileReadable(MakeAbsPath(adb, buffer->filePath())+".bib"))
+ adb = os::external_path(MakeAbsPath(adb, buffer->filePath()));
db_out += adb;
db_out += ',';
db_in= split(db_in, adb,',');
}
-vector<string> const InsetBibtex::getFiles(Buffer const &) const
+vector<string> const InsetBibtex::getFiles(Buffer const & buffer) const
{
// Doesn't appear to be used (Angus, 31 July 2001)
- // Path p(buffer->filepath);
+ Path p(buffer.filePath());
vector<string> vec;
string tmp;
string bibfiles = getContents();
bibfiles = split(bibfiles, tmp, ',');
- while(!tmp.empty()) {
+ while (!tmp.empty()) {
string file = findtexfile(ChangeExtension(tmp, "bib"), "bib");
lyxerr[Debug::LATEX] << "Bibfile: " << file << endl;
// If we didn't find a matching file name just fail silently
if (!file.empty())
vec.push_back(file);
-
+
// Get next file name
- bibfiles = split(bibfiles, tmp, ',');
+ bibfiles = split(bibfiles, tmp, ',');
}
return vec;
string linebuf0;
while (getline(ifs, linebuf0)) {
string linebuf = frontStrip(strip(linebuf0));
- if (linebuf.empty() ) continue;
+ if (linebuf.empty()) continue;
if (prefixIs(linebuf, "@")) {
linebuf = subst(linebuf, '{', '(');
string tmp;
&& !prefixIs(tmp, "@preamble")) {
linebuf = split(linebuf, tmp, ',');
tmp = frontStrip(tmp);
+ tmp = frontStrip(tmp,'\t');
if (!tmp.empty()) {
keys.push_back(pair<string,string>(tmp,string()));
}
}
}
}
- return keys;
+ return keys;
}
{
string contents(getContents());
if (!contains(contents, db)) {
- if (!contents.empty())
+ if (!contents.empty())
contents += ",";
setContents(contents + db);
return true;
setContents(subst(getContents(), tmp, ", "));
} else if (n == 0)
setContents(split(getContents(), bd, ','));
- else
+ else
return false;
}
return true;
// Ha, now we are mainly at 1.2.0 and it is still here (Jug)
// Does look like a hack? It is! (but will change at 0.13)
Paragraph * par = bv->buffer()->paragraph;
-
+
while (par) {
if (par->bibkey) {
int const wx = par->bibkey->width(bv, font);
Paragraph * par = buffer->paragraph;
InsetBibKey * bkey = 0;
LyXFont font;
-
+
while (par) {
if (par->bibkey) {
int const wx =
}
par = par->next();
}
-
+
if (bkey && !bkey->getBibLabel().empty())
return bkey->getBibLabel();
-
+
return "99";
}