Skip to content

Commit ccda1ad

Browse files
lorenzhsByteHamster
authored andcommitted
latex: add loop to check for MULTIPLOT modifiers
1 parent ebf9e16 commit ccda1ad

1 file changed

Lines changed: 23 additions & 18 deletions

File tree

src/latex.cpp

Lines changed: 23 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -208,24 +208,29 @@ void SpLatex::multiplot(size_t ln, size_t indent, const std::string& cmdline)
208208
bool ptitle_mark = false;
209209
bool xerr = false, yerr = false;
210210

211-
if (!groupfields.empty() && is_suffix(groupfields.back(), "|title")) {
212-
// remove |title from multiplot string
213-
groupfields.back().resize(groupfields.back().size() - 6);
214-
multiplot.resize(multiplot.size() - 6);
215-
title_mark = true;
216-
}
217-
else if (!groupfields.empty() && is_suffix(groupfields.back(), "|ptitle")) {
218-
// remove |ptitle from multiplot string
219-
groupfields.back().resize(groupfields.back().size() - 7);
220-
multiplot.resize(multiplot.size() - 7);
221-
ptitle_mark = true;
222-
}
223-
224-
if (!groupfields.empty() && is_suffix(groupfields.back(), "|attr")) {
225-
// remove |attr from multiplot string
226-
groupfields.back().resize(groupfields.back().size() - 5);
227-
multiplot.resize(multiplot.size() - 5);
228-
attr_mark = true;
211+
while (!groupfields.empty() && groupfields.back().find('|') != std::string::npos) {
212+
std::string& field = groupfields.back();
213+
if (!groupfields.empty() && is_suffix(field, "|title")) {
214+
// remove |title from multiplot string
215+
field.resize(field.size() - 6);
216+
multiplot.resize(multiplot.size() - 6);
217+
title_mark = true;
218+
}
219+
else if (!groupfields.empty() && is_suffix(field, "|ptitle")) {
220+
// remove |ptitle from multiplot string
221+
field.resize(field.size() - 7);
222+
multiplot.resize(multiplot.size() - 7);
223+
ptitle_mark = true;
224+
}
225+
else if (!groupfields.empty() && is_suffix(field, "|attr")) {
226+
// remove |attr from multiplot string
227+
field.resize(field.size() - 5);
228+
multiplot.resize(multiplot.size() - 5);
229+
attr_mark = true;
230+
} else{
231+
std::string modifier = field.substr(field.find('|'));
232+
OUT_THROW("MULTIPLOT failed: unknown modifier '" + modifier + "'");
233+
}
229234
}
230235

231236
// execute query

0 commit comments

Comments
 (0)