version 1.350, 2022/07/06 16:05:40 |
version 1.353, 2025/01/25 00:22:28 |
|
|
/* $Id$ */ |
/* $Id$ */ |
/* |
/* |
* Copyright (c) 2014-2022 Ingo Schwarze <schwarze@openbsd.org> |
* Copyright (c) 2014-2022, 2025 Ingo Schwarze <schwarze@openbsd.org> |
* Copyright (c) 2008-2011, 2014 Kristaps Dzonsons <kristaps@bsd.lv> |
* Copyright (c) 2008-2011, 2014 Kristaps Dzonsons <kristaps@bsd.lv> |
* Copyright (c) 2022 Anna Vyalkova <cyber@sysrq.in> |
* Copyright (c) 2022 Anna Vyalkova <cyber@sysrq.in> |
* |
* |
Line 1456 mdoc_rs_pre(MDOC_ARGS) |
|
Line 1456 mdoc_rs_pre(MDOC_ARGS) |
|
case ROFFT_BODY: |
case ROFFT_BODY: |
if (n->sec == SEC_SEE_ALSO) |
if (n->sec == SEC_SEE_ALSO) |
print_otag(h, TAG_P, "c", "Pp"); |
print_otag(h, TAG_P, "c", "Pp"); |
print_otag(h, TAG_CITE, "c", "Rs"); |
print_otag(h, TAG_SPAN, "c", "Rs"); |
break; |
break; |
default: |
default: |
abort(); |
abort(); |
|
|
mdoc__x_pre(MDOC_ARGS) |
mdoc__x_pre(MDOC_ARGS) |
{ |
{ |
struct roff_node *nn; |
struct roff_node *nn; |
const char *cattr; |
const unsigned char *cp; |
|
const char *cattr, *arg; |
|
char *url; |
enum htmltag t; |
enum htmltag t; |
|
|
t = TAG_SPAN; |
t = TAG_SPAN; |
|
arg = n->child->string; |
|
|
switch (n->tok) { |
switch (n->tok) { |
case MDOC__A: |
case MDOC__A: |
Line 1507 mdoc__x_pre(MDOC_ARGS) |
|
Line 1510 mdoc__x_pre(MDOC_ARGS) |
|
print_text(h, "and"); |
print_text(h, "and"); |
break; |
break; |
case MDOC__B: |
case MDOC__B: |
t = TAG_I; |
t = TAG_CITE; |
cattr = "RsB"; |
cattr = "RsB"; |
break; |
break; |
case MDOC__C: |
case MDOC__C: |
Line 1537 mdoc__x_pre(MDOC_ARGS) |
|
Line 1540 mdoc__x_pre(MDOC_ARGS) |
|
cattr = "RsQ"; |
cattr = "RsQ"; |
break; |
break; |
case MDOC__R: |
case MDOC__R: |
|
if (strncmp(arg, "RFC ", 4) == 0) { |
|
cp = arg += 4; |
|
while (isdigit(*cp)) |
|
cp++; |
|
if (*cp == '\0') { |
|
mandoc_asprintf(&url, "https://www.rfc-" |
|
"editor.org/rfc/rfc%s.html", arg); |
|
print_otag(h, TAG_A, "ch", "RsR", url); |
|
free(url); |
|
return 1; |
|
} |
|
} |
cattr = "RsR"; |
cattr = "RsR"; |
break; |
break; |
case MDOC__T: |
case MDOC__T: |
cattr = "RsT"; |
t = TAG_CITE; |
|
if (n->parent != NULL && n->parent->tok == MDOC_Rs && |
|
n->parent->norm->Rs.quote_T) { |
|
print_text(h, "\\(lq"); |
|
h->flags |= HTML_NOSPACE; |
|
cattr = "RsT"; |
|
} else |
|
cattr = "RsB"; |
break; |
break; |
case MDOC__U: |
case MDOC__U: |
print_otag(h, TAG_A, "ch", "RsU", n->child->string); |
print_otag(h, TAG_A, "ch", "RsU", arg); |
return 1; |
return 1; |
case MDOC__V: |
case MDOC__V: |
cattr = "RsV"; |
cattr = "RsV"; |
Line 1561 mdoc__x_post(MDOC_ARGS) |
|
Line 1583 mdoc__x_post(MDOC_ARGS) |
|
{ |
{ |
struct roff_node *nn; |
struct roff_node *nn; |
|
|
if (n->tok == MDOC__A && |
switch (n->tok) { |
(nn = roff_node_next(n)) != NULL && nn->tok == MDOC__A && |
case MDOC__A: |
((nn = roff_node_next(nn)) == NULL || nn->tok != MDOC__A) && |
if ((nn = roff_node_next(n)) != NULL && nn->tok == MDOC__A && |
((nn = roff_node_prev(n)) == NULL || nn->tok != MDOC__A)) |
((nn = roff_node_next(nn)) == NULL || nn->tok != MDOC__A) && |
return; |
((nn = roff_node_prev(n)) == NULL || nn->tok != MDOC__A)) |
|
return; |
/* TODO: %U */ |
break; |
|
case MDOC__T: |
|
if (n->parent != NULL && n->parent->tok == MDOC_Rs && |
|
n->parent->norm->Rs.quote_T) { |
|
h->flags |= HTML_NOSPACE; |
|
print_text(h, "\\(rq"); |
|
} |
|
break; |
|
default: |
|
break; |
|
} |
if (n->parent == NULL || n->parent->tok != MDOC_Rs) |
if (n->parent == NULL || n->parent->tok != MDOC_Rs) |
return; |
return; |
|
|