mirror of https://github.com/aria2/aria2
Code cleanup
parent
995c07c184
commit
b25d8a9923
30
src/base64.h
30
src/base64.h
|
@ -127,30 +127,30 @@ std::string decode(InputIterator first, InputIterator last)
|
|||
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1
|
||||
};
|
||||
std::string res;
|
||||
InputIterator k[5];
|
||||
InputIterator k[4];
|
||||
int eq = 0;
|
||||
for(; first != last;) {
|
||||
for(int i = 1; i <= 4; ++i) {
|
||||
k[i] = getNext(first, last, INDEX_TABLE);
|
||||
if(k[i] == last) {
|
||||
k[i-1] = getNext(first, last, INDEX_TABLE);
|
||||
if(k[i-1] == last) {
|
||||
// If i == 1, input may look like this: "TWFu\n" (i.e.,
|
||||
// garbage at the end)
|
||||
if(i != 1) {
|
||||
res.clear();
|
||||
}
|
||||
return res;
|
||||
} else if(*k[i] == '=' && eq == 0) {
|
||||
} else if(*k[i-1] == '=' && eq == 0) {
|
||||
eq = i;
|
||||
}
|
||||
first = k[i]+1;
|
||||
first = k[i-1]+1;
|
||||
}
|
||||
if(eq) {
|
||||
break;
|
||||
}
|
||||
int n = (INDEX_TABLE[static_cast<unsigned char>(*k[1])] << 18)+
|
||||
(INDEX_TABLE[static_cast<unsigned char>(*k[2])] << 12)+
|
||||
(INDEX_TABLE[static_cast<unsigned char>(*k[3])] << 6)+
|
||||
INDEX_TABLE[static_cast<unsigned char>(*k[4])];
|
||||
int n = (INDEX_TABLE[static_cast<unsigned char>(*k[0])] << 18)+
|
||||
(INDEX_TABLE[static_cast<unsigned char>(*k[1])] << 12)+
|
||||
(INDEX_TABLE[static_cast<unsigned char>(*k[2])] << 6)+
|
||||
INDEX_TABLE[static_cast<unsigned char>(*k[3])];
|
||||
res += n >> 16;
|
||||
res += n >> 8 & 0xffu;
|
||||
res += n & 0xffu;
|
||||
|
@ -161,19 +161,19 @@ std::string decode(InputIterator first, InputIterator last)
|
|||
return res;
|
||||
} else {
|
||||
for(int i = eq; i <= 4; ++i) {
|
||||
if(*k[i] != '=') {
|
||||
if(*k[i-1] != '=') {
|
||||
res.clear();
|
||||
return res;
|
||||
}
|
||||
}
|
||||
if(eq == 3) {
|
||||
int n = (INDEX_TABLE[static_cast<unsigned char>(*k[1])] << 18)+
|
||||
(INDEX_TABLE[static_cast<unsigned char>(*k[2])] << 12);
|
||||
int n = (INDEX_TABLE[static_cast<unsigned char>(*k[0])] << 18)+
|
||||
(INDEX_TABLE[static_cast<unsigned char>(*k[1])] << 12);
|
||||
res += n >> 16;
|
||||
} else if(eq == 4) {
|
||||
int n = (INDEX_TABLE[static_cast<unsigned char>(*k[1])] << 18)+
|
||||
(INDEX_TABLE[static_cast<unsigned char>(*k[2])] << 12)+
|
||||
(INDEX_TABLE[static_cast<unsigned char>(*k[3])] << 6);
|
||||
int n = (INDEX_TABLE[static_cast<unsigned char>(*k[0])] << 18)+
|
||||
(INDEX_TABLE[static_cast<unsigned char>(*k[1])] << 12)+
|
||||
(INDEX_TABLE[static_cast<unsigned char>(*k[2])] << 6);
|
||||
res += n >> 16;
|
||||
res += n >> 8 & 0xffu;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue