diff options
author | 2018-08-10 20:40:43 +0000 | |
---|---|---|
committer | 2018-08-10 20:40:43 +0000 | |
commit | 9b153f259f536adb3bb945c85622ab4440a23396 (patch) | |
tree | ca90ed9a61134f4c696cab46d4ba58e764320d2a | |
parent | sync (diff) | |
download | wireguard-openbsd-9b153f259f536adb3bb945c85622ab4440a23396.tar.xz wireguard-openbsd-9b153f259f536adb3bb945c85622ab4440a23396.zip |
The groff man-ext macros define fonts CB, CI, and CR,
and some groff manual pages actually use them in .ft requests.
It's easy enough to handle these .ft requests in mandoc, too.
-rw-r--r-- | share/man/man7/roff.7 | 8 | ||||
-rw-r--r-- | usr.bin/mandoc/roff_term.c | 11 | ||||
-rw-r--r-- | usr.bin/mandoc/roff_validate.c | 10 |
3 files changed, 18 insertions, 11 deletions
diff --git a/share/man/man7/roff.7 b/share/man/man7/roff.7 index 5721081b519..4c45df81d8a 100644 --- a/share/man/man7/roff.7 +++ b/share/man/man7/roff.7 @@ -1,4 +1,4 @@ -.\" $OpenBSD: roff.7,v 1.77 2018/08/10 04:41:21 schwarze Exp $ +.\" $OpenBSD: roff.7,v 1.78 2018/08/10 20:40:43 schwarze Exp $ .\" .\" Copyright (c) 2010, 2011, 2012 Kristaps Dzonsons <kristaps@bsd.lv> .\" Copyright (c) 2010-2018 Ingo Schwarze <schwarze@openbsd.org> @@ -920,15 +920,15 @@ The following .Ar font arguments are supported: .Bl -tag -width 4n -offset indent -.It Cm B , BI , 3 , 4 +.It Cm B , BI , CB , 3 , 4 switches to .Sy bold font -.It Cm I , 2 +.It Cm I , CI , 2 switches to .Em underlined font -.It Cm R , CW , 1 +.It Cm R , CR , CW , 1 switches to normal font .It Cm P No "or no argument" switches back to the previous font diff --git a/usr.bin/mandoc/roff_term.c b/usr.bin/mandoc/roff_term.c index 62bef80ee79..72a339db29e 100644 --- a/usr.bin/mandoc/roff_term.c +++ b/usr.bin/mandoc/roff_term.c @@ -1,6 +1,6 @@ -/* $OpenBSD: roff_term.c,v 1.14 2017/06/24 14:38:28 schwarze Exp $ */ +/* $OpenBSD: roff_term.c,v 1.15 2018/08/10 20:40:43 schwarze Exp $ */ /* - * Copyright (c) 2010, 2014, 2015, 2017 Ingo Schwarze <schwarze@openbsd.org> + * Copyright (c) 2010,2014,2015,2017,2018 Ingo Schwarze <schwarze@openbsd.org> * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -111,7 +111,12 @@ roff_term_pre_ce(ROFF_TERM_ARGS) static void roff_term_pre_ft(ROFF_TERM_ARGS) { - switch (*n->child->string) { + const char *cp; + + if (*(cp = n->child->string) == 'C') + cp++; + + switch (*cp) { case '4': case '3': case 'B': diff --git a/usr.bin/mandoc/roff_validate.c b/usr.bin/mandoc/roff_validate.c index 8a4f5ae6efc..40b69d0dff8 100644 --- a/usr.bin/mandoc/roff_validate.c +++ b/usr.bin/mandoc/roff_validate.c @@ -1,6 +1,6 @@ -/* $OpenBSD: roff_validate.c,v 1.9 2017/06/14 22:50:37 schwarze Exp $ */ +/* $OpenBSD: roff_validate.c,v 1.10 2018/08/10 20:40:43 schwarze Exp $ */ /* - * Copyright (c) 2010, 2017 Ingo Schwarze <schwarze@openbsd.org> + * Copyright (c) 2010, 2017, 2018 Ingo Schwarze <schwarze@openbsd.org> * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -18,6 +18,7 @@ #include <assert.h> #include <stddef.h> +#include <string.h> #include "mandoc.h" #include "roff.h" @@ -58,7 +59,7 @@ roff_validate(struct roff_man *man) static void roff_valid_ft(ROFF_VALID_ARGS) { - char *cp; + const char *cp; if (n->child == NULL) { man->next = ROFF_NEXT_CHILD; @@ -84,7 +85,8 @@ roff_valid_ft(ROFF_VALID_ARGS) return; break; case 'C': - if (cp[1] == 'W' && cp[2] == '\0') + if (cp[1] != '\0' && cp[2] == '\0' && + strchr("BIRW", cp[1]) != NULL) return; break; default: |