From: John Spencer <maillist-musl-Am5OCHYCrcUb1SvskN2V4Q@public.gmane.org>
To: Felix Janda <felix.janda-1KBjaw7Xf1+zQB+pC5nmwQ@public.gmane.org>
Cc: John Spencer
<maillist-musl-Am5OCHYCrcUb1SvskN2V4Q@public.gmane.org>,
mtk.manpages-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org,
"linux-man-u79uwXL29TY76Z2rM5mHXA@public.gmane.org"
<linux-man-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>,
Andrew Josey <ajosey-7882/jkIBncuagvECLh61g@public.gmane.org>,
Rich Felker <dalias-/miJ2pyFWUyWIDz0JBNUog@public.gmane.org>,
Rob Landley <rob-VoJi6FS/r0vR7s880joybQ@public.gmane.org>,
Matthew Dempsky <matthew-bfSpyvURsAhAfugRpC6u6w@public.gmane.org>
Subject: Re: POSIX.1-2013 man pages for review
Date: Sat, 21 Sep 2013 14:20:22 +0200 [thread overview]
Message-ID: <523D8F06.9060801@barfooze.de> (raw)
In-Reply-To: <20130920175410.GA1092@gauss>
On 09/20/2013 07:54 PM, Felix Janda wrote:
> John Spencer wrote:
>> musl itself does not use the man-pages project currently, as the
>> majority of manpages are very glibc specific. so the posix manpages
>> project is _imo_ currently a much better documentation for the
>> interfaces provided by musl.
>
> On the other hand the section 2 man pages from linux-manpages documenting
> Linux specific behavior of system calls might be useful, no?
indeed.
>> however, my interest in having the POSIX manpages use portable nroff
>> syntax comes from my endeavor to build a non-bloated musl-based linux
>> system, which will, at least in the basic configuration, feature the
>> below nroff-only manpage viewer, since groff is incredibly bloated (over
>> 4 MB of compressed source code! - in comparison my man.c compiles to a
>> 60 KB statically linked binary) and written in C++ so it's definitely
>> contrary to my goals. (not to talk about that some of the groff features
>> like the tbl preprocessor are just horribly misguided and completely
>> unidiomatic, introducing a completely new language namespace)
>>
>> as such i'd love to see the POSIX manpages project actually deliver
>> portable manpages, instead of assuming that the full-blown GNU userspace
>> stack is available.
>
> Could you give a definition of this portable nroff syntax?
i have a hard time finding detailed specs, but the commands implemented
by the manviewer are sufficient to display 75% of all manpages on a full
desktop sabotage linux install with 8000 manpages without a single
unknown command, despite a lot of packages using their own special
format. for example anything xorg related uses "XMan", anything
BSD-related mdoc, and perl manpages use again another set of commands.
so this here seems to represent a very common subset:
{"\\\"", 0, 0},
{"nh", 0, 0}, /* This program never inserts hyphens */
{"hy", 0, 0}, /* This program never inserts hyphens */
{"PD", 0, 0}, /* Inter-para distance is 1 line */
{"DT", 0, 0}, /* Default tabs, they can't be non-default! */
{"IX", 0, 0}, /* Indexing for some weird package */
{"Id", 0, 0}, /* Line for RCS tokens */
{"BY", 0, 0},
{"nf", 0, 1}, /* Line break, Turn line fill off */
{"fi", 0, 2}, /* Line break, Turn line fill on */
{"sp", 0, 3}, /* Line break, line space (arg for Nr lines) */
{"br", 0, 4}, /* Line break */
{"bp", 0, 5}, /* Page break */
{"PP", 0, 6},
{"LP", 0, 6},
{"P", 0, 6}, /* Paragraph */
{"RS", 0, 7}, /* New Para + Indent start */
{"RE", 0, 8}, /* New Para + Indent end */
{"HP", 0, 9}, /* Begin hanging indent (TP without arg?) */
{"ad", 0, 10}, /* Line up right margin */
{"na", 0, 11}, /* Leave right margin unaligned */
{"ta", 0, 12}, /* Changes _input_ tab spacing, right? */
{"TH", 1, 1}, /* Title and headers */
{"SH", 1, 2}, /* Section */
{"SS", 1, 3}, /* Subsection */
{"IP", 1, 4}, /* New para, indent except argument 1 */
{"TP", 1, 5}, /* New para, indent except line 1 */
{"B", 2, 22}, /* Various font fiddles */
{"BI", 2, 23},
{"BR", 2, 21},
{"I", 2, 33},
{"IB", 2, 32},
{"IR", 2, 31},
{"RB", 2, 12},
{"RI", 2, 13},
{"SB", 2, 42},
{"SM", 2, 44},
{"C", 2, 22}, /* PH-UX manual pages! */
{"CI", 2, 23},
{"CR", 2, 21},
{"IC", 2, 32},
{"RC", 2, 12},
{"so", 3, 0},
>> the alternative is to apply the tbl preprocessor before shipping the
>> manpages and instead include the preprocessed output (cleaned up from
>> groffisms as well)
>
> I'm not sure if your man can handle the output of tbl. Attached is the
> output when run against one of the tables in pax. It looks rather
> hopeless. Also the fictional script cleaning up the GNU tbl output is
> likely going to be dependent on a specific tbl version.
>
> For eqn it seems much more likely to me that one can produce output
> which makes your man implementation happy. The equations are already
> hacked to make them better suitable for nroff.
i agree that the output of tbl is even worse...
btw my research on http://www.troff.org/papers.html revealed that tbl
and eqn preprocessors existed back in the troff days, so this seems to
be a historical mistake rather than groff's fault ;)
>
>> as for the other groff specific formatter commands, i am refering to
>> Felix' response: all of them can either be left away or in case of tbl
>> and eqn the preprocessed source used instead.
>
> .ce remained open. Is there an alternative or could you just implement
> that?
yes, that can easily be implemented as a nop on my side, without losing
valuable information.
--JS
--
To unsubscribe from this list: send the line "unsubscribe linux-man" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
next prev parent reply other threads:[~2013-09-21 12:20 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-09-19 7:59 POSIX.1-2013 man pages for review Michael Kerrisk (man-pages)
[not found] ` <523AAEEE.5090602-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2013-09-19 8:44 ` John Spencer
[not found] ` <523AB978.2080607-Am5OCHYCrcUb1SvskN2V4Q@public.gmane.org>
2013-09-19 11:00 ` Michael Kerrisk (man-pages)
[not found] ` <CAKgNAki+jTS9rkORvcPNxWcStNjnNTnt_jqBYcfoaYm7d4GxqQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2013-09-19 17:47 ` Felix Janda
2013-09-20 13:09 ` John Spencer
[not found] ` <523C48EF.5080309-Am5OCHYCrcUb1SvskN2V4Q@public.gmane.org>
2013-09-20 17:50 ` Simon Paillard
2013-09-20 17:54 ` Felix Janda
2013-09-21 12:20 ` John Spencer [this message]
[not found] ` <523D8F06.9060801-Am5OCHYCrcUb1SvskN2V4Q@public.gmane.org>
2013-09-22 19:25 ` Felix Janda
2013-09-24 13:30 ` John Spencer
2013-10-01 23:16 ` Rob Landley
-- strict thread matches above, loose matches on Subject: below --
2013-12-09 17:58 Xose Vazquez Perez
[not found] ` <52A604CD.6040502-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2014-01-04 10:17 ` Michael Kerrisk (man-pages)
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=523D8F06.9060801@barfooze.de \
--to=maillist-musl-am5ochycrcub1svskn2v4q@public.gmane.org \
--cc=ajosey-7882/jkIBncuagvECLh61g@public.gmane.org \
--cc=dalias-/miJ2pyFWUyWIDz0JBNUog@public.gmane.org \
--cc=felix.janda-1KBjaw7Xf1+zQB+pC5nmwQ@public.gmane.org \
--cc=linux-man-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=matthew-bfSpyvURsAhAfugRpC6u6w@public.gmane.org \
--cc=mtk.manpages-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org \
--cc=rob-VoJi6FS/r0vR7s880joybQ@public.gmane.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.