gnext
else n = gnext(n);
gnext(n) = NULL;
while (gnext(othern) != mp) othern = gnext(othern); /* find previous */
gnext(othern) = n; /* redo the chain with `n' in place of `mp' */
gnext(mp) = NULL; /* now `mp' is free */
gnext(n) = gnext(mp); /* chain new position */
gnext(mp) = n;
else n = gnext(n);
else n = gnext(n);
else n = gnext(n);