diff options
author | Alexander Ziaee <ziaee@FreeBSD.org> | 2025-06-25 16:02:24 +0000 |
---|---|---|
committer | Alexander Ziaee <ziaee@FreeBSD.org> | 2025-06-25 16:09:31 +0000 |
commit | 7a0bec970311f9aae35a7cb35b93e3c104e4e06b (patch) | |
tree | 86314f8359ea72b3cc7bab00b22e1549c104efd9 /mdoc_validate.c | |
parent | 393b94eb9f5127ab957c2ef005a05710f0b6f49f (diff) |
Diffstat (limited to 'mdoc_validate.c')
-rw-r--r-- | mdoc_validate.c | 37 |
1 files changed, 29 insertions, 8 deletions
diff --git a/mdoc_validate.c b/mdoc_validate.c index c4c8aecfa71e..659ed5fba336 100644 --- a/mdoc_validate.c +++ b/mdoc_validate.c @@ -1,6 +1,6 @@ -/* $Id: mdoc_validate.c,v 1.391 2022/06/08 16:31:46 schwarze Exp $ */ +/* $Id: mdoc_validate.c,v 1.393 2025/06/05 12:38:26 schwarze Exp $ */ /* - * Copyright (c) 2010-2021 Ingo Schwarze <schwarze@openbsd.org> + * Copyright (c) 2010-2022, 2025 Ingo Schwarze <schwarze@openbsd.org> * Copyright (c) 2008-2012 Kristaps Dzonsons <kristaps@bsd.lv> * Copyright (c) 2010 Joerg Sonnenberger <joerg@netbsd.org> * @@ -991,18 +991,39 @@ post_ex(POST_ARGS) static void post_lb(POST_ARGS) { - struct roff_node *n; - const char *p; + struct roff_node *n, *nch; + const char *ccp; + char *cp; post_delim_nb(mdoc); n = mdoc->last; - assert(n->child->type == ROFFT_TEXT); + nch = n->child; + assert(nch->type == ROFFT_TEXT); mdoc->next = ROFF_NEXT_CHILD; - if ((p = mdoc_a2lib(n->child->string)) != NULL) { + if (n->sec == SEC_SYNOPSIS) { + roff_word_alloc(mdoc, n->line, n->pos, "/*"); + mdoc->last->flags = NODE_NOSRC; + while (nch != NULL) { + roff_word_alloc(mdoc, n->line, n->pos, "-l"); + mdoc->last->flags = NODE_DELIMO | NODE_NOSRC; + mdoc->last = nch; + assert(nch->type == ROFFT_TEXT); + cp = nch->string; + if (strncmp(cp, "lib", 3) == 0) + memmove(cp, cp + 3, strlen(cp) - 3 + 1); + nch = nch->next; + } + roff_word_alloc(mdoc, n->line, n->pos, "*/"); + mdoc->last->flags = NODE_NOSRC; + mdoc->last = n; + return; + } + + if ((ccp = mdoc_a2lib(n->child->string)) != NULL) { n->child->flags |= NODE_NOPRT; - roff_word_alloc(mdoc, n->line, n->pos, p); + roff_word_alloc(mdoc, n->line, n->pos, ccp); mdoc->last->flags = NODE_NOSRC; mdoc->last = n; return; @@ -3057,6 +3078,6 @@ macro2len(enum roff_tok macro) return 10; default: break; - }; + } return 0; } |