-/* $Id: man_term.c,v 1.37 2009/10/18 11:14:04 kristaps Exp $ */
+/* $Id: man_term.c,v 1.38 2009/10/18 11:52:18 kristaps Exp $ */
/*
* Copyright (c) 2008, 2009 Kristaps Dzonsons <kristaps@kth.se>
*
static void fmt_block_vspace(struct termp *,
const struct man_node *);
static int a2width(const char *);
+static int a2height(const char *);
void
}
+static int
+a2height(const char *p)
+{
+ struct roffsu su;
+ double r;
+
+ if ( ! a2roffsu(p, &su))
+ return(1);
+
+ switch (su.unit) {
+ case (SCALE_CM):
+ r = su.scale * 2;
+ break;
+ case (SCALE_IN):
+ r = su.scale * 6;
+ break;
+ case (SCALE_PC):
+ r = su.scale;
+ break;
+ case (SCALE_PT):
+ r = su.scale / 8;
+ break;
+ case (SCALE_MM):
+ r = su.scale / 1000;
+ break;
+ case (SCALE_VS):
+ r = su.scale;
+ break;
+ default:
+ r = su.scale - 1;
+ break;
+ }
+
+ if (r < 0.0)
+ r = 0.0;
+ return(/* LINTED */(int)
+ r);
+}
+
+
static int
a2width(const char *p)
{
return(0);
}
- len = atoi(n->child->string);
+ assert(MAN_TEXT == n->child->type);
+ len = a2height(n->child->string);
+
if (0 == len)
term_newln(p);
for (i = 0; i < len; i++)