[prev in list] [next in list] [prev in thread] [next in thread] 

List:       openbsd-tech
Subject:    Re: compare memcmp with 0
From:       Ingo Schwarze <schwarze () usta ! de>
Date:       2014-06-20 14:54:15
Message-ID: 20140620145415.GA1542 () iris ! usta ! de
[Download RAW message or body]

Hi Theo,

Theo de Raadt wrote on Thu, Jun 19, 2014 at 09:58:01PM -0600:

> It could be argued that the bcmp manual page does a poor job
> documenting this.  It should use the mandoc blink tag.

OK?

It's not perfect yet because when you nest blink tags, it already
switches back to non-blinking mode after you close the inner block,
not after closing the outer block as it should.
But that can be fixed later, in the tree.

Using this requires

  export LESS=-R

or something equivalent, depending on your setup, of course.

Maybe we should make that the default.

I guess i need to submit a similar patch to groff, as well.

Yours,
  Ingo


Index: share/man/man7/mdoc.7
===================================================================
RCS file: /cvs/src/share/man/man7/mdoc.7,v
retrieving revision 1.110
diff -u -p -r1.110 mdoc.7
--- share/man/man7/mdoc.7	30 Mar 2014 23:57:43 -0000	1.110
+++ share/man/man7/mdoc.7	20 Jun 2014 14:43:02 -0000
@@ -534,6 +534,7 @@ in the alphabetical
 .It Sx \&Bq , \&Bo , \&Bc Ta enclose in square brackets: Bq text
 .It Sx \&Brq , \&Bro , \&Brc Ta enclose in curly braces: Brq text
 .It Sx \&Aq , \&Ao , \&Ac Ta enclose in angle brackets: Aq text
+.It Sx \&Blq , \&Blo , \&Blc Ta blink: Blq text
 .It Sx \&Eo , \&Ec Ta generic enclosure
 .El
 .Ss Text production
@@ -1077,6 +1078,16 @@ and
 .Pp
 See also
 .Sx \&Bo .
+.Ss \&Blc
+Close a
+.Sx \&Blo
+block.
+Does not have any tail arguments.
+.Ss \&Blo
+Begin a blinking block.
+Does not have any head arguments.
+.Ss \&Blq
+Makes its arguments blink.
 .Ss \&Brc
 Close a
 .Sx \&Bro
@@ -2924,6 +2935,7 @@ end of the line.
 .Bl -column "MacroX" "CallableX" "ParsedX" -offset indent
 .It Em Macro Ta Em Callable Ta Em Parsed
 .It Sx \&Aq  Ta    Yes      Ta    Yes
+.It Sx \&Blq Ta    Yes      Ta    Yes
 .It Sx \&Bq  Ta    Yes      Ta    Yes
 .It Sx \&Brq Ta    Yes      Ta    Yes
 .It Sx \&D1  Ta    \&No     Ta    \&Yes
