+ while (in)
+ {
+ in.get(line_begin);
+ if (isdigit(line_begin))
+ {
+ in.putback(line_begin);
+ in >> A;
+ accs[nr_accs++] = A;
+ }
+ else if (line_begin == '$')
+ {
+ // Optional attributes
+ String attribute;
+ String a_name, a_value;
+
+ in >> attribute;
+
+ int separator = attribute.index('=');
+ do
+ {
+ separator--;
+ }
+ while (isspace(attribute[separator]));
+ a_name = attribute(0, separator+1);
+
+ separator = attribute.index('=');
+ do
+ {
+ separator++;
+ }
+ while (isspace(attribute[separator]));
+ a_value = attribute;
+ a_value(0, separator) = "";
+
+ if (a_name == "companyname")
+ {
+ companyname = a_value;
+ }
+ else
+ {
+ std::cerr << "Unrecognized attribute in Ledger: " << a_name << "\n";
+ }
+ }
+ else if (line_begin == '\n')
+ {
+ // Ignore empty lines
+ }
+ else
+ {
+ // Anything else is comment: eat it.
+ String comment;