aboutsummaryrefslogtreecommitdiff
path: root/mdoc_validate.c
diff options
context:
space:
mode:
authorAlexander Ziaee <ziaee@FreeBSD.org>2025-06-25 16:02:24 +0000
committerAlexander Ziaee <ziaee@FreeBSD.org>2025-06-25 16:09:31 +0000
commit7a0bec970311f9aae35a7cb35b93e3c104e4e06b (patch)
tree86314f8359ea72b3cc7bab00b22e1549c104efd9 /mdoc_validate.c
parent393b94eb9f5127ab957c2ef005a05710f0b6f49f (diff)
Diffstat (limited to 'mdoc_validate.c')
-rw-r--r--mdoc_validate.c37
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;
}