Hi all I'm trying to figure out how this function works, pointers give me a hard time still especially a function with several pointers as parameters.
I understand the function takes a string and if it has a % or + it removes those, I don't understand the nibble part of the function is where I'm confused. Long story short guess I just wonder if anyone could comment it so I can understand what's happening.
Code:
/* Unencode a urlencoded string*/
/*----------------------------------------------------------------------------*/
static void unencode(char *dst,char *src,size_t len)
{ char c;
while (c = *src++,len--)
{ if (c == '+') c = ' ';
else if (c == '%')
{ c = *src++;
c = (nibble(c) << 4) | nibble(*src++);
len -= 2;
}
*dst++ = c;
}
*dst = '\0';
}