Remove Requires and Excludes from CiteEngines

These are exclusive anyway.
This commit is contained in:
Juergen Spitzmueller 2017-01-09 09:04:37 +01:00
parent 352a8e115f
commit a04a2f9a8a
8 changed files with 11 additions and 109 deletions

View File

@ -3,7 +3,6 @@
# The basic citation capabilities provided by BibTeX.
# Mainly simple numeric styles primarily suitable for science and maths.
# DescriptionEnd
# Excludes: jurabib | natbib | biblatex | biblatex-natbib
# Author: Julien Rioux <jrioux@lyx.org>

View File

@ -7,7 +7,6 @@
# than normal Biblatex. As with normal Biblatex, the use of 'biber'
# as Bibliography processor is advised.
# DescriptionEnd
# Excludes: basic | jurabib | biblatex | natbib
# Author: Jürgen Spitzmüller <spitz@lyx.org>

View File

@ -5,7 +5,6 @@
# and provides many features that are not possible with BibTeX.
# The use of 'biber' as bibliography processor is advised.
# DescriptionEnd
# Excludes: basic | jurabib | natbib | biblatex-natbib
# Author: Jürgen Spitzmüller <spitz@lyx.org>

View File

@ -4,7 +4,6 @@
# and the Humanities. It includes localizations for English, German, French, Dutch,
# Spanish and Italian.
# DescriptionEnd
# Excludes: basic | natbib | biblatex | biblatex-natbib
# Author: Julien Rioux <jrioux@lyx.org>

View File

@ -5,7 +5,6 @@
# numerical citations, annotations, capitalization of the `van' part of
# author names, shortened and full author lists, and more.
# DescriptionEnd
# Excludes: basic | jurabib | biblatex | biblatex-natbib
# Author: Julien Rioux <jrioux@lyx.org>

View File

@ -1511,7 +1511,7 @@ def checkCiteEnginesConfig():
## It has been automatically generated by configure
## Use "Options/Reconfigure" if you need to update it after a
## configuration change.
## "CiteEngineName" "filename" "CiteEngineType" "CiteFramework" "DefaultBiblio" "Description" "Packages" "Requires" "Excludes"
## "CiteEngineName" "filename" "CiteEngineType" "CiteFramework" "DefaultBiblio" "Description" "Packages"
''')
# build the list of available modules
@ -1546,22 +1546,17 @@ def processCiteEngineFile(file, filename, bool_docbook):
#DescriptionBegin
#...body of description...
#DescriptionEnd
#Requires: [list of required engines]
#Excludes: [list of excluded engines]
The last two lines are optional.
We expect output:
"CiteEngineName" "filename" "CiteEngineType" "CiteFramework" "DefaultBiblio" "Description" "Packages" "Requires" "Excludes"
"CiteEngineName" "filename" "CiteEngineType" "CiteFramework" "DefaultBiblio" "Description" "Packages"
'''
remods = re.compile(r'\DeclareLyXCiteEngine\s*(?:\[([^]]*?)\])?{(.*)}')
rereqs = re.compile(r'#+\s*Requires:\s*(.*)')
reexcs = re.compile(r'#+\s*Excludes:\s*(.*)')
redbeg = re.compile(r'#+\s*DescriptionBegin\s*$')
redend = re.compile(r'#+\s*DescriptionEnd\s*$')
recet = re.compile(r'\s*CiteEngineType\s*(.*)')
redb = re.compile(r'\s*DefaultBiblio\s*(.*)')
resfm = re.compile(r'\s*CiteFramework\s*(.*)')
modname = desc = pkgs = req = excl = cet = db = cfm = ""
modname = desc = pkgs = cet = db = cfm = ""
readingDescription = False
descLines = []
@ -1589,18 +1584,6 @@ def processCiteEngineFile(file, filename, bool_docbook):
tmp = [s.strip() for s in pkgs.split(",")]
pkgs = ",".join(tmp)
continue
res = rereqs.search(line)
if res != None:
req = res.group(1)
tmp = [s.strip() for s in req.split("|")]
req = "|".join(tmp)
continue
res = reexcs.search(line)
if res != None:
excl = res.group(1)
tmp = [s.strip() for s in excl.split("|")]
excl = "|".join(tmp)
continue
res = recet.search(line)
if res != None:
cet = res.group(1)
@ -1635,7 +1618,7 @@ def processCiteEngineFile(file, filename, bool_docbook):
cm.write(line + '\n')
cm.close()
return '"%s" "%s" "%s" "%s" "%s" "%s" "%s" "%s" "%s"\n' % (modname, filename, cet, cfm, db, desc, pkgs, req, excl)
return '"%s" "%s" "%s" "%s" "%s" "%s" "%s"\n' % (modname, filename, cet, cfm, db, desc, pkgs)
def checkTeXAllowSpaces():

View File

