Hi,
I noticed that this patch does not work when PROMPT1 contains a new line, since the whole length of PROMPT1 is taken into account for the length of %w.
Attached screenshot shows the issue on my psql, with the following PROMPT variables (colors edited out for readability):
\set PROMPT1 '\n[pid:%p] %n :: %`hostname`:%> ‹%/› \n› '
\set PROMPT2 '%w'
Notice in the screenshot that just after inputting a newline, my cursor is far to the right.
The length of %w should probably be computed starting from the last newline in PROMPT1.
I could technically get rid of my newline, but since my prompt can get pretty long, i like the comfort of having my first line of sql start right at the left of my terminal.
Also attached is a trivial patch to fix this issue, which I have not extensively tested (works for me at least), and might not be the right way to do it, but it's a start.
Otherwise, nice feature, I like it!
Regards,
Maxence