- number += p.string()[i];
- } else if (!number.empty ()) {
- numbers.push_back (raw_convert<int> (number));
- number.clear ();
+ current += p.string()[i];
+ } else {
+ if (!current.empty ()) {
+ numbers.push_back (current);
+ current.clear ();
+ }
+ }
+ }
+
+ if (!current.empty ()) {
+ numbers.push_back (current);
+ }
+
+ std::string longest;
+ for (std::list<std::string>::const_iterator i = numbers.begin(); i != numbers.end(); ++i) {
+ if (i->length() > longest.length()) {
+ longest = *i;