#include "support/convert.h"
#include "support/gettext.h"
-#include "support/lassert.h"
#include "support/lstrings.h"
#include "support/textutils.h"
INTEGER, // accept an integer
LENGTH, // accept a latex length
ONEOF, // accept one of a few values
- SUBSETOF, // accept a string composed of given characters
+ SUBSETOF // accept a string composed of given characters
};
ListingsParam("", false, TRUEFALSE, "", empty_hint);
all_params_["breaklines"] =
ListingsParam("", false, TRUEFALSE, "", empty_hint);
+ all_params_["breakatwhitespace"] =
+ ListingsParam("", false, TRUEFALSE, "", empty_hint);
all_params_["prebreak"] =
ListingsParam("", false, ALL, "", empty_hint);
all_params_["postbreak"] =
void InsetListingsParams::read(Lexer & lex)
{
lex >> inline_;
- int s = Inset::Collapsed;
+ int s = InsetCollapsable::Collapsed;
lex >> s;
status_ = static_cast<InsetCollapsable::CollapseStatus>(s);
string par;
}
-void InsetListingsParams::addParam(string const & key, string const & value)
+void InsetListingsParams::addParam(string const & key,
+ string const & value, bool replace)
{
if (key.empty())
return;
// duplicate parameters!
string keyname = key;
- if (params_.find(key) != params_.end())
+ if (!replace && params_.find(key) != params_.end())
// key=value,key=value1 is allowed in listings
// use key_, key__, key___ etc to avoid name conflict
while (params_.find(keyname += '_') != params_.end()) { }
else {
bool has_special_char = false;
for (size_t i = 0; i < value.size(); ++i)
- if (!isAlphaASCII(value[i]) && !isDigit(value[i])) {
+ if (!isAlnumASCII(value[i])) {
has_special_char = true;
break;
}