Use zap-up-to-char instead of zap-to-char; misc cleanups