Index: usr.bin/mandoc/mdoc.c
===================================================================
RCS file: /cvs/src/usr.bin/mandoc/mdoc.c,v
retrieving revision 1.104
diff -u -p -r1.104 mdoc.c
--- usr.bin/mandoc/mdoc.c	25 Apr 2014 14:10:59 -0000	1.104
+++ usr.bin/mandoc/mdoc.c	20 Jun 2014 14:43:02 -0000
@@ -62,7 +62,8 @@ const	char *const __mdoc_macronames[MDOC
 	"Lk",		"Mt",		"Brq",		"Bro",
 	"Brc",		"%C",		"Es",		"En",
 	"Dx",		"%Q",		"br",		"sp",
-	"%U",		"Ta",		"ll",
+	"%U",		"Ta",		"ll",		"Blo",
+	"Blc",		"Blq",
 	};
 
 const	char *const __mdoc_argnames[MDOC_ARG_MAX] = {
Index: usr.bin/mandoc/mdoc.h
===================================================================
RCS file: /cvs/src/usr.bin/mandoc/mdoc.h,v
retrieving revision 1.53
diff -u -p -r1.53 mdoc.h
--- usr.bin/mandoc/mdoc.h	20 Apr 2014 16:44:44 -0000	1.53
+++ usr.bin/mandoc/mdoc.h	20 Jun 2014 14:43:02 -0000
@@ -141,6 +141,9 @@ enum	mdoct {
 	MDOC__U,
 	MDOC_Ta,
 	MDOC_ll,
+	MDOC_Blo,
+	MDOC_Blc,
+	MDOC_Blq,
 	MDOC_MAX
 };
 
Index: usr.bin/mandoc/mdoc_argv.c
===================================================================
RCS file: /cvs/src/usr.bin/mandoc/mdoc_argv.c,v
retrieving revision 1.50
diff -u -p -r1.50 mdoc_argv.c
--- usr.bin/mandoc/mdoc_argv.c	23 Apr 2014 21:06:33 -0000	1.50
+++ usr.bin/mandoc/mdoc_argv.c	20 Jun 2014 14:43:03 -0000
@@ -264,6 +264,9 @@ static	const struct mdocarg mdocargs[MDO
 	{ ARGSFL_NONE, NULL }, /* %U */
 	{ ARGSFL_NONE, NULL }, /* Ta */
 	{ ARGSFL_NONE, NULL }, /* ll */
+	{ ARGSFL_NONE, NULL }, /* Blo */
+	{ ARGSFL_DELIM, NULL }, /* Blc */
+	{ ARGSFL_DELIM, NULL }, /* Blq */
 };
 
 
Index: usr.bin/mandoc/mdoc_html.c
===================================================================
RCS file: /cvs/src/usr.bin/mandoc/mdoc_html.c,v
retrieving revision 1.73
diff -u -p -r1.73 mdoc_html.c
--- usr.bin/mandoc/mdoc_html.c	23 Apr 2014 16:07:06 -0000	1.73
+++ usr.bin/mandoc/mdoc_html.c	20 Jun 2014 14:43:03 -0000
@@ -242,6 +242,9 @@ static	const struct htmlmdoc mdocs[MDOC_
 	{mdoc__x_pre, mdoc__x_post}, /* %U */
 	{NULL, NULL}, /* Ta */
 	{mdoc_ll_pre, NULL}, /* ll */
+	{mdoc_quote_pre, mdoc_quote_post}, /* Blo */
+	{NULL, NULL}, /* Blc */
+	{mdoc_quote_pre, mdoc_quote_post}, /* Blq */
 };
 
 static	const char * const lists[LIST_MAX] = {
@@ -2063,6 +2066,12 @@ mdoc_quote_pre(MDOC_ARGS)
 	case MDOC_Aq:
 		print_text(h, "\\(la");
 		break;
+	case MDOC_Blo:
+		/* FALLTHROUGH */
+	case MDOC_Blq:
+		PAIR_CLASS_INIT(&tag, "blink");
+		print_otag(h, TAG_SPAN, 1, &tag);
+		break;
 	case MDOC_Bro:
 		/* FALLTHROUGH */
 	case MDOC_Brq:
@@ -2131,6 +2140,10 @@ mdoc_quote_post(MDOC_ARGS)
 		/* FALLTHROUGH */
 	case MDOC_Aq:
 		print_text(h, "\\(ra");
+		/* FALLTHROUGH */
+	case MDOC_Blo:
+		/* FALLTHROUGH */
+	case MDOC_Blq:
 		break;
 	case MDOC_Bro:
 		/* FALLTHROUGH */
Index: usr.bin/mandoc/mdoc_macro.c
===================================================================
RCS file: /cvs/src/usr.bin/mandoc/mdoc_macro.c,v
retrieving revision 1.88
diff -u -p -r1.88 mdoc_macro.c
--- usr.bin/mandoc/mdoc_macro.c	20 Apr 2014 16:44:44 -0000	1.88
+++ usr.bin/mandoc/mdoc_macro.c	20 Jun 2014 14:43:03 -0000
@@ -208,6 +208,11 @@ const	struct mdoc_macro __mdoc_macros[MD
 	{ in_line_eoln, 0 }, /* %U */
 	{ phrase_ta, MDOC_CALLABLE | MDOC_PARSED | MDOC_JOIN }, /* Ta */
 	{ in_line_eoln, 0 }, /* ll */
+	{ blk_part_exp, MDOC_CALLABLE | MDOC_PARSED |
+			MDOC_EXPLICIT | MDOC_JOIN }, /* Blo */
+	{ blk_exp_close, MDOC_CALLABLE | MDOC_PARSED |
+			 MDOC_EXPLICIT | MDOC_JOIN }, /* Blc */
+	{ blk_part_imp, MDOC_CALLABLE | MDOC_PARSED | MDOC_JOIN }, /* Blq */
 };
 
 const	struct mdoc_macro * const mdoc_macros = __mdoc_macros;
Index: usr.bin/mandoc/mdoc_man.c
===================================================================
RCS file: /cvs/src/usr.bin/mandoc/mdoc_man.c,v
retrieving revision 1.62
diff -u -p -r1.62 mdoc_man.c
--- usr.bin/mandoc/mdoc_man.c	20 Apr 2014 19:39:35 -0000	1.62
+++ usr.bin/mandoc/mdoc_man.c	20 Jun 2014 14:43:04 -0000
@@ -239,6 +239,9 @@ static	const struct manact manacts[MDOC_
 	{ NULL, NULL, post_percent, NULL, NULL }, /* %U */
 	{ NULL, NULL, NULL, NULL, NULL }, /* Ta */
 	{ NULL, pre_ll, post_sp, NULL, NULL }, /* ll */
+	{ NULL, NULL, NULL, NULL, NULL }, /* Blo */
+	{ NULL, NULL, NULL, NULL, NULL }, /* Blc */
+	{ NULL, NULL, NULL, NULL, NULL }, /* Blq */
 	{ NULL, NULL, NULL, NULL, NULL }, /* ROOT */
 };
 
Index: usr.bin/mandoc/mdoc_term.c
===================================================================
RCS file: /cvs/src/usr.bin/mandoc/mdoc_term.c,v
retrieving revision 1.169
diff -u -p -r1.169 mdoc_term.c
--- usr.bin/mandoc/mdoc_term.c	23 Apr 2014 16:07:06 -0000	1.169
+++ usr.bin/mandoc/mdoc_term.c	20 Jun 2014 14:43:04 -0000
@@ -243,6 +243,9 @@ static	const struct termact termacts[MDO
 	{ NULL, termp____post }, /* %U */
 	{ NULL, NULL }, /* Ta */
 	{ termp_ll_pre, NULL }, /* ll */
+	{ termp_quote_pre, termp_quote_post }, /* Blo */
+	{ NULL, NULL }, /* Blc */
+	{ termp_quote_pre, termp_quote_post }, /* Blq */
 };
 
 
@@ -1837,6 +1840,11 @@ termp_quote_pre(DECL_ARGS)
 	case MDOC_Aq:
 		term_word(p, "<");
 		break;
+	case MDOC_Blo:
+		/* FALLTHROUGH */
+	case MDOC_Blq:
+		term_word(p, "\x1B[5m");
+		break;
 	case MDOC_Bro:
 		/* FALLTHROUGH */
 	case MDOC_Brq:
@@ -1900,6 +1908,11 @@ termp_quote_post(DECL_ARGS)
 		/* FALLTHROUGH */
 	case MDOC_Aq:
 		term_word(p, ">");
+		break;
+	case MDOC_Blo:
+		/* FALLTHROUGH */
+	case MDOC_Blq:
+		term_word(p, "\x1B[0m");
 		break;
 	case MDOC_Bro:
 		/* FALLTHROUGH */
Index: usr.bin/mandoc/mdoc_validate.c
===================================================================
RCS file: /cvs/src/usr.bin/mandoc/mdoc_validate.c,v
retrieving revision 1.132
diff -u -p -r1.132 mdoc_validate.c
--- usr.bin/mandoc/mdoc_validate.c	23 Apr 2014 21:06:33 -0000	1.132
+++ usr.bin/mandoc/mdoc_validate.c	20 Jun 2014 14:43:04 -0000
@@ -299,6 +299,9 @@ static	const struct valids mdoc_valids[M
 	{ NULL, posts_text1 },			/* %U */
 	{ NULL, NULL },				/* Ta */
 	{ NULL, NULL },				/* ll */
+	{ NULL, NULL },				/* Blo */
+	{ NULL, NULL },				/* Blc */
+	{ NULL, NULL },				/* Blq */
 };
 
 #define	RSORD_MAX 14 /* Number of `Rs' blocks. */

[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic