static std::string BinaryHashToHexString(const unsigned char *hash, int len) { std::string out; // reverse enough space to gain a little speedup out.reserve(len * 2 + 1); for (int i = 0; i < len; ++i) out += NumFmt("%02x", (int)hash[i]).c_str(); return out; }
double CTabFmt::Col(ColFmt &col, const char *szDat) { if ((m_nBuf + 1024) > m_cbBuf) { m_cbBuf += 1024; m_buf = (char *) realloc(m_buf, m_cbBuf); } char *b = m_buf + m_nBuf; char *r = b; double val; int rgb; if (szDat && *szDat) { ColB(col, &r); HTIncr(szDat, r); const char *p; p = NumFmt(col, szDat, m_tmp, MAX_TMP, &val); if (col.rgb!=-1) rgb = col.rgb; else if (val < 0) rgb = col.neg; else rgb = 0; ColV(col, &p, val, rgb, &r); HTIncr(p, r); ColE(col, &r); } else { val = 0.0; rgb = col.rgb; ColB(col, &r); ColN(col, rgb, &r); ColE(col, &r); } m_nBuf += (r - b); return val; }