Subversion Repositories Kolibri OS

Compare Revisions

Regard whitespace Rev 9636 → Rev 9637

/programs/develop/libraries/base64/base64.c
65,31 → 65,33
 
int base64_decode(char inp[], char outp[], int len)
{
int i, j, k;
int i, j, k, n;
char *chr_adr;
char chr[4];
 
for (i = 0, j=-1, k=0; i < len; i+=4)
i = 0;
j = -1;
k = 0;
while (i < len)
{
chr[0] = strchr(base64_table, inp[i]) - base64_table;
 
chr[1] = strchr(base64_table, inp[i+1]) - base64_table;
 
if (inp[i+2] == '=')
for (n = 0; n <= 3; n++)
{
chr[2] = 0;
chr[n] = 0;
while ((inp[i] <= 0x20) & (i < len))
i++;
if (i < len)
{
if ((n >= 2) & (inp[i] == '='))
k++;
}
else
chr[2] = strchr(base64_table, inp[i+2]) - base64_table;
 
if (inp[i+3] == '=')
{
chr[3] = 0;
k++;
chr_adr = strchr(base64_table, inp[i]);
if (chr_adr)
chr[n] = chr_adr - base64_table;
}
else
chr[3] = strchr(base64_table, inp[i+3]) - base64_table;
 
i++;
}
}
outp[++j] = ((chr[0] << 2) | (chr[1] >> 4));
outp[++j] = ((chr[1] << 4) | (chr[2] >> 2));
outp[++j] = ((chr[2] & 0x03 )<< 6) | (chr[3] & 0x3f);