- bool need_layout = true;
- int optargs = 0;
- while (optargs < context.layout->optArgs()) {
- eat_whitespace(p, os, context, false);
- if (p.next_token().cat() == catEscape ||
- p.next_token().character() != '[')
- break;
- p.get_token(); // eat '['
- if (need_layout) {
- context.check_layout(os);
- need_layout = false;
- }
- // FIXME: Just a workaround. InsetArgument::updateBuffer
- // will compute a proper ID for all "999" Arguments
- // (which is also what lyx2lyx produces).
- // However, tex2lyx should be able to output proper IDs
- // itself.
- begin_inset(os, "Argument 999\n");
- os << "status collapsed\n\n";
- parse_text_in_inset(p, os, FLAG_BRACK_LAST, outer, context);
- end_inset(os);
- eat_whitespace(p, os, context, false);
- ++optargs;
- }
- int reqargs = 0;
- while (reqargs < context.layout->requiredArgs()) {
- eat_whitespace(p, os, context, false);
- if (p.next_token().cat() != catBegin)
- break;
- p.get_token(); // eat '{'
- if (need_layout) {
- context.check_layout(os);
- need_layout = false;
- }
- // FIXME: Just a workaround. InsetArgument::updateBuffer
- // will compute a proper ID for all "999" Arguments
- // (which is also what lyx2lyx produces).
- // However, tex2lyx should be able to output proper IDs
- // itself.
- begin_inset(os, "Argument 999\n");
- os << "status collapsed\n\n";
- parse_text_in_inset(p, os, FLAG_BRACE_LAST, outer, context);
- end_inset(os);
- eat_whitespace(p, os, context, false);
- ++reqargs;
- }