Ticket #3819: date_time.patch

File date_time.patch, 2.6 KB (added by Tobias Loew, 13 years ago)
  • boost/date_time/format_date_parser.hpp

     
    273273    while (itr != format_str.end() && (sitr != stream_end)) {
    274274      if (*itr == '%') {
    275275        itr++;
     276        if (itr == format_str.end()) {
     277          break;
     278        }
    276279        if (*itr != '%') {
    277280          switch(*itr) {
    278281          case 'a':
     
    484487    while (itr != format_str.end() && (sitr != stream_end)) {
    485488      if (*itr == '%') {
    486489        itr++;
     490        if (itr == format_str.end()) {
     491          break;
     492        }
    487493        if (*itr != '%') {
    488494          switch(*itr) {
    489495          case 'b':
     
    589595    while (itr != format_str.end() && (sitr != stream_end)) {
    590596      if (*itr == '%') {
    591597        itr++;
     598        if (itr == format_str.end()) {
     599          break;
     600        }
    592601        if (*itr != '%') {
    593602          switch(*itr) {
    594603          case 'a':
     
    682691    while (itr != format_str.end() && (sitr != stream_end)) {
    683692      if (*itr == '%') {
    684693        itr++;
     694        if (itr == format_str.end()) {
     695          break;
     696        }
    685697        if (*itr != '%') {
    686698          //match_results mr;
    687699          switch(*itr) {
  • boost/date_time/time_facet.hpp

     
    784784        while (itr != m_time_duration_format.end() && (sitr != stream_end)) {
    785785          if (*itr == '%') {
    786786            ++itr;
     787            if (itr == m_time_duration_format.end()) {
     788              break;
     789            }
    787790            if (*itr != '%') {
    788791              switch(*itr) {
    789792              case 'O':
     
    956959        while (itr != this->m_format.end() && (sitr != stream_end)) {
    957960          if (*itr == '%') {
    958961            ++itr;
     962            if (itr == this->format_str.end()) {
     963              break;
     964            }
    959965            if (*itr != '%') {
    960966              // the cases are grouped by date & time flags - not alphabetical order
    961967              switch(*itr) {
     
    11351141                  {
    11361142                    if(time_is_local) { // skip if 't' is a ptime
    11371143                      ++itr;
    1138                       if(*itr == 'P') {
     1144                      if(itr != this->format_str.end() && *itr == 'P') {
    11391145                        // skip leading whitespace
    11401146                        while((sitr != stream_end) && std::isspace(*sitr)) { ++sitr; }
    11411147                        // parse zone