tech@mandoc.bsd.lv
 help / color / mirror / Atom feed
From: Ingo Schwarze <schwarze@usta.de>
To: "Anthony J. Bentley" <anthony@anjbe.name>
Cc: tech@mandoc.bsd.lv
Subject: Re: MT and ME macros
Date: Sat, 24 Jun 2017 17:06:17 +0200	[thread overview]
Message-ID: <20170624150617.GI39761@athene.usta.de> (raw)
In-Reply-To: <61002.1498289497@cathet.us>

Hi Anthony,

Anthony J. Bentley wrote on Sat, Jun 24, 2017 at 01:31:37AM -0600:

> Take 2:

OK schwarze@ with one nit in the mandoc(1) manual page,
see inline.

Please commit to OpenBSD, and i'll merge to bsd.lv.

Thanks,
  Ingo

> Index: share/man/man7/man.7
> ===================================================================
> RCS file: /cvs/src/share/man/man7/man.7,v
> retrieving revision 1.47
> diff -u -p -r1.47 man.7
> --- share/man/man7/man.7	7 May 2017 21:44:33 -0000	1.47
> +++ share/man/man7/man.7	24 Jun 2017 07:24:38 -0000
> @@ -466,6 +466,20 @@ See also
>  .Sx \&PP ,
>  and
>  .Sx \&TP .
> +.Ss \&ME
> +End a mailto block.
> +This is a non-standard GNU extension, included only for compatibility.
> +See
> +.Sx \&MT .
> +.Ss \&MT
> +Begin a mailto block.
> +This is a non-standard GNU extension, included only for compatibility.
> +It has the following syntax:
> +.Bd -literal -offset indent
> +.Pf \. Sx \&MT Ar address
> +link description to be shown
> +.Pf \. Sx ME
> +.Ed
>  .Ss \&OP
>  Optional command-line argument.
>  This is a non-standard GNU extension, included only for compatibility.
> Index: usr.bin/mandoc/man_html.c
> ===================================================================
> RCS file: /cvs/src/usr.bin/mandoc/man_html.c,v
> retrieving revision 1.96
> diff -u -p -r1.96 man_html.c
> --- usr.bin/mandoc/man_html.c	8 Jun 2017 12:54:40 -0000	1.96
> +++ usr.bin/mandoc/man_html.c	24 Jun 2017 07:24:38 -0000
> @@ -103,6 +103,8 @@ static	const struct htmlman __mans[MAN_M
>  	{ NULL, NULL }, /* EE */
>  	{ man_UR_pre, NULL }, /* UR */
>  	{ NULL, NULL }, /* UE */
> +	{ man_UR_pre, NULL }, /* MT */
> +	{ NULL, NULL }, /* ME */
>  };
>  static	const struct htmlman *const mans = __mans - MAN_TH;
>  
> @@ -227,6 +229,7 @@ print_man_node(MAN_ARGS)
>  		case MAN_P:   /* reopen .nf in the body.	*/
>  		case MAN_RS:
>  		case MAN_UR:
> +		case MAN_MT:
>  			fillmode(h, MAN_fi);
>  			break;
>  		default:
> @@ -641,11 +644,17 @@ man_RS_pre(MAN_ARGS)
>  static int
>  man_UR_pre(MAN_ARGS)
>  {
> +	char *cp;
>  	n = n->child;
>  	assert(n->type == ROFFT_HEAD);
>  	if (n->child != NULL) {
>  		assert(n->child->type == ROFFT_TEXT);
> -		print_otag(h, TAG_A, "cTh", "Lk", n->child->string);
> +		if (n->tok == MAN_MT) {
> +			mandoc_asprintf(&cp, "mailto:%s", n->child->string);
> +			print_otag(h, TAG_A, "cTh", "Mt", cp);
> +			free(cp);
> +		} else
> +			print_otag(h, TAG_A, "cTh", "Lk", n->child->string);
>  	}
>  
>  	assert(n->next->type == ROFFT_BODY);
> Index: usr.bin/mandoc/man_macro.c
> ===================================================================
> RCS file: /cvs/src/usr.bin/mandoc/man_macro.c,v
> retrieving revision 1.84
> diff -u -p -r1.84 man_macro.c
> --- usr.bin/mandoc/man_macro.c	17 Jun 2017 16:47:29 -0000	1.84
> +++ usr.bin/mandoc/man_macro.c	24 Jun 2017 07:24:38 -0000
> @@ -73,6 +73,8 @@ const	struct man_macro __man_macros[MAN_
>  	{ in_line_eoln, MAN_BSCOPE }, /* EE */
>  	{ blk_exp, MAN_BSCOPE }, /* UR */
>  	{ blk_close, MAN_BSCOPE }, /* UE */
> +	{ blk_exp, MAN_BSCOPE }, /* MT */
> +	{ blk_close, MAN_BSCOPE }, /* ME */
>  };
>  const	struct man_macro *const man_macros = __man_macros - MAN_TH;
>  
> @@ -214,6 +216,9 @@ blk_close(MACRO_PROT_ARGS)
>  		break;
>  	case MAN_UE:
>  		ntok = MAN_UR;
> +		break;
> +	case MAN_ME:
> +		ntok = MAN_MT;
>  		break;
>  	default:
>  		abort();
> Index: usr.bin/mandoc/man_term.c
> ===================================================================
> RCS file: /cvs/src/usr.bin/mandoc/man_term.c,v
> retrieving revision 1.160
> diff -u -p -r1.160 man_term.c
> --- usr.bin/mandoc/man_term.c	17 Jun 2017 13:05:47 -0000	1.160
> +++ usr.bin/mandoc/man_term.c	24 Jun 2017 07:24:38 -0000
> @@ -126,6 +126,8 @@ static	const struct termact __termacts[M
>  	{ pre_literal, NULL, 0 }, /* EE */
>  	{ pre_UR, post_UR, 0 }, /* UR */
>  	{ NULL, NULL, 0 }, /* UE */
> +	{ pre_UR, post_UR, 0 }, /* MT */
> +	{ NULL, NULL, 0 }, /* ME */
>  };
>  static	const struct termact *termacts = __termacts - MAN_TH;
>  
> Index: usr.bin/mandoc/man_validate.c
> ===================================================================
> RCS file: /cvs/src/usr.bin/mandoc/man_validate.c,v
> retrieving revision 1.101
> diff -u -p -r1.101 man_validate.c
> --- usr.bin/mandoc/man_validate.c	17 Jun 2017 22:40:27 -0000	1.101
> +++ usr.bin/mandoc/man_validate.c	24 Jun 2017 07:24:38 -0000
> @@ -87,6 +87,8 @@ static	const v_check __man_valids[MAN_MA
>  	NULL,       /* EE */
>  	post_UR,    /* UR */
>  	NULL,       /* UE */
> +	post_UR,    /* MT */
> +	NULL,       /* ME */
>  };
>  static	const v_check *man_valids = __man_valids - MAN_TH;
>  
> @@ -208,7 +210,7 @@ post_UR(CHKARGS)
>  
>  	if (n->type == ROFFT_HEAD && n->child == NULL)
>  		mandoc_vmsg(MANDOCERR_UR_NOHEAD, man->parse,
> -		    n->line, n->pos, "UR");
> +		    n->line, n->pos, roff_name[n->tok]);
>  	check_part(man, n);
>  }
>  
> Index: usr.bin/mandoc/mandoc.1
> ===================================================================
> RCS file: /cvs/src/usr.bin/mandoc/mandoc.1,v
> retrieving revision 1.125
> diff -u -p -r1.125 mandoc.1
> --- usr.bin/mandoc/mandoc.1	17 Jun 2017 23:06:43 -0000	1.125
> +++ usr.bin/mandoc/mandoc.1	24 Jun 2017 07:24:38 -0000
> @@ -1225,6 +1225,7 @@ A
>  .Ic \&Bl ,
>  .Ic \&D1 ,
>  .Ic \&Dl ,
> +.Ic \&MT ,
>  .Ic \&RS ,
>  or
>  .Ic \&UR
> @@ -1360,6 +1361,8 @@ An empty pair of square brackets is show
>  .It Sy "missing resource identifier, using \(dq\(dq"
>  .Pq man
>  The
> +.Ic \&MT
> +or
>  .Ic \&UR
>  macro is invoked without any argument.
>  An empty pair of angle brackets is shown.
> @@ -1712,7 +1715,7 @@ An
>  .Xr mdoc 7
>  block closing macro, a
>  .Xr man 7
> -.Ic \&RE
> +.Ic \&MT , \&RE

