bcp_colfmt requires a null pointer when specifying no terminator, and currently barfs when zero length is supplied with non-null pointer (as is the case when specifying an empty string for terminator in the format file).
The attached patch fixes the parsing of the bcp format file to pass a null pointer when an empty string was specified as terminator.
NB: a nice side effect of this is the possibility to use a named pipe as input to freebcp
When specifying a prefix length and no terminator for all columns in the format file, freebcp will not perform any fseek on the input stream, allowing the use of named pipes.
Applied, at the end!