* This file is part of LyX, the document processor.
* Licence details can be found in the file COPYING.
*
- * \author Herbert Voss
+ * \author Herbert Voß
*
- * Full author contact details are available in file CREDITS
+ * Full author contact details are available in file CREDITS.
*/
#include <config.h>
#include "tex_helpers.h"
#include "debug.h"
-#include "gettext.h"
#include "support/filetools.h"
#include "support/lstrings.h"
-#include "support/systemcall.h"
-#include "support/path.h"
#include "support/lyxalgo.h"
+#include "support/package.h"
+#include "support/path.h"
+#include "support/systemcall.h"
#include <boost/cregex.hpp>
-#include <vector>
#include <fstream>
-#include <algorithm>
-
-using namespace lyx::support;
-using std::vector;
+using std::string;
using std::endl;
-using std::sort;
-using std::unique;
-extern string user_lyxdir; // home of *Files.lst
+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;
std::vector<string>::iterator it = list.begin();
std::vector<string>::iterator end = list.end();
for (; it != end; ++it) {
- *it = STRCONV(regex.Merge(STRCONV((*it)), "/"));
+ *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