Всем привет!
Пожалуйста помогите с переводом :
Код:
int base45_decode(unsigned char * dst,
size_t * _max_dst_len,
const char * src,
size_t src_len)
{
size_t out_len = 0, max_dst_len;
max_dst_len = _max_dst_len ? *_max_dst_len : src_len;
if (dst == NULL && _max_dst_len == NULL)
return -2;
if (src == NULL)
return -2;
if (src_len == 0)
src_len = strlen(src);
for(int i = 0; i < src_len; i+=3)
{
int x,a,b;
if (src_len - i < 2)
return -1;
if ((255 == (a = _C2I[src[i]])) || (255 == (b = _C2I[src[i+1]])))
return -1;
x = a + 45 * b;
if (src_len - i >= 3)
{
if (255 == (a = _C2I[src[i+2]]))
return -1;
x += a * 45 * 45;
if (out_len < max_dst_len && dst)
dst[out_len] = x / 256;
out_len++;
x %= 256;
};
if (out_len < max_dst_len && dst)
dst[out_len] = x;
out_len++;
};
if (_max_dst_len)
*_max_dst_len = out_len;
return 0;
}