[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