This line should be

  +.Ic \&ME , \&RE ,

>  or
>  .Ic \&UE
>  macro, an
> @@ -1746,7 +1749,7 @@ At the end of the document, an explicit
>  block, a
>  .Xr man 7
>  next-line scope or
> -.Ic \&RS
> +.Ic \&MT , \&RS
>  or
>  .Ic \&UR
>  block, an equation, table, or
> @@ -1918,6 +1921,7 @@ A macro or request is invoked with too m
>  .Bl -dash -offset 2n -width 2n -compact
>  .It
>  .Ic \&Fo ,
> +.Ic \&MT ,
>  .Ic \&PD ,
>  .Ic \&RS ,
>  .Ic \&UR ,
> Index: usr.bin/mandoc/roff.c
> ===================================================================
> RCS file: /cvs/src/usr.bin/mandoc/roff.c,v
> retrieving revision 1.187
> diff -u -p -r1.187 roff.c
> --- usr.bin/mandoc/roff.c	18 Jun 2017 17:35:40 -0000	1.187
> +++ usr.bin/mandoc/roff.c	24 Jun 2017 07:24:39 -0000
> @@ -328,7 +328,7 @@ const char *__roff_name[MAN_MAX + 1] = {
>  	"RE",		"RS",		"DT",		"UC",
>  	"PD",		"AT",		"in",
>  	"OP",		"EX",		"EE",		"UR",
> -	"UE",		NULL
> +	"UE",		"MT",		"ME",		NULL
>  };
>  const	char *const *roff_name = __roff_name;
>  
> Index: usr.bin/mandoc/roff.h
> ===================================================================
> RCS file: /cvs/src/usr.bin/mandoc/roff.h,v
> retrieving revision 1.37
> diff -u -p -r1.37 roff.h
> --- usr.bin/mandoc/roff.h	17 Jun 2017 22:40:27 -0000	1.37
> +++ usr.bin/mandoc/roff.h	24 Jun 2017 07:24:39 -0000
> @@ -473,6 +473,8 @@ enum	roff_tok {
>  	MAN_EE,
>  	MAN_UR,
>  	MAN_UE,
> +	MAN_MT,
> +	MAN_ME,
>  	MAN_MAX
>  };
>  
--
 To unsubscribe send an email to tech+unsubscribe@mandoc.bsd.lv

      reply	other threads:[~2017-06-24 15:06 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-06-23  5:45 Anthony J. Bentley
2017-06-23 13:44 ` Ingo Schwarze
2017-06-24  7:31   ` Anthony J. Bentley
2017-06-24 15:06     ` Ingo Schwarze [this message]

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=20170624150617.GI39761@athene.usta.de \
    --to=schwarze@usta.de \
    --cc=anthony@anjbe.name \
    --cc=tech@mandoc.bsd.lv \
    /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;
as well as URLs for NNTP newsgroup(s).