33 char *source, *target;
40 source = s + (length = strlen(s));
41 if (distance > length)
43 target = source + distance;
44 for (i = length; i >= 0; i--)
45 *target-- = *source--;
46 }
else if (distance < 0) {
49 if ((distance = -distance) >= length)
52 source = s + distance;
55 *target++ = *source++;