/[pcre]/code/trunk/pcrecpp.cc
ViewVC logotype

Diff of /code/trunk/pcrecpp.cc

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 259 by ph10, Wed Sep 19 09:52:44 2007 UTC revision 288 by ph10, Wed Dec 19 12:21:45 2007 UTC
# Line 409  int RE::GlobalReplace(const StringPiece& Line 409  int RE::GlobalReplace(const StringPiece&
409        Rewrite(&out, rewrite, *str, vec, matches);        Rewrite(&out, rewrite, *str, vec, matches);
410        start = matchend;        start = matchend;
411        lastend = matchend;        lastend = matchend;
412        count++;        // count++;  // Removed by PH 19-Dec-2007: duplicate count increment
413      }      }
414    }    }
415    
# Line 618  bool Arg::parse_null(const char* str, in Line 618  bool Arg::parse_null(const char* str, in
618  }  }
619    
620  bool Arg::parse_string(const char* str, int n, void* dest) {  bool Arg::parse_string(const char* str, int n, void* dest) {
621      if (dest == NULL) return true;
622    reinterpret_cast<string*>(dest)->assign(str, n);    reinterpret_cast<string*>(dest)->assign(str, n);
623    return true;    return true;
624  }  }
625    
626  bool Arg::parse_stringpiece(const char* str, int n, void* dest) {  bool Arg::parse_stringpiece(const char* str, int n, void* dest) {
627      if (dest == NULL) return true;
628    reinterpret_cast<StringPiece*>(dest)->set(str, n);    reinterpret_cast<StringPiece*>(dest)->set(str, n);
629    return true;    return true;
630  }  }
631    
632  bool Arg::parse_char(const char* str, int n, void* dest) {  bool Arg::parse_char(const char* str, int n, void* dest) {
633    if (n != 1) return false;    if (n != 1) return false;
634      if (dest == NULL) return true;
635    *(reinterpret_cast<char*>(dest)) = str[0];    *(reinterpret_cast<char*>(dest)) = str[0];
636    return true;    return true;
637  }  }
638    
639  bool Arg::parse_uchar(const char* str, int n, void* dest) {  bool Arg::parse_uchar(const char* str, int n, void* dest) {
640    if (n != 1) return false;    if (n != 1) return false;
641      if (dest == NULL) return true;
642    *(reinterpret_cast<unsigned char*>(dest)) = str[0];    *(reinterpret_cast<unsigned char*>(dest)) = str[0];
643    return true;    return true;
644  }  }
# Line 683  bool Arg::parse_long_radix(const char* s Line 687  bool Arg::parse_long_radix(const char* s
687    long r = strtol(str, &end, radix);    long r = strtol(str, &end, radix);
688    if (end != str + n) return false;   // Leftover junk    if (end != str + n) return false;   // Leftover junk
689    if (errno) return false;    if (errno) return false;
690      if (dest == NULL) return true;
691    *(reinterpret_cast<long*>(dest)) = r;    *(reinterpret_cast<long*>(dest)) = r;
692    return true;    return true;
693  }  }
# Line 700  bool Arg::parse_ulong_radix(const char* Line 705  bool Arg::parse_ulong_radix(const char*
705    unsigned long r = strtoul(str, &end, radix);    unsigned long r = strtoul(str, &end, radix);
706    if (end != str + n) return false;   // Leftover junk    if (end != str + n) return false;   // Leftover junk
707    if (errno) return false;    if (errno) return false;
708      if (dest == NULL) return true;
709    *(reinterpret_cast<unsigned long*>(dest)) = r;    *(reinterpret_cast<unsigned long*>(dest)) = r;
710    return true;    return true;
711  }  }
# Line 711  bool Arg::parse_short_radix(const char* Line 717  bool Arg::parse_short_radix(const char*
717    long r;    long r;
718    if (!parse_long_radix(str, n, &r, radix)) return false; // Could not parse    if (!parse_long_radix(str, n, &r, radix)) return false; // Could not parse
719    if (r < SHRT_MIN || r > SHRT_MAX) return false;       // Out of range    if (r < SHRT_MIN || r > SHRT_MAX) return false;       // Out of range
720      if (dest == NULL) return true;
721    *(reinterpret_cast<short*>(dest)) = static_cast<short>(r);    *(reinterpret_cast<short*>(dest)) = static_cast<short>(r);
722    return true;    return true;
723  }  }
# Line 722  bool Arg::parse_ushort_radix(const char* Line 729  bool Arg::parse_ushort_radix(const char*
729    unsigned long r;    unsigned long r;
730    if (!parse_ulong_radix(str, n, &r, radix)) return false; // Could not parse    if (!parse_ulong_radix(str, n, &r, radix)) return false; // Could not parse
731    if (r > USHRT_MAX) return false;                      // Out of range    if (r > USHRT_MAX) return false;                      // Out of range
732      if (dest == NULL) return true;
733    *(reinterpret_cast<unsigned short*>(dest)) = static_cast<unsigned short>(r);    *(reinterpret_cast<unsigned short*>(dest)) = static_cast<unsigned short>(r);
734    return true;    return true;
735  }  }
# Line 733  bool Arg::parse_int_radix(const char* st Line 741  bool Arg::parse_int_radix(const char* st
741    long r;    long r;
742    if (!parse_long_radix(str, n, &r, radix)) return false; // Could not parse    if (!parse_long_radix(str, n, &r, radix)) return false; // Could not parse
743    if (r < INT_MIN || r > INT_MAX) return false;         // Out of range    if (r < INT_MIN || r > INT_MAX) return false;         // Out of range
744      if (dest == NULL) return true;
745    *(reinterpret_cast<int*>(dest)) = r;    *(reinterpret_cast<int*>(dest)) = r;
746    return true;    return true;
747  }  }
# Line 744  bool Arg::parse_uint_radix(const char* s Line 753  bool Arg::parse_uint_radix(const char* s
753    unsigned long r;    unsigned long r;
754    if (!parse_ulong_radix(str, n, &r, radix)) return false; // Could not parse    if (!parse_ulong_radix(str, n, &r, radix)) return false; // Could not parse
755    if (r > UINT_MAX) return false;                       // Out of range    if (r > UINT_MAX) return false;                       // Out of range
756      if (dest == NULL) return true;
757    *(reinterpret_cast<unsigned int*>(dest)) = r;    *(reinterpret_cast<unsigned int*>(dest)) = r;
758    return true;    return true;
759  }  }
# Line 771  bool Arg::parse_longlong_radix(const cha Line 781  bool Arg::parse_longlong_radix(const cha
781  #endif  #endif
782    if (end != str + n) return false;   // Leftover junk    if (end != str + n) return false;   // Leftover junk
783    if (errno) return false;    if (errno) return false;
784      if (dest == NULL) return true;
785    *(reinterpret_cast<long long*>(dest)) = r;    *(reinterpret_cast<long long*>(dest)) = r;
786    return true;    return true;
787  #endif   /* HAVE_LONG_LONG */  #endif   /* HAVE_LONG_LONG */
# Line 800  bool Arg::parse_ulonglong_radix(const ch Line 811  bool Arg::parse_ulonglong_radix(const ch
811  #endif  #endif
812    if (end != str + n) return false;   // Leftover junk    if (end != str + n) return false;   // Leftover junk
813    if (errno) return false;    if (errno) return false;
814      if (dest == NULL) return true;
815    *(reinterpret_cast<unsigned long long*>(dest)) = r;    *(reinterpret_cast<unsigned long long*>(dest)) = r;
816    return true;    return true;
817  #endif   /* HAVE_UNSIGNED_LONG_LONG */  #endif   /* HAVE_UNSIGNED_LONG_LONG */
# Line 817  bool Arg::parse_double(const char* str, Line 829  bool Arg::parse_double(const char* str,
829    double r = strtod(buf, &end);    double r = strtod(buf, &end);
830    if (end != buf + n) return false;   // Leftover junk    if (end != buf + n) return false;   // Leftover junk
831    if (errno) return false;    if (errno) return false;
832      if (dest == NULL) return true;
833    *(reinterpret_cast<double*>(dest)) = r;    *(reinterpret_cast<double*>(dest)) = r;
834    return true;    return true;
835  }  }
# Line 824  bool Arg::parse_double(const char* str, Line 837  bool Arg::parse_double(const char* str,
837  bool Arg::parse_float(const char* str, int n, void* dest) {  bool Arg::parse_float(const char* str, int n, void* dest) {
838    double r;    double r;
839    if (!parse_double(str, n, &r)) return false;    if (!parse_double(str, n, &r)) return false;
840      if (dest == NULL) return true;
841    *(reinterpret_cast<float*>(dest)) = static_cast<float>(r);    *(reinterpret_cast<float*>(dest)) = static_cast<float>(r);
842    return true;    return true;
843  }  }

Legend:
Removed from v.259  
changed lines
  Added in v.288

webmaster@exim.org
ViewVC Help
Powered by ViewVC 1.1.12