diff options
Diffstat (limited to 'core/fxcodec/codec')
-rw-r--r-- | core/fxcodec/codec/fx_codec.cpp | 102 | ||||
-rw-r--r-- | core/fxcodec/codec/fx_codec_png.cpp | 2 |
2 files changed, 1 insertions, 103 deletions
diff --git a/core/fxcodec/codec/fx_codec.cpp b/core/fxcodec/codec/fx_codec.cpp index f0f03ab0e9..997d61f25b 100644 --- a/core/fxcodec/codec/fx_codec.cpp +++ b/core/fxcodec/codec/fx_codec.cpp @@ -84,108 +84,6 @@ FX_BOOL CCodec_BasicModule::RunLengthEncode(const uint8_t* src_buf, return FALSE; } -#define EXPONENT_DETECT(ptr) \ - for (;; ptr++) { \ - if (!std::isdigit(*ptr)) { \ - if (endptr) \ - *endptr = (char*)ptr; \ - break; \ - } else { \ - exp_ret *= 10; \ - exp_ret += FXSYS_toDecimalDigit(*ptr); \ - continue; \ - } \ - } - -extern "C" double FXstrtod(const char* nptr, char** endptr) { - double ret = 0.0; - const char* ptr = nptr; - const char* exp_ptr = NULL; - int e_number = 0, e_signal = 0, e_point = 0, is_negative = 0; - int exp_ret = 0, exp_sig = 1, fra_ret = 0, fra_count = 0, fra_base = 1; - if (!nptr) { - return 0.0; - } - for (;; ptr++) { - if (!e_number && !e_point && (*ptr == '\t' || *ptr == ' ')) - continue; - - if (std::isdigit(*ptr)) { - if (!e_number) - e_number = 1; - - if (!e_point) { - ret *= 10; - ret += FXSYS_toDecimalDigit(*ptr); - } else { - fra_count++; - fra_ret *= 10; - fra_ret += FXSYS_toDecimalDigit(*ptr); - } - continue; - } - if (!e_point && *ptr == '.') { - e_point = 1; - continue; - } - if (!e_number && !e_point && !e_signal) { - switch (*ptr) { - case '-': - is_negative = 1; - case '+': - e_signal = 1; - continue; - } - } - if (e_number && (*ptr == 'e' || *ptr == 'E')) { - exp_ptr = ptr++; - if (*ptr == '+' || *ptr == '-') { - exp_sig = (*ptr++ == '+') ? 1 : -1; - if (!std::isdigit(*ptr)) { - if (endptr) { - *endptr = (char*)exp_ptr; - } - break; - } - EXPONENT_DETECT(ptr); - } else if (std::isdigit(*ptr)) { - EXPONENT_DETECT(ptr); - } else { - if (endptr) { - *endptr = (char*)exp_ptr; - } - break; - } - break; - } - if (ptr != nptr && !e_number) { - if (endptr) { - *endptr = (char*)nptr; - } - break; - } - if (endptr) { - *endptr = (char*)ptr; - } - break; - } - while (fra_count--) { - fra_base *= 10; - } - ret += (double)fra_ret / (double)fra_base; - if (exp_sig == 1) { - while (exp_ret--) { - ret *= 10.0; - } - } else { - while (exp_ret--) { - ret /= 10.0; - } - } - return is_negative ? -ret : ret; -} -#undef EXPONENT_DETECT - FX_BOOL CCodec_BasicModule::A85Encode(const uint8_t* src_buf, uint32_t src_size, uint8_t*& dest_buf, diff --git a/core/fxcodec/codec/fx_codec_png.cpp b/core/fxcodec/codec/fx_codec_png.cpp index 61d4cebdbb..f7b922973e 100644 --- a/core/fxcodec/codec/fx_codec_png.cpp +++ b/core/fxcodec/codec/fx_codec_png.cpp @@ -56,7 +56,7 @@ static void _png_load_bmp_attribute(png_structp png_ptr, if (t) { FXSYS_memset(pAttribute->m_strTime, 0, sizeof(pAttribute->m_strTime)); FXSYS_snprintf((FX_CHAR*)pAttribute->m_strTime, - sizeof(pAttribute->m_strTime), "%4d:%2d:%2d %2d:%2d:%2d", + sizeof(pAttribute->m_strTime), "%4u:%2u:%2u %2u:%2u:%2u", t->year, t->month, t->day, t->hour, t->minute, t->second); pAttribute->m_strTime[sizeof(pAttribute->m_strTime) - 1] = 0; bTime = 1; |