* perl -e 'while(<>) {sed s/\s+$//; print "$_\n";}' - Xcode's space/tab behaviour sucks

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@22278 a592a061-630c-0410-9148-cb99ea01b6c8
This commit is contained in:
Stefan Schimanski 2007-12-23 01:28:51 +00:00
parent e240dbd5a8
commit 32c8479e5a

View File

@ -57,15 +57,15 @@ using support::bformat;
class InsetLabelBox : public InsetMathNest { class InsetLabelBox : public InsetMathNest {
public: public:
/// ///
InsetLabelBox(MathAtom const & atom, docstring label, InsetLabelBox(MathAtom const & atom, docstring label,
MathMacroTemplate const & parent, bool frame = false); MathMacroTemplate const & parent, bool frame = false);
InsetLabelBox(docstring label, MathMacroTemplate const & parent, InsetLabelBox(docstring label, MathMacroTemplate const & parent,
bool frame = false); bool frame = false);
/// ///
void metrics(MetricsInfo & mi, Dimension & dim) const; void metrics(MetricsInfo & mi, Dimension & dim) const;
/// ///
void draw(PainterInfo &, int x, int y) const; void draw(PainterInfo &, int x, int y) const;
protected: protected:
/// ///
MathMacroTemplate const & parent_; MathMacroTemplate const & parent_;
@ -78,7 +78,7 @@ protected:
}; };
InsetLabelBox::InsetLabelBox(MathAtom const & atom, docstring label, InsetLabelBox::InsetLabelBox(MathAtom const & atom, docstring label,
MathMacroTemplate const & parent, bool frame) MathMacroTemplate const & parent, bool frame)
: InsetMathNest(1), parent_(parent), label_(label), frame_(frame) : InsetMathNest(1), parent_(parent), label_(label), frame_(frame)
{ {
@ -91,15 +91,15 @@ InsetLabelBox::InsetLabelBox(docstring label,
: InsetMathNest(1), parent_(parent), label_(label), frame_(frame) : InsetMathNest(1), parent_(parent), label_(label), frame_(frame)
{ {
} }
Inset * InsetLabelBox::clone() const
Inset * InsetLabelBox::clone() const
{ {
return new InsetLabelBox(*this); return new InsetLabelBox(*this);
} }
void InsetLabelBox::metrics(MetricsInfo & mi, Dimension & dim) const void InsetLabelBox::metrics(MetricsInfo & mi, Dimension & dim) const
{ {
// kernel // kernel
cell(0).metrics(mi, dim); cell(0).metrics(mi, dim);
@ -110,26 +110,26 @@ void InsetLabelBox::metrics(MetricsInfo & mi, Dimension & dim) const
dim.asc += 5; dim.asc += 5;
dim.des += 5; dim.des += 5;
} }
// adjust to common height in main metrics phase // adjust to common height in main metrics phase
if (!parent_.premetrics()) { if (!parent_.premetrics()) {
dim.asc = max(dim.asc, parent_.commonLabelBoxAscent()); dim.asc = max(dim.asc, parent_.commonLabelBoxAscent());
dim.des = max(dim.des, parent_.commonLabelBoxDescent()); dim.des = max(dim.des, parent_.commonLabelBoxDescent());
} }
// label // label
if (parent_.editing(mi.base.bv) && label_.length() > 0) { if (parent_.editing(mi.base.bv) && label_.length() > 0) {
// grey // grey
FontInfo font = sane_font; FontInfo font = sane_font;
font.setSize(FONT_SIZE_TINY); font.setSize(FONT_SIZE_TINY);
font.setColor(Color_mathmacrolabel); font.setColor(Color_mathmacrolabel);
// make space for label and box // make space for label and box
int lwid = mathed_string_width(font, label_); int lwid = mathed_string_width(font, label_);
int maxasc; int maxasc;
int maxdes; int maxdes;
math_font_max_dim(font, maxasc, maxdes); math_font_max_dim(font, maxasc, maxdes);
dim.wid = max(dim.wid, lwid + 2); dim.wid = max(dim.wid, lwid + 2);
// space for the label // space for the label
@ -141,38 +141,38 @@ void InsetLabelBox::metrics(MetricsInfo & mi, Dimension & dim) const
} }
void InsetLabelBox::draw(PainterInfo & pi, int x, int y) const void InsetLabelBox::draw(PainterInfo & pi, int x, int y) const
{ {
Dimension const dim = dimension(*pi.base.bv); Dimension const dim = dimension(*pi.base.bv);
Dimension const cdim = cell(0).dimension(*pi.base.bv); Dimension const cdim = cell(0).dimension(*pi.base.bv);
// kernel // kernel
cell(0).draw(pi, x + (dim.wid - cdim.wid) / 2, y); cell(0).draw(pi, x + (dim.wid - cdim.wid) / 2, y);
// label // label
if (parent_.editing(pi.base.bv) && label_.length() > 0) { if (parent_.editing(pi.base.bv) && label_.length() > 0) {
// grey // grey
FontInfo font = sane_font; FontInfo font = sane_font;
font.setSize(FONT_SIZE_TINY); font.setSize(FONT_SIZE_TINY);
font.setColor(Color_mathmacrolabel); font.setColor(Color_mathmacrolabel);
// make space for label and box // make space for label and box
int lwid = mathed_string_width(font, label_); int lwid = mathed_string_width(font, label_);
int maxasc; int maxasc;
int maxdes; int maxdes;
math_font_max_dim(font, maxasc, maxdes); math_font_max_dim(font, maxasc, maxdes);
if (lwid < dim.wid) if (lwid < dim.wid)
pi.pain.text(x + (dim.wid - lwid) / 2, y + dim.des - maxdes, label_, font); pi.pain.text(x + (dim.wid - lwid) / 2, y + dim.des - maxdes, label_, font);
else else
pi.pain.text(x, y + dim.des - maxdes, label_, font); pi.pain.text(x, y + dim.des - maxdes, label_, font);
} }
// draw frame // draw frame
int boxHeight = parent_.commonLabelBoxAscent() + parent_.commonLabelBoxDescent(); int boxHeight = parent_.commonLabelBoxAscent() + parent_.commonLabelBoxDescent();
if (frame_) { if (frame_) {
pi.pain.rectangle(x + 1, y - dim.ascent() + 1, pi.pain.rectangle(x + 1, y - dim.ascent() + 1,
dim.wid - 2, boxHeight - 2, dim.wid - 2, boxHeight - 2,
Color_mathline); Color_mathline);
} }
} }
@ -183,35 +183,35 @@ void InsetLabelBox::draw(PainterInfo & pi, int x, int y) const
class DisplayLabelBox : public InsetLabelBox { class DisplayLabelBox : public InsetLabelBox {
public: public:
/// ///
DisplayLabelBox(MathAtom const & atom, docstring label, DisplayLabelBox(MathAtom const & atom, docstring label,
MathMacroTemplate const & parent); MathMacroTemplate const & parent);
/// ///
void metrics(MetricsInfo & mi, Dimension & dim) const; void metrics(MetricsInfo & mi, Dimension & dim) const;
/// ///
void draw(PainterInfo &, int x, int y) const; void draw(PainterInfo &, int x, int y) const;
protected: protected:
/// ///
Inset * clone() const; Inset * clone() const;
}; };
DisplayLabelBox::DisplayLabelBox(MathAtom const & atom, DisplayLabelBox::DisplayLabelBox(MathAtom const & atom,
docstring label, docstring label,
MathMacroTemplate const & parent) MathMacroTemplate const & parent)
: InsetLabelBox(atom, label, parent, true) : InsetLabelBox(atom, label, parent, true)
{ {
} }
Inset * DisplayLabelBox::clone() const Inset * DisplayLabelBox::clone() const
{ {
return new DisplayLabelBox(*this); return new DisplayLabelBox(*this);
} }
void DisplayLabelBox::metrics(MetricsInfo & mi, Dimension & dim) const void DisplayLabelBox::metrics(MetricsInfo & mi, Dimension & dim) const
{ {
InsetLabelBox::metrics(mi, dim); InsetLabelBox::metrics(mi, dim);
@ -224,7 +224,7 @@ void DisplayLabelBox::metrics(MetricsInfo & mi, Dimension & dim) const
} }
} }
void DisplayLabelBox::draw(PainterInfo & pi, int x, int y) const void DisplayLabelBox::draw(PainterInfo & pi, int x, int y) const
{ {
if (parent_.editing(pi.base.bv) if (parent_.editing(pi.base.bv)
@ -237,7 +237,7 @@ void DisplayLabelBox::draw(PainterInfo & pi, int x, int y) const
pi.pain.setDrawingEnabled(enabled); pi.pain.setDrawingEnabled(enabled);
} }
} }
////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////
@ -249,7 +249,7 @@ public:
void metrics(MetricsInfo & mi, Dimension & dim) const; void metrics(MetricsInfo & mi, Dimension & dim) const;
/// ///
void draw(PainterInfo &, int x, int y) const; void draw(PainterInfo &, int x, int y) const;
private: private:
/// ///
Inset * clone() const; Inset * clone() const;
@ -258,20 +258,20 @@ private:
}; };
Inset * InsetMathWrapper::clone() const Inset * InsetMathWrapper::clone() const
{ {
return new InsetMathWrapper(*this); return new InsetMathWrapper(*this);
} }
void InsetMathWrapper::metrics(MetricsInfo & mi, Dimension & dim) const void InsetMathWrapper::metrics(MetricsInfo & mi, Dimension & dim) const
{ {
value_->metrics(mi, dim); value_->metrics(mi, dim);
//metricsMarkers2(dim); //metricsMarkers2(dim);
} }
void InsetMathWrapper::draw(PainterInfo & pi, int x, int y) const void InsetMathWrapper::draw(PainterInfo & pi, int x, int y) const
{ {
value_->draw(pi, x, y); value_->draw(pi, x, y);
//drawMarkers(pi, x, y); //drawMarkers(pi, x, y);
@ -288,7 +288,7 @@ public:
void metrics(MetricsInfo & mi, Dimension & dim) const; void metrics(MetricsInfo & mi, Dimension & dim) const;
/// ///
void draw(PainterInfo &, int x, int y) const; void draw(PainterInfo &, int x, int y) const;
private: private:
/// ///
MathMacroTemplate const & parent_; MathMacroTemplate const & parent_;
@ -297,49 +297,49 @@ private:
}; };
InsetNameWrapper::InsetNameWrapper(MathData const * value, InsetNameWrapper::InsetNameWrapper(MathData const * value,
MathMacroTemplate const & parent) MathMacroTemplate const & parent)
: InsetMathWrapper(value), parent_(parent) : InsetMathWrapper(value), parent_(parent)
{ {
} }
Inset * InsetNameWrapper::clone() const Inset * InsetNameWrapper::clone() const
{ {
return new InsetNameWrapper(*this); return new InsetNameWrapper(*this);
} }
void InsetNameWrapper::metrics(MetricsInfo & mi, Dimension & dim) const void InsetNameWrapper::metrics(MetricsInfo & mi, Dimension & dim) const
{ {
InsetMathWrapper::metrics(mi, dim); InsetMathWrapper::metrics(mi, dim);
dim.wid += mathed_string_width(mi.base.font, from_ascii("\\")); dim.wid += mathed_string_width(mi.base.font, from_ascii("\\"));
} }
void InsetNameWrapper::draw(PainterInfo & pi, int x, int y) const void InsetNameWrapper::draw(PainterInfo & pi, int x, int y) const
{ {
// create fonts // create fonts
PainterInfo namepi = pi; PainterInfo namepi = pi;
if (parent_.validMacro()) if (parent_.validMacro())
namepi.base.font.setColor(Color_latex); namepi.base.font.setColor(Color_latex);
else else
namepi.base.font.setColor(Color_error); namepi.base.font.setColor(Color_error);
// draw backslash // draw backslash
pi.pain.text(x, y, from_ascii("\\"), namepi.base.font); pi.pain.text(x, y, from_ascii("\\"), namepi.base.font);
x += mathed_string_width(namepi.base.font, from_ascii("\\")); x += mathed_string_width(namepi.base.font, from_ascii("\\"));
// draw name // draw name
InsetMathWrapper::draw(namepi, x, y); InsetMathWrapper::draw(namepi, x, y);
} }
/////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////
MathMacroTemplate::MathMacroTemplate() MathMacroTemplate::MathMacroTemplate()
: InsetMathNest(3), numargs_(0), optionals_(0), : InsetMathNest(3), numargs_(0), optionals_(0),
type_(MacroTypeNewcommand), lookOutdated_(true) type_(MacroTypeNewcommand), lookOutdated_(true)
{ {
initMath(); initMath();
@ -347,10 +347,10 @@ MathMacroTemplate::MathMacroTemplate()
MathMacroTemplate::MathMacroTemplate(docstring const & name, int numargs, MathMacroTemplate::MathMacroTemplate(docstring const & name, int numargs,
int optionals, MacroType type, int optionals, MacroType type,
vector<MathData> const & optionalValues, vector<MathData> const & optionalValues,
MathData const & def, MathData const & display) MathData const & def, MathData const & display)
: InsetMathNest(optionals + 3), numargs_(numargs), : InsetMathNest(optionals + 3), numargs_(numargs),
optionals_(optionals), optionalValues_(optionalValues), optionals_(optionals), optionalValues_(optionalValues),
type_(type), lookOutdated_(true) type_(type), lookOutdated_(true)
{ {
@ -359,10 +359,10 @@ MathMacroTemplate::MathMacroTemplate(docstring const & name, int numargs,
if (numargs_ > 9) if (numargs_ > 9)
lyxerr << "MathMacroTemplate::MathMacroTemplate: wrong # of arguments: " lyxerr << "MathMacroTemplate::MathMacroTemplate: wrong # of arguments: "
<< numargs_ << endl; << numargs_ << endl;
asArray(name, cell(0)); asArray(name, cell(0));
optionalValues_.resize(9); optionalValues_.resize(9);
for (int i = 0; i < optionals_; ++i) for (int i = 0; i < optionals_; ++i)
cell(optIdx(i)) = optionalValues_[i]; cell(optIdx(i)) = optionalValues_[i];
cell(defIdx()) = def; cell(defIdx()) = def;
cell(displayIdx()) = display; cell(displayIdx()) = display;
@ -410,7 +410,7 @@ void MathMacroTemplate::updateToContext(MacroContext const & mc) const
redefinition_ = mc.get(name()) != 0; redefinition_ = mc.get(name()) != 0;
} }
void MathMacroTemplate::updateLook() const void MathMacroTemplate::updateLook() const
{ {
lookOutdated_ = true; lookOutdated_ = true;
@ -425,27 +425,27 @@ void MathMacroTemplate::createLook() const
look_.push_back(MathAtom(new InsetLabelBox(_("Name"), *this, false))); look_.push_back(MathAtom(new InsetLabelBox(_("Name"), *this, false)));
MathData & nameData = look_[look_.size() - 1].nucleus()->cell(0); MathData & nameData = look_[look_.size() - 1].nucleus()->cell(0);
nameData.push_back(MathAtom(new InsetNameWrapper(&cell(0), *this))); nameData.push_back(MathAtom(new InsetNameWrapper(&cell(0), *this)));
// [#1][#2] // [#1][#2]
int i = 0; int i = 0;
if (optionals_ > 0) { if (optionals_ > 0) {
look_.push_back(MathAtom(new InsetLabelBox(_("optional"), *this, false))); look_.push_back(MathAtom(new InsetLabelBox(_("optional"), *this, false)));
MathData & optData = look_[look_.size() - 1].nucleus()->cell(0); MathData & optData = look_[look_.size() - 1].nucleus()->cell(0);
for (; i < optionals_; ++i) { for (; i < optionals_; ++i) {
optData.push_back(MathAtom(new InsetMathChar('['))); optData.push_back(MathAtom(new InsetMathChar('[')));
optData.push_back(MathAtom(new InsetMathWrapper(&cell(1 + i)))); optData.push_back(MathAtom(new InsetMathWrapper(&cell(1 + i))));
optData.push_back(MathAtom(new InsetMathChar(']'))); optData.push_back(MathAtom(new InsetMathChar(']')));
} }
} }
// {#3}{#4} // {#3}{#4}
for (; i < numargs_; ++i) { for (; i < numargs_; ++i) {
MathData arg; MathData arg;
arg.push_back(MathAtom(new MathMacroArgument(i + 1))); arg.push_back(MathAtom(new MathMacroArgument(i + 1)));
look_.push_back(MathAtom(new InsetMathBrace(arg))); look_.push_back(MathAtom(new InsetMathBrace(arg)));
} }
// := // :=
look_.push_back(MathAtom(new InsetMathChar(':'))); look_.push_back(MathAtom(new InsetMathChar(':')));
look_.push_back(MathAtom(new InsetMathChar('='))); look_.push_back(MathAtom(new InsetMathChar('=')));
@ -460,13 +460,13 @@ void MathMacroTemplate::createLook() const
new DisplayLabelBox(MathAtom( new DisplayLabelBox(MathAtom(
new InsetMathWrapper(&cell(displayIdx()))), _("LyX"), *this))); new InsetMathWrapper(&cell(displayIdx()))), _("LyX"), *this)));
} }
void MathMacroTemplate::metrics(MetricsInfo & mi, Dimension & dim) const void MathMacroTemplate::metrics(MetricsInfo & mi, Dimension & dim) const
{ {
FontSetChanger dummy1(mi.base, from_ascii("mathnormal")); FontSetChanger dummy1(mi.base, from_ascii("mathnormal"));
StyleChanger dummy2(mi.base, LM_ST_TEXT); StyleChanger dummy2(mi.base, LM_ST_TEXT);
// valid macro? // valid macro?
MacroData const * macro = 0; MacroData const * macro = 0;
if (validName()) { if (validName()) {
@ -475,34 +475,34 @@ void MathMacroTemplate::metrics(MetricsInfo & mi, Dimension & dim) const
// updateToContext() - avoids another lookup // updateToContext() - avoids another lookup
redefinition_ = macro != 0; redefinition_ = macro != 0;
} }
// update look? // update look?
if (lookOutdated_) { if (lookOutdated_) {
lookOutdated_ = false; lookOutdated_ = false;
createLook(); createLook();
} }
/// metrics for inset contents /// metrics for inset contents
if (macro) if (macro)
macro->lock(); macro->lock();
// first phase, premetric: // first phase, premetric:
premetrics_ = true; premetrics_ = true;
look_.metrics(mi, dim); look_.metrics(mi, dim);
labelBoxAscent_ = dim.asc; labelBoxAscent_ = dim.asc;
labelBoxDescent_ = dim.des; labelBoxDescent_ = dim.des;
// second phase, main metric: // second phase, main metric:
premetrics_ = false; premetrics_ = false;
look_.metrics(mi, dim); look_.metrics(mi, dim);
if (macro) if (macro)
macro->unlock(); macro->unlock();
dim.wid += 6; dim.wid += 6;
dim.des += 2; dim.des += 2;
dim.asc += 2; dim.asc += 2;
setDimCache(mi, dim); setDimCache(mi, dim);
} }
@ -511,7 +511,7 @@ void MathMacroTemplate::draw(PainterInfo & pi, int x, int y) const
{ {
FontSetChanger dummy1(pi.base, from_ascii("mathnormal")); FontSetChanger dummy1(pi.base, from_ascii("mathnormal"));
StyleChanger dummy2(pi.base, LM_ST_TEXT); StyleChanger dummy2(pi.base, LM_ST_TEXT);
setPosCache(pi, x, y); setPosCache(pi, x, y);
Dimension const dim = dimension(*pi.base.bv); Dimension const dim = dimension(*pi.base.bv);
@ -519,33 +519,33 @@ void MathMacroTemplate::draw(PainterInfo & pi, int x, int y) const
int const a = y - dim.asc + 1; int const a = y - dim.asc + 1;
int const w = dim.wid - 2; int const w = dim.wid - 2;
int const h = dim.height() - 2; int const h = dim.height() - 2;
pi.pain.rectangle(x, a, w, h, Color_mathframe); pi.pain.rectangle(x, a, w, h, Color_mathframe);
// just to be sure: set some dummy values for coord cache // just to be sure: set some dummy values for coord cache
for (idx_type i = 0; i < nargs(); ++i) { for (idx_type i = 0; i < nargs(); ++i) {
cell(i).setXY(*pi.base.bv, x, y); cell(i).setXY(*pi.base.bv, x, y);
} }
// draw contents // draw contents
look_.draw(pi, x + 3, y); look_.draw(pi, x + 3, y);
} }
void MathMacroTemplate::edit(Cursor & cur, bool left) void MathMacroTemplate::edit(Cursor & cur, bool left)
{ {
updateLook(); updateLook();
cur.updateFlags(Update::Force); cur.updateFlags(Update::Force);
InsetMathNest::edit(cur, left); InsetMathNest::edit(cur, left);
} }
bool MathMacroTemplate::notifyCursorLeaves(Cursor & cur) bool MathMacroTemplate::notifyCursorLeaves(Cursor & cur)
{ {
updateLook(); updateLook();
cur.updateFlags(Update::Force); cur.updateFlags(Update::Force);
return InsetMathNest::notifyCursorLeaves(cur); return InsetMathNest::notifyCursorLeaves(cur);
} }
void MathMacroTemplate::removeArguments(Cursor & cur, int from, int to) { void MathMacroTemplate::removeArguments(Cursor & cur, int from, int to) {
for (DocIterator it = doc_iterator_begin(*this); it; it.forwardChar()) { for (DocIterator it = doc_iterator_begin(*this); it; it.forwardChar()) {
@ -563,7 +563,7 @@ void MathMacroTemplate::removeArguments(Cursor & cur, int from, int to) {
it.cell().erase(it.pos()); it.cell().erase(it.pos());
} }
} }
updateLook(); updateLook();
} }
@ -647,7 +647,7 @@ void fixMacroInstancesOptional(Cursor const & from, docstring const & name, int
template<class F> template<class F>
void fixMacroInstancesFunctional(Cursor const & from, void fixMacroInstancesFunctional(Cursor const & from,
docstring const & name, F & fix) { docstring const & name, F & fix) {
Cursor dit = from; Cursor dit = from;
@ -674,7 +674,7 @@ void fixMacroInstancesFunctional(Cursor const & from,
} }
void MathMacroTemplate::insertParameter(Cursor & cur, int pos, bool greedy) void MathMacroTemplate::insertParameter(Cursor & cur, int pos, bool greedy)
{ {
if (pos <= numargs_ && pos >= optionals_ && numargs_ < 9) { if (pos <= numargs_ && pos >= optionals_ && numargs_ < 9) {
++numargs_; ++numargs_;
@ -690,7 +690,7 @@ void MathMacroTemplate::insertParameter(Cursor & cur, int pos, bool greedy)
dit.leaveInset(*this); dit.leaveInset(*this);
// TODO: this was dit.forwardPosNoDescend before. Check that this is the same // TODO: this was dit.forwardPosNoDescend before. Check that this is the same
dit.top().forwardPos(); dit.top().forwardPos();
// fix macro instances // fix macro instances
fixMacroInstancesAddRemove(dit, name(), pos, true); fixMacroInstancesAddRemove(dit, name(), pos, true);
} }
@ -765,7 +765,7 @@ void MathMacroTemplate::makeOptional(Cursor & cur) {
void MathMacroTemplate::makeNonOptional(Cursor & cur) { void MathMacroTemplate::makeNonOptional(Cursor & cur) {
if (numargs_ > 0 && optionals_ > 0) { if (numargs_ > 0 && optionals_ > 0) {
--optionals_; --optionals_;
// store default value for later if the use changes his mind // store default value for later if the use changes his mind
optionalValues_[optionals_] = cell(optIdx(optionals_)); optionalValues_[optionals_] = cell(optIdx(optionals_));
cells_.erase(cells_.begin() + optIdx(optionals_)); cells_.erase(cells_.begin() + optIdx(optionals_));
@ -799,7 +799,7 @@ void MathMacroTemplate::doDispatch(Cursor & cur, FuncRequest & cmd)
string const arg = to_utf8(cmd.argument()); string const arg = to_utf8(cmd.argument());
switch (cmd.action) { switch (cmd.action) {
case LFUN_MATH_MACRO_ADD_PARAM: case LFUN_MATH_MACRO_ADD_PARAM:
if (numargs_ < 9) { if (numargs_ < 9) {
cur.recordUndoFullDocument(); cur.recordUndoFullDocument();
size_t pos = numargs_; size_t pos = numargs_;
@ -810,7 +810,7 @@ void MathMacroTemplate::doDispatch(Cursor & cur, FuncRequest & cmd)
break; break;
case LFUN_MATH_MACRO_REMOVE_PARAM: case LFUN_MATH_MACRO_REMOVE_PARAM:
if (numargs_ > 0) { if (numargs_ > 0) {
cur.recordUndoFullDocument(); cur.recordUndoFullDocument();
size_t pos = numargs_ - 1; size_t pos = numargs_ - 1;
@ -883,7 +883,7 @@ bool MathMacroTemplate::getStatus(Cursor & /*cur*/, FuncRequest const & cmd,
int num = numargs_ + 1; int num = numargs_ + 1;
if (arg.size() != 0) if (arg.size() != 0)
num = convert<int>(arg); num = convert<int>(arg);
bool on = (num >= optionals_ bool on = (num >= optionals_
&& numargs_ < 9 && num <= numargs_ + 1); && numargs_ < 9 && num <= numargs_ + 1);
flag.enabled(on); flag.enabled(on);
break; break;
@ -902,13 +902,13 @@ bool MathMacroTemplate::getStatus(Cursor & /*cur*/, FuncRequest const & cmd,
} }
case LFUN_MATH_MACRO_MAKE_OPTIONAL: case LFUN_MATH_MACRO_MAKE_OPTIONAL:
flag.enabled(numargs_ > 0 flag.enabled(numargs_ > 0
&& optionals_ < numargs_ && optionals_ < numargs_
&& type_ != MacroTypeDef); && type_ != MacroTypeDef);
break; break;
case LFUN_MATH_MACRO_MAKE_NONOPTIONAL: case LFUN_MATH_MACRO_MAKE_NONOPTIONAL:
flag.enabled(optionals_ > 0 flag.enabled(optionals_ > 0
&& type_ != MacroTypeDef); && type_ != MacroTypeDef);
break; break;
@ -921,7 +921,7 @@ bool MathMacroTemplate::getStatus(Cursor & /*cur*/, FuncRequest const & cmd,
break; break;
case LFUN_MATH_MACRO_ADD_GREEDY_OPTIONAL_PARAM: case LFUN_MATH_MACRO_ADD_GREEDY_OPTIONAL_PARAM:
flag.enabled(numargs_ == 0 flag.enabled(numargs_ == 0
&& type_ != MacroTypeDef); && type_ != MacroTypeDef);
break; break;
@ -947,7 +947,7 @@ void MathMacroTemplate::read(Buffer const &, Lexer & lex)
return; return;
} }
operator=( *(ar[0]->asMacroTemplate()) ); operator=( *(ar[0]->asMacroTemplate()) );
updateLook(); updateLook();
} }
@ -983,7 +983,7 @@ void MathMacroTemplate::write(WriteStream & os, bool overwriteRedefinition) cons
os << "{\\" << name().c_str() << '}'; os << "{\\" << name().c_str() << '}';
if (numargs_ > 0) if (numargs_ > 0)
os << '[' << numargs_ << ']'; os << '[' << numargs_ << ']';
// optional values // optional values
if (os.latex()) { if (os.latex()) {
// in latex only one optional possible, simulate the others // in latex only one optional possible, simulate the others
@ -1046,7 +1046,7 @@ bool MathMacroTemplate::validName() const
// valid characters? // valid characters?
for (size_t i = 0; i < n.size(); ++i) { for (size_t i = 0; i < n.size(); ++i) {
if (!(n[i] >= 'a' && n[i] <= 'z') && if (!(n[i] >= 'a' && n[i] <= 'z') &&
!(n[i] >= 'A' && n[i] <= 'Z')) !(n[i] >= 'A' && n[i] <= 'Z'))
return false; return false;
} }
@ -1076,7 +1076,7 @@ bool MathMacroTemplate::fixNameAndCheckIfValid()
continue; continue;
} }
} }
// throw cell away // throw cell away
data.erase(i); data.erase(i);
} }
@ -1090,7 +1090,7 @@ void MathMacroTemplate::getDefaults(vector<docstring> & defaults) const
{ {
defaults.resize(numargs_); defaults.resize(numargs_);
for (int i = 0; i < optionals_; ++i) for (int i = 0; i < optionals_; ++i)
defaults[i] = asString(cell(optIdx(i))); defaults[i] = asString(cell(optIdx(i)));
} }
@ -1117,7 +1117,7 @@ size_t MathMacroTemplate::numOptionals() const
return optionals_; return optionals_;
} }
void MathMacroTemplate::infoize(odocstream & os) const void MathMacroTemplate::infoize(odocstream & os) const
{ {
os << "Math Macro: \\" << name(); os << "Math Macro: \\" << name();