Skip to contentSkip to conversation

New: Environment variable MANLESS is described wrong in man(1)

Bug 216603 [email protected] 1 participant 3 messages Oct 18, 2022 Man-pages: manual pages for Linux -- Sections 2, 3, 4, 5, and 7

lore
Share & tools
lore
#0 lore raw

https://bugzilla.kernel.org/show_bug.cgi?id=216603

            Bug ID: 216603
           Summary: Environment variable MANLESS is described wrong in
                    man(1)
           Product: Documentation
           Version: unspecified
          Hardware: All
                OS: Linux
            Status: NEW
          Severity: normal
          Priority: P1
         Component: man-pages
          Assignee: [email protected]
          Reporter: [email protected]
        Regression: No

In an example for setting MANLESS environment variable, man(1) claims:

For example, if you want to set the prompt string unconditionally to "my prompt string", set $MANLESS to '-Psmy prompt string'.

However, this is not not correct as man uses the entire MANLESS variable as a prompt for less. I'll demonstrate:

    $ MANLESS='-Ps(prompt)' man man
    <ctrl-z>
    $ cat /proc/$(pgrep -P $(pgrep -f "man man"))/environ |
    tr '\0' '\n' | grep "^LESS="
    LESS=-ix8RmPm-Ps(prompt)$PM-Ps(prompt)$

As seen, man(1) defines -Pm and -PM prompts using the MANLESS variable as is. The same applies to the command line option -r:

    $ man -r'-Ps(prompt)' man
    <ctrl-z>
    $ cat /proc/$(pgrep -P $(pgrep -f "man .* man"))/environ |
    tr '\0' '\n' | grep "^LESS="
    LESS=-ix8RmPm-Ps(prompt)$PM-Ps(prompt)$

Option -r does not make the same claim, but it says:

By default man sets the -ix8 options.

Which also is a bit outdated as we can see it sets -ix8R.

So in summary, at least the '-Ps' part should be removed from the MANLESS description example. Furthermore, option -r description could elaborate on how LESS variable is formed (-ix8RmPm<MANLESS or -r>$PM<MANLESS or -r>$).

Note: Dollar sign in less prompt definition is an end-of-string marker.

Signature · 4 lines
You may reply to this email to add a comment.

You are receiving this mail because:
You are watching the assignee of the bug.
#1 lore raw

[Bug 216603] Environment variable MANLESS is described wrong in man(1)

https://bugzilla.kernel.org/show_bug.cgi?id=216603

--- Comment #1 from Alejandro Colomar (man-pages) ([email protected]) --- Hi Arttu,

Quoted 46 lines · On 10/18/22 21:55, [email protected] wrote:

https://bugzilla.kernel.org/show_bug.cgi?id=216603

             Bug ID: 216603
            Summary: Environment variable MANLESS is described wrong in
                     man(1)
            Product: Documentation
            Version: unspecified
           Hardware: All
                 OS: Linux
             Status: NEW
           Severity: normal
           Priority: P1
          Component: man-pages
           Assignee: [email protected]
           Reporter: [email protected]
         Regression: No

In an example for setting MANLESS environment variable, man(1) claims:

For example, if you want to set the prompt string unconditionally to "my prompt string", set $MANLESS to '-Psmy prompt string'.

However, this is not not correct as man uses the entire MANLESS variable as a prompt for less. I'll demonstrate:

     $ MANLESS='-Ps(prompt)' man man
     <ctrl-z>
     $ cat /proc/$(pgrep -P $(pgrep -f "man man"))/environ |
     tr '\0' '\n' | grep "^LESS="
     LESS=-ix8RmPm-Ps(prompt)$PM-Ps(prompt)$

As seen, man(1) defines -Pm and -PM prompts using the MANLESS variable as is. The same applies to the command line option -r:

     $ man -r'-Ps(prompt)' man
     <ctrl-z>
     $ cat /proc/$(pgrep -P $(pgrep -f "man .* man"))/environ |
     tr '\0' '\n' | grep "^LESS="
     LESS=-ix8RmPm-Ps(prompt)$PM-Ps(prompt)$

Option -r does not make the same claim, but it says:

