version 1.9, 2011/10/24 21:47:59 |
version 1.11, 2012/07/07 13:46:59 |
|
|
/* $Id$ */ |
/* $Id$ */ |
/* |
/* |
* Copyright (c) 2011 Ingo Schwarze <schwarze@openbsd.org> |
* Copyright (c) 2011, 2012 Ingo Schwarze <schwarze@openbsd.org> |
* |
* |
* Permission to use, copy, modify, and distribute this software for any |
* Permission to use, copy, modify, and distribute this software for any |
* purpose with or without fee is hereby granted, provided that the above |
* purpose with or without fee is hereby granted, provided that the above |
|
|
#include <string.h> |
#include <string.h> |
|
|
#include "mandoc.h" |
#include "mandoc.h" |
|
#include "out.h" |
#include "man.h" |
#include "man.h" |
#include "mdoc.h" |
#include "mdoc.h" |
#include "main.h" |
#include "main.h" |
Line 68 static int pre_sect(DECL_ARGS); |
|
Line 69 static int pre_sect(DECL_ARGS); |
|
static int pre_ux(DECL_ARGS); |
static int pre_ux(DECL_ARGS); |
static int pre_xr(DECL_ARGS); |
static int pre_xr(DECL_ARGS); |
static void print_word(struct mman *, const char *); |
static void print_word(struct mman *, const char *); |
|
static void print_offs(struct mman *, const char *); |
static void print_node(DECL_ARGS); |
static void print_node(DECL_ARGS); |
|
|
static const struct manact manacts[MDOC_MAX + 1] = { |
static const struct manact manacts[MDOC_MAX + 1] = { |
Line 245 print_word(struct mman *mm, const char *s) |
|
Line 247 print_word(struct mman *mm, const char *s) |
|
} |
} |
} |
} |
|
|
|
static void |
|
print_offs(struct mman *mm, const char *v) |
|
{ |
|
char buf[24]; |
|
struct roffsu su; |
|
size_t sz; |
|
|
|
if (NULL == v || '\0' == *v || 0 == strcmp(v, "left")) |
|
sz = 0; |
|
else if (0 == strcmp(v, "indent")) |
|
sz = 6; |
|
else if (0 == strcmp(v, "indent-two")) |
|
sz = 12; |
|
else if (a2roffsu(v, &su, SCALE_MAX)) { |
|
print_word(mm, v); |
|
return; |
|
} else |
|
sz = strlen(v); |
|
|
|
snprintf(buf, sizeof(buf), "%ldn", sz); |
|
print_word(mm, buf); |
|
} |
|
|
void |
void |
man_man(void *arg, const struct man *man) |
man_man(void *arg, const struct man *man) |
{ |
{ |
Line 290 print_node(DECL_ARGS) |
|
Line 315 print_node(DECL_ARGS) |
|
* This makes the page structure be more consistent. |
* This makes the page structure be more consistent. |
*/ |
*/ |
prev = n->prev ? n->prev : n->parent; |
prev = n->prev ? n->prev : n->parent; |
if (prev && prev->line < n->line) |
if (prev && prev->line < n->line && MDOC_Ns != prev->tok) |
mm->need_nl = 1; |
mm->need_nl = 1; |
|
|
act = NULL; |
act = NULL; |
Line 379 post_enc(DECL_ARGS) |
|
Line 404 post_enc(DECL_ARGS) |
|
return; |
return; |
mm->need_space = 0; |
mm->need_space = 0; |
print_word(mm, suffix); |
print_word(mm, suffix); |
|
if (MDOC_Fl == n->tok && 0 == n->nchild) |
|
mm->need_space = 0; |
} |
} |
|
|
/* |
/* |
|
|
pre_bd(DECL_ARGS) |
pre_bd(DECL_ARGS) |
{ |
{ |
|
|
|
if (0 == n->norm->Bd.comp) { |
|
mm->need_nl = 1; |
|
print_word(mm, ".sp"); |
|
} |
if (DISP_unfilled == n->norm->Bd.type || |
if (DISP_unfilled == n->norm->Bd.type || |
DISP_literal == n->norm->Bd.type) { |
DISP_literal == n->norm->Bd.type) { |
mm->need_nl = 1; |
mm->need_nl = 1; |
print_word(mm, ".nf"); |
print_word(mm, ".nf"); |
} |
} |
mm->need_nl = 1; |
mm->need_nl = 1; |
|
print_word(mm, ".RS"); |
|
print_offs(mm, n->norm->Bd.offs); |
|
mm->need_nl = 1; |
return(1); |
return(1); |
} |
} |
|
|
|
|
post_bd(DECL_ARGS) |
post_bd(DECL_ARGS) |
{ |
{ |
|
|
|
mm->need_nl = 1; |
|
print_word(mm, ".RE"); |
if (DISP_unfilled == n->norm->Bd.type || |
if (DISP_unfilled == n->norm->Bd.type || |
DISP_literal == n->norm->Bd.type) { |
DISP_literal == n->norm->Bd.type) { |
mm->need_nl = 1; |
mm->need_nl = 1; |
Line 544 pre_nm(DECL_ARGS) |
|
Line 580 pre_nm(DECL_ARGS) |
|
|
|
if (MDOC_ELEM != n->type && MDOC_HEAD != n->type) |
if (MDOC_ELEM != n->type && MDOC_HEAD != n->type) |
return(1); |
return(1); |
|
if (MDOC_SYNPRETTY & n->flags) { |
|
mm->need_nl = 1; |
|
print_word(mm, ".br"); |
|
mm->need_nl = 1; |
|
} |
print_word(mm, "\\fB"); |
print_word(mm, "\\fB"); |
mm->need_space = 0; |
mm->need_space = 0; |
if (NULL == n->child) |
if (NULL == n->child) |
Line 586 pre_pp(DECL_ARGS) |
|
Line 627 pre_pp(DECL_ARGS) |
|
else |
else |
print_word(mm, ".PP"); |
print_word(mm, ".PP"); |
mm->need_nl = 1; |
mm->need_nl = 1; |
return(1); |
return(MDOC_Rs == n->tok); |
} |
} |
|
|
static int |
static int |