diff --git a/contrib/mandoc/mandocdb.c b/contrib/mandoc/mandocdb.c --- a/contrib/mandoc/mandocdb.c +++ b/contrib/mandoc/mandocdb.c @@ -258,7 +258,7 @@ { NULL, TYPE_Em, 0 }, /* Em */ { NULL, 0, 0 }, /* Eo */ { NULL, TYPE_Fx, NODE_NOSRC }, /* Fx */ - { NULL, TYPE_Ms, 0 }, /* Ms */ + { NULL, 0, 0 }, /* Ms */ { NULL, 0, 0 }, /* No */ { NULL, 0, 0 }, /* Ns */ { NULL, TYPE_Nx, NODE_NOSRC }, /* Nx */ @@ -307,6 +307,7 @@ { NULL, 0, 0 }, /* %Q */ { NULL, 0, 0 }, /* %U */ { NULL, 0, 0 }, /* Ta */ + { NULL, TYPE_Sl, 0 }, /* Sl */ }; diff --git a/contrib/mandoc/mansearch.h b/contrib/mandoc/mansearch.h --- a/contrib/mandoc/mansearch.h +++ b/contrib/mandoc/mansearch.h @@ -59,7 +59,7 @@ #define TYPE_Nx 0x0000000020000000ULL #define TYPE_Fx 0x0000000040000000ULL #define TYPE_Lk 0x0000000080000000ULL -#define TYPE_Ms 0x0000000100000000ULL +#define TYPE_Sl 0x0000000100000000ULL #define TYPE_Bsx 0x0000000200000000ULL #define TYPE_Dx 0x0000000400000000ULL #define TYPE_Rs 0x0000000800000000ULL diff --git a/contrib/mandoc/mansearch.c b/contrib/mandoc/mansearch.c --- a/contrib/mandoc/mansearch.c +++ b/contrib/mandoc/mansearch.c @@ -57,7 +57,7 @@ "Ic", "Pa", "Cm", "Li", "Em", "Cd", "Va", "Ft", "Tn", "Er", "Ev", "Sy", "Sh", "In", "Ss", "Ox", "An", "Mt", "St", "Bx", "At", "Nx", "Fx", "Lk", - "Ms", "Bsx", "Dx", "Rs", "Vt", "Lb", "Nm", "Nd" + "Sl", "Bsx", "Dx", "Rs", "Vt", "Lb", "Nm", "Nd" }; diff --git a/contrib/mandoc/mdoc_argv.c b/contrib/mandoc/mdoc_argv.c --- a/contrib/mandoc/mdoc_argv.c +++ b/contrib/mandoc/mdoc_argv.c @@ -265,6 +265,7 @@ { ARGSFL_NONE, NULL }, /* %Q */ { ARGSFL_NONE, NULL }, /* %U */ { ARGSFL_NONE, NULL }, /* Ta */ + { ARGSFL_DELIM, NULL }, /* Sl */ }; diff --git a/contrib/mandoc/mdoc_html.c b/contrib/mandoc/mdoc_html.c --- a/contrib/mandoc/mdoc_html.c +++ b/contrib/mandoc/mdoc_html.c @@ -241,6 +241,7 @@ {mdoc__x_pre, mdoc__x_post}, /* %Q */ {mdoc__x_pre, mdoc__x_post}, /* %U */ {NULL, NULL}, /* Ta */ + {NULL, NULL}, /* Sl */ }; diff --git a/contrib/mandoc/mdoc_macro.c b/contrib/mandoc/mdoc_macro.c --- a/contrib/mandoc/mdoc_macro.c +++ b/contrib/mandoc/mdoc_macro.c @@ -200,6 +200,7 @@ { in_line_eoln, MDOC_JOIN }, /* %Q */ { in_line_eoln, 0 }, /* %U */ { phrase_ta, MDOC_CALLABLE | MDOC_PARSED | MDOC_JOIN }, /* Ta */ + { in_line_argn, MDOC_CALLABLE | MDOC_PARSED }, /* Sl */ }; @@ -1403,6 +1404,7 @@ break; case MDOC_Bx: case MDOC_Es: + case MDOC_Sl: case MDOC_Xr: maxargs = 2; break; diff --git a/contrib/mandoc/mdoc_man.c b/contrib/mandoc/mdoc_man.c --- a/contrib/mandoc/mdoc_man.c +++ b/contrib/mandoc/mdoc_man.c @@ -262,6 +262,7 @@ { NULL, NULL, post_percent, NULL, NULL }, /* %Q */ { NULL, NULL, post_percent, NULL, NULL }, /* %U */ { NULL, NULL, NULL, NULL, NULL }, /* Ta */ + { NULL, NULL, NULL, NULL, NULL }, /* Sl */ }; static const struct mdoc_man_act *mdoc_man_act(enum roff_tok); diff --git a/contrib/mandoc/mdoc_markdown.c b/contrib/mandoc/mdoc_markdown.c --- a/contrib/mandoc/mdoc_markdown.c +++ b/contrib/mandoc/mdoc_markdown.c @@ -226,6 +226,7 @@ { NULL, NULL, md_post_pc, NULL, NULL }, /* %Q */ { NULL, md_pre_Lk, md_post_pc, NULL, NULL }, /* %U */ { NULL, NULL, NULL, NULL, NULL }, /* Ta */ + { NULL, NULL, NULL, NULL, NULL }, /* Sl */ }; static const struct md_act *md_act(enum roff_tok); diff --git a/contrib/mandoc/mdoc_state.c b/contrib/mandoc/mdoc_state.c --- a/contrib/mandoc/mdoc_state.c +++ b/contrib/mandoc/mdoc_state.c @@ -157,6 +157,7 @@ NULL, /* %Q */ NULL, /* %U */ NULL, /* Ta */ + NULL, /* Sl */ }; diff --git a/contrib/mandoc/mdoc_term.c b/contrib/mandoc/mdoc_term.c --- a/contrib/mandoc/mdoc_term.c +++ b/contrib/mandoc/mdoc_term.c @@ -116,6 +116,7 @@ static int termp_skip_pre(DECL_ARGS); static int termp_sm_pre(DECL_ARGS); static int termp_pp_pre(DECL_ARGS); +static int termp_sl_pre(DECL_ARGS); static int termp_ss_pre(DECL_ARGS); static int termp_sy_pre(DECL_ARGS); static int termp_tag_pre(DECL_ARGS); @@ -245,6 +246,7 @@ { NULL, termp____post }, /* %Q */ { NULL, termp____post }, /* %U */ { NULL, NULL }, /* Ta */ + { termp_sl_pre, NULL }, /* Sl */ }; static int fn_prio; @@ -1576,6 +1578,21 @@ return 1; } +static int +termp_sl_pre(DECL_ARGS) +{ + + synopsis_pre(p, n); + + if ((n->flags & NODE_SYNPRETTY) && (n->flags & NODE_LINE)) { + term_fontpush(p, TERMFONT_BOLD); + term_word(p, "sysctl:"); + } + term_fontpush(p, TERMFONT_UNDER); + + return 1; +} + static int termp_in_pre(DECL_ARGS) { diff --git a/contrib/mandoc/roff.h b/contrib/mandoc/roff.h --- a/contrib/mandoc/roff.h +++ b/contrib/mandoc/roff.h @@ -437,6 +437,7 @@ MDOC__Q, MDOC__U, MDOC_Ta, + MDOC_Sl, MDOC_MAX, MAN_TH, MAN_SH, diff --git a/contrib/mandoc/roff.c b/contrib/mandoc/roff.c --- a/contrib/mandoc/roff.c +++ b/contrib/mandoc/roff.c @@ -355,6 +355,7 @@ "Lk", "Mt", "Brq", "Bro", "Brc", "%C", "Es", "En", "Dx", "%Q", "%U", "Ta", + "Sl", NULL, "TH", "SH", "SS", "TP", "TQ", diff --git a/share/man/man4/xhci.4 b/share/man/man4/xhci.4 --- a/share/man/man4/xhci.4 +++ b/share/man/man4/xhci.4 @@ -32,6 +32,7 @@ .Nd USB eXtensible Host Controller driver .Sh SYNOPSIS .Cd "device xhci" +.Sl hw.usb.xhci.debug .Sh DESCRIPTION The .Nm @@ -63,7 +64,7 @@ .Xr loader 8 tunables: .Bl -tag -width indent -.It Va hw.usb.xhci.debug +.It Sl hw.usb.xhci.debug Debug output level, where 0 is debugging disabled and larger values increase debug message verbosity. Default is 0. diff --git a/usr.bin/man/man.sh b/usr.bin/man/man.sh --- a/usr.bin/man/man.sh +++ b/usr.bin/man/man.sh @@ -532,7 +532,14 @@ done unset IFS - # Nothing? Well, we are done then. + # Nothing? Try sysctl search using apropos. + path=$(apropos -w Sl=$1 2>/dev/null) + if [ $? = 0 ]; then + found_page=yes + man_find_and_display $path + fi + + # Still nothing? Well, we are done then. if [ -z "$found_page" ]; then echo "No manual entry for $1" >&2 ret=1