From: | Thomas Munro <thomas(dot)munro(at)gmail(dot)com> |
---|---|
To: | Pavel Stehule <pavel(dot)stehule(at)gmail(dot)com> |
Cc: | PostgreSQL Hackers <pgsql-hackers(at)postgresql(dot)org> |
Subject: | Re: proposal - psql - use pager for \watch command |
Date: | 2021-03-22 12:13:11 |
Message-ID: | CA+hUKGLsd9afMbDog8Bc6xfuTu8w0qJV06mtJmDDPZ7uw8=RbA@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
On Mon, Mar 22, 2021 at 5:10 PM Pavel Stehule <pavel(dot)stehule(at)gmail(dot)com> wrote:
> probably there will not be an issue inside ncurses - the most complex part of get_event is polling of input sources - tty and some other. The pspg should not to stop there on tty reading.
The problem is that Apple's /dev/tty device is defective, and doesn't
work in poll(). It always returns immediately with revents=POLLNVAL,
but pspg assumes that data is ready and tries to read the keyboard and
then blocks until I press a key. This seems to fix it:
+#ifndef __APPLE__
+ /* macOS can't use poll() on /dev/tty */
state.tty = fopen("/dev/tty", "r+");
+#endif
if (!state.tty)
state.tty = fopen(ttyname(fileno(stdout)), "r");
A minor problem is that on macOS, _GNU_SOURCE doesn't seem to imply
NCURSES_WIDECHAR, so I suspect Unicode will be broken unless you
manually add -DNCURSES_WIDECHAR=1, though I didn't check.
From | Date | Subject | |
---|---|---|---|
Next Message | Sean Jezewski | 2021-03-22 12:40:38 | Re: PG13 fails to startup even though the current transaction is equal to the target transaction |
Previous Message | ikedamsh | 2021-03-22 11:25:45 | Re: About to add WAL write/fsync statistics to pg_stat_wal view |