From: Alejandro Colomar <alx@kernel.org>
To: "G. Branden Robinson" <g.branden.robinson@gmail.com>
Cc: groff@gnu.org, linux-man@vger.kernel.org, bug-ncurses@gnu.org
Subject: Re: Proposed v2: revised man(7) synopsis macros
Date: Sun, 5 May 2024 14:44:16 +0200 [thread overview]
Message-ID: <Zjd_IEmita152Zdj@debian> (raw)
In-Reply-To: <Zjd-jgQ_VFTidbnT@debian>
[-- Attachment #1: Type: text/plain, Size: 4957 bytes --]
On Sun, May 05, 2024 at 02:41:44PM +0200, Alejandro Colomar wrote:
> Hi Branden,
>
> On Fri, May 03, 2024 at 03:31:26PM -0500, G. Branden Robinson wrote:
> > At 2024-04-26T11:32:06+0200, Alejandro Colomar wrote:
> > > > My questions:
> > > >
> > > > A. Does anyone object to me committing this change to groff's
> > > > master branch? It will of course require a NEWS item, which I
> > > > will write.
> > >
> > > Acked-by: Alejandro Colomar <alx@kernel.org>
> > >
> > > > B. Does this look enticing enough to any documenters of C libraries
> > > > for you to adopt it?
> > >
> > > This one at least. :-)
> >
> > I've pushed this.
> >
> > $ head -n 9 tmac/an-ext.tmac
> > .\" groff extension macros for man(7) package
> > .\"
> > .\" Copyright (C) 2007-2024 Free Software Foundation, Inc.
> > .\"
> > .\" Written by Eric S. Raymond <esr@thyrsus.com>
> > .\" Werner Lemberg <wl@gnu.org>
> > .\" G. Branden Robinson <g.branden.robinson@gmail.com>
> > .\"
> > .\" You may freely use, modify and/or distribute this file.
> >
> > Share and enjoy!
>
> Thanks!
>
> I'm trying it already in liba2i, since it's a project that I don't
> expect to use until 1.24.0 is out.
>
> Here's some feedback:
>
> - Hardcoded line widths have an interesting feature: the author decides
> the breaking point, which is interesting to highlight differences
> between similar functions. See for example printf(3):
>
> int printf(const char *restrict format, ...);
> int fprintf(FILE *restrict stream,
> const char *restrict format, ...);
> int dprintf(int fd,
> const char *restrict format, ...);
> int sprintf(char *restrict str,
> const char *restrict format, ...);
> int snprintf(char str[restrict .size], size_t size,
> const char *restrict format, ...);
>
> As you can see, the breaking point clearly shows the differences
> between all of those, and leaves the common part in a separate line.
>
> Still, this is not the common case, and most pages would benefit of
> this SY. I'm just mentioning here to note that old hard-coded BI
> still has its place in some pages. I will probably never use SY in
> printf(3).
>
> - I found an inconsistent break point:
>
> Type‐generic macros
> int a2i(TYPE, TYPE *restrict n, const char *s,
> char **_Nullable restrict endp, int base, TYPE min, TYPE max);
>
> int a2s(TYPE, TYPE *restrict n, const char *s, char **_Nullable re‐
> strict endp, int base, TYPE min, TYPE max);
> int a2u(TYPE, TYPE *restrict n, const char *s, char **_Nullable re‐
> strict endp, int base, TYPE min, TYPE max);
>
> Why is 'restrict' hyphenated in two cases, but not in the first one?!
> The source is:
Oh, and removing the argument to YS fixes this. :|
>
> alx@debian:~/tmp/groff/SY$ cat restrict.3
> .TH a s d f
> .SH Name
> restrict \- gets broken
> .SH Type-generic macros
> .B int
> .SY a2i (
> .B TYPE,
> .BI TYPE\~*restrict\~ n ,
> .BI const\~char\~* s ,
> .BI char\~**_Nullable\~restrict\~ endp ,
> .BI int\~ base ,
> .BI TYPE\~ min ,
> .BI TYPE\~ max );
> .YS .
> .P
> .B int
> .SY a2s (
> .B TYPE,
> .BI TYPE\~*restrict\~ n ,
> .BI const\~char\~* s ,
> .BI char\~**_Nullable\~restrict\~ endp ,
> .BI int\~ base ,
> .BI TYPE\~ min ,
> .BI TYPE\~ max );
> .YS .
> .B int
> .SY a2u (
> .B TYPE,
> .BI TYPE\~*restrict\~ n ,
> .BI const\~char\~* s ,
> .BI char\~**_Nullable\~restrict\~ endp ,
> .BI int\~ base ,
> .BI TYPE\~ min ,
> .BI TYPE\~ max );
> .YS
> alx@debian:~/tmp/groff/SY$ man ./restrict.3 | cat
> a(s) a(s)
>
> Name
> restrict - gets broken
>
> Type‐generic macros
> int a2i(TYPE, TYPE *restrict n, const char *s,
> char **_Nullable restrict endp, int base, TYPE min, TYPE max);
>
> int a2s(TYPE, TYPE *restrict n, const char *s, char **_Nullable re‐
> strict endp, int base, TYPE min, TYPE max);
> int a2u(TYPE, TYPE *restrict n, const char *s, char **_Nullable re‐
> strict endp, int base, TYPE min, TYPE max);
>
> f d a(s)
>
>
> I would suggest never breaking anything between SY/YS. Or do you want
> me to use \% where appropriate? It's a bit of work that I'd prefer to
> avoid.
>
> Have a lovely day!
> Alex
>
> > Regards,
> > Branden
>
>
> --
> <https://www.alejandro-colomar.es/>
> A client is hiring kernel driver, mm, and/or crypto developers;
> contact me if interested.
--
<https://www.alejandro-colomar.es/>
A client is hiring kernel driver, mm, and/or crypto developers;
contact me if interested.
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]
next prev parent reply other threads:[~2024-05-05 12:44 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-04-26 5:59 Proposed v2: revised man(7) synopsis macros G. Branden Robinson
2024-04-26 9:32 ` Alejandro Colomar
2024-05-03 20:31 ` G. Branden Robinson
2024-05-05 12:41 ` Alejandro Colomar
2024-05-05 12:44 ` Alejandro Colomar [this message]
[not found] ` <20240505135453.4rxsqe3so7347mli@illithid>
[not found] ` <ZjeTilIR86sBYrtI@debian>
2024-05-05 14:28 ` Alejandro Colomar
2024-05-05 14:32 ` G. Branden Robinson
2024-05-05 14:45 ` Alejandro Colomar
2024-04-26 21:54 ` Lennart Jablonka
2024-04-26 22:31 ` Undeprecating man(7)'s `HP` macro? (was: Proposed v2: revised man(7) synopsis macros) G. Branden Robinson
2024-04-29 8:39 ` Proposed v2: revised man(7) synopsis macros G. Branden Robinson
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=Zjd_IEmita152Zdj@debian \
--to=alx@kernel.org \
--cc=bug-ncurses@gnu.org \
--cc=g.branden.robinson@gmail.com \
--cc=groff@gnu.org \
--cc=linux-man@vger.kernel.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox