Subject: bug#47243: pr lacks -p

From: Collin Funk <[email-masked]>
Date: Mon, 28 Jul 2025 10:36:02 -0700

Pádraig Brady <[email-masked]> writes:

> Reading POSIX more closely I see there is also pause logic for the first page only:
>   -f    [XSI] [Option Start] Use a <form-feed> for new pages, instead of the default behavior that uses a sequence of <newline> characters.
>         Pause before beginning the first page if the standard output is associated with a terminal. [Option End]

Thanks, I'll have a look.

> I presume you're waiting until the implementation solidifies,
> but just in case, a couple of basic tests to show
> that -p is accepted at least would be good.

Yep, I was going to add some simple tests afterwards.

Paul Eggert said:

> On 2025-07-28 09:23, Pádraig Brady wrote:
>> Yes it's a fair point.
>> We don't want existing scripts that use -f to start pausing unexpectedly.
>> I suppose this is a case for only pausing with -f if POSIXLY_CORRECT
>> env var is set.

> Although backward compatibility is an issue, the current behavior is
> clearly wrong for the intended use of -f, which is for logins via
> printing terminals so stdout is the printer. So a better way to think
> about it is that this is merely a longstanding obscure bug in GNU 'pr'
> that we can fix.
>
> The only reason we haven't noticed the bug before, is that nobody has
> seriously used those terminals in decades, so nobody has run into the
> bug and taken the time to report it.
>
> Other 'pr' implementations (e.g., FreeBSD) do the right thing here,
> and I see no significant reason (other than inertia) for us to be both
> wrong for the intended use and incompatible with the rest of the
> world.

I don't really like the idea of changing '-f' depending on whether
POSIXLY_CORRECT is defined. So I would prefer this as well.

I'll write another patch later today based on your other emails as well.

Collin