#include "support/filetools.h"
#include "support/lstrings.h"
-#include "support/systemcall.h"
-#include "support/path.h"
#include "support/lyxalgo.h"
-#include "support/path_defines.h"
+#include "support/package.h"
+#include "support/path.h"
+#include "support/systemcall.h"
#include <boost/cregex.hpp>
#include <fstream>
namespace lyx {
using support::contains;
+using support::GetExtension;
using support::GetFileContents;
using support::getVectorFromString;
using support::LibFileSearch;
using support::OnlyFilename;
+using support::package;
using support::Path;
-using support::Path;
+using support::QuoteName;
using support::split;
using support::Systemcall;
using support::token;
-using support::user_lyxdir;
namespace frontend {
void rescanTexStyles()
{
// Run rescan in user lyx directory
- Path p(user_lyxdir());
+ Path p(package().user_support());
Systemcall one;
one.startscript(Systemcall::Wait,
- LibFileSearch("scripts", "TeXFiles.sh"));
+ "sh " +
+ QuoteName(LibFileSearch("scripts", "TeXFiles.sh")));
}
void texhash()
{
// Run texhash in user lyx directory
- Path p(user_lyxdir());
+ Path p(package().user_support());
//path to texhash through system
Systemcall one;
*it = regex.Merge((*it), "/");
}
+ // remove empty items and duplicates
+ list.erase(std::remove(list.begin(), list.end(), ""), list.end());
eliminate_duplicates(list);
}
string const getTexFileFromList(string const & file,
string const & type)
{
- string const file_ = (type == "cls") ? file + ".cls" : file + ".sty";
-
- lyxerr << "Search for classfile " << file_ << endl;
-
- string const lstfile =
- ((type == "cls") ? "clsFiles.lst" : "styFiles.lst");
+ string file_ = file;
+ // do we need to add the suffix?
+ if (!(GetExtension(file) == type))
+ file_ += '.' + type;
+
+ lyxerr << "Searching for file " << file_ << endl;
+
+ string lstfile;
+ if (type == "cls")
+ lstfile = "clsFiles.lst";
+ else if (type == "sty")
+ lstfile = "styFiles.lst";
+ else if (type == "bst")
+ lstfile = "bstFiles.lst";
+ else if (type == "bib")
+ lstfile = "bibFiles.lst";
string const allClasses = GetFileContents(LibFileSearch(string(),
lstfile));
int entries = 0;