@ -40,11 +40,9 @@ CiteEnginesList theCiteEnginesList;
LyXCiteEngine::LyXCiteEngine(string const & n, string const & i,
vector<string> const & cet, string const & cfm,
vector<string> const & dbs,
string const & d, vector<string> const & p,
vector<string> const & r, vector<string> const & e):
string const & d, vector<string> const & p):
name_(n), id_(i), engine_types_(cet), cite_framework_(cfm), default_biblios_(dbs),
description_(d), package_list_(p), required_engines_(r), excluded_engines_(e),
checked_(false), available_(false)
description_(d), package_list_(p), checked_(false), available_(false)
{
filename_ = id_ + ".citeengine";
}
@ -86,39 +84,6 @@ bool LyXCiteEngine::hasEngineType(CiteEngineType const & et) const
}
bool LyXCiteEngine::isCompatible(string const & cename) const
{
// do we exclude it?
if (find(excluded_engines_.begin(), excluded_engines_.end(), cename) !=
excluded_engines_.end())
return false;
LyXCiteEngine const * const lm = theCiteEnginesList[cename];
if (!lm)
return true;
// does it exclude us?
vector<string> const excengs = lm->getExcludedEngines();
if (find(excengs.begin(), excengs.end(), id_) != excengs.end())
return false;
return true;
}
bool LyXCiteEngine::areCompatible(string const & eng1, string const & eng2)
{
LyXCiteEngine const * const lm1 = theCiteEnginesList[eng1];
if (lm1)
return lm1->isCompatible(eng2);
LyXCiteEngine const * const lm2 = theCiteEnginesList[eng2];
if (lm2)
return lm2->isCompatible(eng1);
// Can't check it either way.
return true;
}
string LyXCiteEngine::getDefaultBiblio(CiteEngineType const & cet) const
{
string res;
@ -273,29 +238,9 @@ bool CiteEnginesList::read()
str = split(str, p, ',');
pkgs.push_back(p);
}
if (!lex.next())
break;
str = lex.getString();
LYXERR(Debug::TCLASS, "Required: " << str);
vector<string> req;
while (!str.empty()) {
string p;
str = split(str, p, '|');
req.push_back(p);
}
if (!lex.next())
break;
str = lex.getString();
LYXERR(Debug::TCLASS, "Excluded: " << str);
vector<string> exc;
while (!str.empty()) {
string p;
str = split(str, p, '|');
exc.push_back(p);
}
// This code is run when we have
// cename, fname, desc, pkgs, req and exc
addCiteEngine(cename, fname, cets, citeframework, dbs, desc, pkgs, req, exc);
// cename, fname, cets, citeframework, dbs, desc, pkgs
addCiteEngine(cename, fname, cets, citeframework, dbs, desc, pkgs);
} // end switch
} //end while
@ -310,10 +255,9 @@ bool CiteEnginesList::read()
void CiteEnginesList::addCiteEngine(string const & cename,
string const & filename, vector<string> const & cets,
string const & citeframework, vector<string> const & dbs,
string const & description, vector<string> const & pkgs,
vector<string> const & req, vector<string> const & exc)
string const & description, vector<string> const & pkgs)
{
LyXCiteEngine ce(cename, filename, cets, citeframework, dbs, description, pkgs, req, exc);
LyXCiteEngine ce(cename, filename, cets, citeframework, dbs, description, pkgs);
englist_.push_back(ce);
}

View File

@ -54,9 +54,7 @@ public:
std::string const & cfm,
std::vector<std::string> const & defaultbiblios,
std::string const & description,
std::vector<std::string> const & packagelist,
std::vector<std::string> const & requires,
std::vector<std::string> const & excludes);
std::vector<std::string> const & packagelist);
/// whether the required packages are available
bool isAvailable() const;
/// the missing prerequisites, if any
@ -82,19 +80,6 @@ public:
///
std::vector<std::string> const & getPackageList() const
{ return package_list_; }
///
std::vector<std::string> const & getRequiredEngines() const
{ return required_engines_; }
/// Engines this one excludes: the list should be treated disjunctively
std::vector<std::string> const & getExcludedEngines() const
{ return excluded_engines_; }
/// \return true if the engine is compatible with this one, i.e.,
/// it does not exclude us and we do not exclude it.
/// this will also return true if cename is unknown and we do not
/// exclude it, since in that case we cannot check its exclusions.
bool isCompatible(std::string const & cename) const;
///
static bool areCompatible(std::string const & eng1, std::string const & eng2);
private:
/// what appears in the ui
std::string name_;
@ -113,10 +98,6 @@ private:
std::string description_;
/// the LaTeX packages on which this depends, if any
std::vector<std::string> package_list_;
/// Engines this one requires: at least one
std::vector<std::string> required_engines_;
/// Engines this one excludes: none of these
std::vector<std::string> excluded_engines_;
// these are mutable because they are used to cache the results
// or an otherwise const operation.
///
@ -167,7 +148,6 @@ public:
void addCiteEngine(std::string const &, std::string const &,
std::vector<std::string> const &, std::string const &,
std::vector<std::string> const &, std::string const &,
std::vector<std::string> const &, std::vector<std::string> const &,
std::vector<std::string> const &);
///
std::vector<LyXCiteEngine> englist_;