By default man sets the -ix8 options.

Quoted 8 lines

Which also is a bit outdated as we can see it sets -ix8R.

So in summary, at least the '-Ps' part should be removed from the MANLESS description example. Furthermore, option -r description could elaborate on how LESS variable is formed (-ix8RmPm<MANLESS or -r>$PM<MANLESS or -r>$).

Note: Dollar sign in less prompt definition is an end-of-string marker.

The man(1) page is part of the man-db project, not the Linux man-pages. Colin is the maintainer of man-db, so I CCd him.

Their website is:

<https://man-db.nongnu.org/>

However, I'm curious about the resolution, so if you report it again in the man-db bug tracker (I guess that's their gitlab? don't remember), please CC me. :)

Cheers,

Alex

Signature · 4 lines
You may reply to this email to add a comment.

You are receiving this mail because:
You are watching the assignee of the bug.
#2 lore raw

[Bug 216603] Environment variable MANLESS is described wrong in man(1)

In reply to [email protected]

https://bugzilla.kernel.org/show_bug.cgi?id=216603

--- Comment #2 from [email protected] ---
Hi Alex, and Colin,

I've never reported any man page bugs before and I basically searched "reporting man page bugs" and ended up at Reporting man-pages bugs (kernel.org) <https://www.kernel.org/doc/man-pages/reporting_bugs.html>.
But of course man(1) is an exception :/

Found the issue reporting from GitLab, so it will be there.

Best Regards,
- Arttu

Quoted 78 lines · Alejandro Colomar

Hi Arttu,

Quoted 25 lines · On 10/18/22 21:55, [email protected] wrote:

https://bugzilla.kernel.org/show_bug.cgi?id=216603

             Bug ID: 216603
            Summary: Environment variable MANLESS is described wrong in
                     man(1)
            Product: Documentation
            Version: unspecified
           Hardware: All
                 OS: Linux
             Status: NEW
           Severity: normal
           Priority: P1
          Component: man-pages
           Assignee: [email protected]
           Reporter: [email protected]
         Regression: No

In an example for setting MANLESS environment variable, man(1) claims:

For example, if you want to set the prompt string unconditionally to "my prompt string", set $MANLESS to '-Psmy prompt string'.

However, this is not not correct as man uses the entire MANLESS variable as a prompt for less. I'll demonstrate:

Quoted 8 lines
     $ MANLESS='-Ps(prompt)' man man
     <ctrl-z>
     $ cat /proc/$(pgrep -P $(pgrep -f "man man"))/environ |
     tr '\0' '\n' | grep "^LESS="
     LESS=-ix8RmPm-Ps(prompt)$PM-Ps(prompt)$

As seen, man(1) defines -Pm and -PM prompts using the MANLESS variable

as is.

Quoted 9 lines

The same applies to the command line option -r:

     $ man -r'-Ps(prompt)' man
     <ctrl-z>
     $ cat /proc/$(pgrep -P $(pgrep -f "man .* man"))/environ |
     tr '\0' '\n' | grep "^LESS="
     LESS=-ix8RmPm-Ps(prompt)$PM-Ps(prompt)$
Quoted 8 lines

Option -r does not make the same claim, but it says:

By default man sets the -ix8 options.

Which also is a bit outdated as we can see it sets -ix8R.

So in summary, at least the '-Ps' part should be removed from the MANLESS description example. Furthermore, option -r description could elaborate

on

Quoted 4 lines

how LESS variable is formed (-ix8RmPm<MANLESS or -r>$PM<MANLESS or -r>$).

Note: Dollar sign in less prompt definition is an end-of-string marker.

The man(1) page is part of the man-db project, not the Linux man-pages. Colin is the maintainer of man-db, so I CCd him.

Their website is:

<https://man-db.nongnu.org/>

However, I'm curious about the resolution, so if you report it again in the man-db bug tracker (I guess that's their gitlab? don't remember), please CC me. :)

Cheers,

Alex

--
<http://www.alejandro-colomar.es/>

Signature · 4 lines
You may reply to this email to add a comment.

You are receiving this mail because:
You are watching the assignee of the bug.