Changeset 34265 for lang/cplusplus

Show
Ignore:
Timestamp:
07/03/09 13:37:11 (5 years ago)
Author:
kazuho
Message:

apply suppress warning patch on gcc 4.4 and vc 2005

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • lang/cplusplus/picojson/trunk/picojson.h

    r34263 r34265  
    3838#include <string> 
    3939#include <vector> 
     40 
     41#ifdef _MSC_VER 
     42    #define SNPRINTF _snprintf_s 
     43    #pragma warning(push) 
     44    #pragma warning(disable : 4244) // conversion from int to char 
     45#else 
     46    #define SNPRINTF snprintf 
     47#endif 
    4048 
    4149namespace picojson { 
     
    224232    case number_type:    { 
    225233      char buf[256]; 
    226 #if _MSC_VER >= 1400 // VC 2005 
    227       _snprintf_s(buf, sizeof(buf), "%f", number_); 
    228 #else 
    229       snprintf(buf, sizeof(buf), "%f", number_); 
    230 #endif 
     234      SNPRINTF(buf, sizeof(buf), "%f", number_); 
    231235      return buf; 
    232236    } 
     
    235239    case object_type:    return "object"; 
    236240    default:             assert(0); 
    237 #if _MSC_VER >= 1310 // VC 2003 
     241#ifdef _MSC_VER 
    238242      __assume(0); 
    239243#endif 
     
    262266        if ((unsigned char)*i < 0x20 || *i == 0x7f) { 
    263267          char buf[7]; 
    264           sprintf(buf, "\\u%04x", *i & 0xff); 
     268          SNPRINTF(buf, sizeof(buf), "\\u%04x", *i & 0xff); 
    265269          copy(buf, buf + 6, oi); 
    266270          } else { 
     
    518522    while (! in.eof()) { 
    519523      int ch = in.getc(); 
    520       if ('0' <= ch && ch <= '9' || ch == '+' || ch == '-' || ch == '.' 
     524      if (('0' <= ch && ch <= '9') || ch == '+' || ch == '-' || ch == '.' 
    521525          || ch == 'e' || ch == 'E') { 
    522526        num_str.push_back(ch); 
     
    554558      if (ch != -1) { 
    555559        in.ungetc(); 
    556         if ('0' <= ch && ch <= '9' || ch == '-') { 
     560        if (('0' <= ch && ch <= '9') || ch == '-') { 
    557561          return _parse_number(out, in); 
    558562        } 
     
    570574    if (! _parse(out, in)) { 
    571575      char buf[64]; 
    572       sprintf(buf, "syntax error at line %d near: ", in.line()); 
     576      SNPRINTF(buf, sizeof(buf), "syntax error at line %d near: ", in.line()); 
    573577      err = buf; 
    574578      while (! in.eof()) { 
     
    619623  return os; 
    620624} 
     625#ifdef _MSC_VER 
     626    #pragma warning(pop) 
     627#endif 
    621628 
    622629#endif 
    623630#ifdef TEST_PICOJSON 
     631#ifdef _MSC_VER 
     632    #pragma warning(disable : 4127) // conditional expression is constant 
     633#endif 
    624634 
    625635using namespace std;