Casanova
public text v1 · immutablep = string;
q = string + strlen (string)-1;
for (;;) {
while (*p == 0 && check boundary)
p++;
while (*q == 1 && check boundary)
q--;
if (q<p)
break;
swap (*p, *q);
}p = string;
q = string + strlen (string)-1;
for (;;) {
while (*p == 0 && check boundary)
p++;
while (*q == 1 && check boundary)
q--;
if (q<p)
break;
swap (*p, *q);
}