I just noticed that parse_psql_options() ignores the result of setQFout(),
meaning that if the argument of a -o command line option is bogus, we'll
ignore the switch entirely after printing an error report. For example
$ psql -o /dev/foo -c 'select 1'
/dev/foo: Permission denied?column?
---------- 1
(1 row)
$
This seems surprising to me: any other program in the world would do
exit(1) after discovering that it couldn't write where it had been
told to. Should we change this?
regards, tom lane