DESC
Avoid void * arithmetic, explicit pointer arithmetic using unsigned chars.
EDESC

When compiling with -pedantic (-ansi was just fine) I found out a couple of
void * arithmetic that could be messy.

This patch fixes it up by using the right pointer type (almost unsigned char *
most of the time, because we address buffers byte by byte) on each case.

