- callers.erase(result.first);
- } else {
- // recursion detected
- lyxerr << "Warning: Recursion in label for counter `"
- << counter << "' detected"
- << endl;
+ while (true) {
+ //lyxerr << "ls=" << to_utf8(ls) << endl;
+ size_t const i = ls.find(from_ascii("\\the"), 0);
+ if (i == docstring::npos)
+ break;
+ size_t const j = i + 4;
+ size_t k = j;
+ while (k < ls.size() && lowercase(ls[k]) >= 'a'
+ && lowercase(ls[k]) <= 'z')
+ ++k;
+ docstring const newc = ls.substr(j, k - j);
+ docstring const repl = flattenLabelString(newc, in_appendix,
+ lang, callers);
+ ls.replace(i, k - j + 4, repl);