#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>
-using lyx::support::contains;
-using lyx::support::GetFileContents;
-using lyx::support::getVectorFromString;
-using lyx::support::LibFileSearch;
-using lyx::support::OnlyFilename;
-using lyx::support::Path;
-using lyx::support::Path;
-using lyx::support::split;
-using lyx::support::Systemcall;
-using lyx::support::token;
-using lyx::support::user_lyxdir;
-
+using std::string;
using std::endl;
+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::QuoteName;
+using support::split;
+using support::Systemcall;
+using support::token;
+
+namespace frontend {
// build filelists of all availabe bst/cls/sty-files. done through
// kpsewhich and an external script, saved in *Files.lst
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), "/");
}
- lyx::eliminate_duplicates(list);
+ // 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;
return classfile;
}
+
+} // namespace frontend
+} // namespace lyx