factor out circbuf; more comments; return location of pinch