version 1.371, 2019/03/04 13:01:57 |
version 1.376, 2020/01/19 16:44:50 |
|
|
/* $Id$ */ |
/* $Id$ */ |
/* |
/* |
* Copyright (c) 2008-2012 Kristaps Dzonsons <kristaps@bsd.lv> |
* Copyright (c) 2008-2012 Kristaps Dzonsons <kristaps@bsd.lv> |
* Copyright (c) 2010-2019 Ingo Schwarze <schwarze@openbsd.org> |
* Copyright (c) 2010-2020 Ingo Schwarze <schwarze@openbsd.org> |
* Copyright (c) 2010 Joerg Sonnenberger <joerg@netbsd.org> |
* Copyright (c) 2010 Joerg Sonnenberger <joerg@netbsd.org> |
* |
* |
* Permission to use, copy, modify, and distribute this software for any |
* Permission to use, copy, modify, and distribute this software for any |
Line 64 static size_t macro2len(enum roff_tok); |
|
Line 64 static size_t macro2len(enum roff_tok); |
|
static void rewrite_macro2len(struct roff_man *, char **); |
static void rewrite_macro2len(struct roff_man *, char **); |
static int similar(const char *, const char *); |
static int similar(const char *, const char *); |
|
|
static void post_abort(POST_ARGS); |
static void post_abort(POST_ARGS) __attribute__((__noreturn__)); |
static void post_an(POST_ARGS); |
static void post_an(POST_ARGS); |
static void post_an_norm(POST_ARGS); |
static void post_an_norm(POST_ARGS); |
static void post_at(POST_ARGS); |
static void post_at(POST_ARGS); |
Line 1186 post_fname(POST_ARGS) |
|
Line 1186 post_fname(POST_ARGS) |
|
size_t pos; |
size_t pos; |
|
|
n = mdoc->last->child; |
n = mdoc->last->child; |
pos = strcspn(n->string, "()"); |
cp = n->string; |
cp = n->string + pos; |
if (*cp == '(') { |
if ( ! (cp[0] == '\0' || (cp[0] == '(' && cp[1] == '*'))) |
if (cp[strlen(cp + 1)] == ')') |
mandoc_msg(MANDOCERR_FN_PAREN, n->line, n->pos + pos, |
return; |
"%s", n->string); |
pos = 0; |
|
} else { |
|
pos = strcspn(cp, "()"); |
|
if (cp[pos] == '\0') |
|
return; |
|
} |
|
mandoc_msg(MANDOCERR_FN_PAREN, n->line, n->pos + pos, "%s", cp); |
} |
} |
|
|
static void |
static void |
Line 1903 post_root(POST_ARGS) |
|
Line 1909 post_root(POST_ARGS) |
|
/* Add missing prologue data. */ |
/* Add missing prologue data. */ |
|
|
if (mdoc->meta.date == NULL) |
if (mdoc->meta.date == NULL) |
mdoc->meta.date = mdoc->quick ? mandoc_strdup("") : |
mdoc->meta.date = mandoc_normdate(NULL, NULL); |
mandoc_normdate(mdoc, NULL, 0, 0); |
|
|
|
if (mdoc->meta.title == NULL) { |
if (mdoc->meta.title == NULL) { |
mandoc_msg(MANDOCERR_DT_NOTITLE, 0, 0, "EOF"); |
mandoc_msg(MANDOCERR_DT_NOTITLE, 0, 0, "EOF"); |
|
|
post_dd(POST_ARGS) |
post_dd(POST_ARGS) |
{ |
{ |
struct roff_node *n; |
struct roff_node *n; |
char *datestr; |
|
|
|
n = mdoc->last; |
n = mdoc->last; |
n->flags |= NODE_NOPRT; |
n->flags |= NODE_NOPRT; |
Line 2519 post_dd(POST_ARGS) |
|
Line 2523 post_dd(POST_ARGS) |
|
mandoc_msg(MANDOCERR_PROLOG_ORDER, |
mandoc_msg(MANDOCERR_PROLOG_ORDER, |
n->line, n->pos, "Dd after Os"); |
n->line, n->pos, "Dd after Os"); |
|
|
if (n->child == NULL || n->child->string[0] == '\0') { |
if (mdoc->quick && n != NULL) |
mdoc->meta.date = mdoc->quick ? mandoc_strdup("") : |
mdoc->meta.date = mandoc_strdup(""); |
mandoc_normdate(mdoc, NULL, n->line, n->pos); |
else |
return; |
mdoc->meta.date = mandoc_normdate(n->child, n); |
} |
|
|
|
datestr = NULL; |
|
deroff(&datestr, n); |
|
if (mdoc->quick) |
|
mdoc->meta.date = datestr; |
|
else { |
|
mdoc->meta.date = mandoc_normdate(mdoc, |
|
datestr, n->line, n->pos); |
|
free(datestr); |
|
} |
|
} |
} |
|
|
static void |
static void |