+ lyx_advance(data, i);
+
+ if (isStrDbl(buffer)) {
+ number[number_index] = convert<double>(buffer);
+ ++number_index;
+ return 'n';
+ }
+ return 'E';
+ }
+
+ i = data.find_first_not_of("abcdefghijklmnopqrstuvwxyz%");
+ if (i != 0) {
+ if (unit_index > 3)
+ return 'E';
+
+ string buffer;
+
+ // we have found some alphabetical string
+ if (i == string::npos) {
+ buffer = data;
+ i = data.size() + 1;
+ } else
+ buffer = data.substr(0, i);
+
+ // possibly we have "mmplus" string or similar
+ if (buffer.size() > 5 &&
+ (buffer.substr(2, 4) == string("plus") ||
+ buffer.substr(2, 5) == string("minus")))
+ {
+ lyx_advance(data, 2);
+ unit[unit_index] = unitFromString(buffer.substr(0, 2));
+ } else {
+ lyx_advance(data, i);
+ unit[unit_index] = unitFromString(buffer);