19 static void url_decode(
char* parameter) {
22 while (parameter[0]!=0) {
23 if (parameter[0]==
'+')
25 else if (parameter[0]==
'%') {
27 if (parameter[1]<=
'9')
28 high_nibble=parameter[1]-
'0';
30 high_nibble=parameter[1]-
'A'+10;
31 if (parameter[2]<=
'9')
32 low_nibble=parameter[2]-
'0';
34 low_nibble=parameter[2]-
'A'+10;
35 char c=(high_nibble<<4)+low_nibble;
39 memmove(parameter+1,parameter+3,strlen(parameter+3)+1);
41 else if (parameter[0]==
'&') {
56 Base64(
char *buf) : bufcoded(buf) {}
58 size_t encode(
char *);
60 size_t decode(
char *);
68 static uint8_t CRC8(
void *,
size_t);
69 static uint16_t CRC16(
void *,
size_t,
const uint16_t);
70 static uint32_t CRC32(
void *,
size_t,
const uint32_t);