=================================================================== RCS file: /cvs/mandoc/term_ascii.c,v retrieving revision 1.7 retrieving revision 1.14 diff -u -p -r1.7 -r1.14 --- mandoc/term_ascii.c 2010/06/30 12:27:55 1.7 +++ mandoc/term_ascii.c 2011/05/17 14:38:34 1.14 @@ -1,6 +1,6 @@ -/* $Id: term_ascii.c,v 1.7 2010/06/30 12:27:55 kristaps Exp $ */ +/* $Id: term_ascii.c,v 1.14 2011/05/17 14:38:34 kristaps Exp $ */ /* - * Copyright (c) 2008, 2009 Kristaps Dzonsons + * Copyright (c) 2010 Kristaps Dzonsons * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -26,29 +26,30 @@ #include #include +#include "mandoc.h" #include "out.h" #include "term.h" #include "main.h" -static size_t ascii_hspan(const struct termp *, +static struct termp *ascii_init(enum termenc, char *); +static double ascii_hspan(const struct termp *, const struct roffsu *); -static size_t ascii_width(const struct termp *, char); +static size_t ascii_width(const struct termp *, int); static void ascii_advance(struct termp *, size_t); static void ascii_begin(struct termp *); static void ascii_end(struct termp *); static void ascii_endline(struct termp *); -static void ascii_letter(struct termp *, char); +static void ascii_letter(struct termp *, int); - -void * -ascii_alloc(char *outopts) +static struct termp * +ascii_init(enum termenc enc, char *outopts) { - struct termp *p; const char *toks[2]; char *v; + struct termp *p; - if (NULL == (p = term_alloc(TERMENC_ASCII))) - return(NULL); + p = mandoc_calloc(1, sizeof(struct termp)); + p->enc = enc; p->tabwidth = 5; p->defrmargin = 78; @@ -81,10 +82,23 @@ ascii_alloc(char *outopts) return(p); } +void * +ascii_alloc(char *outopts) +{ + return(ascii_init(TERMENC_ASCII, outopts)); +} + +void * +locale_alloc(char *outopts) +{ + + return(ascii_init(TERMENC_LOCALE, outopts)); +} + /* ARGSUSED */ static size_t -ascii_width(const struct termp *p, char c) +ascii_width(const struct termp *p, int c) { return(1); @@ -101,9 +115,10 @@ ascii_free(void *arg) /* ARGSUSED */ static void -ascii_letter(struct termp *p, char c) +ascii_letter(struct termp *p, int c) { + /* LINTED */ putchar(c); } @@ -146,7 +161,7 @@ ascii_advance(struct termp *p, size_t len) /* ARGSUSED */ -static size_t +static double ascii_hspan(const struct termp *p, const struct roffsu *su) { double r; @@ -180,12 +195,6 @@ ascii_hspan(const struct termp *p, const struct roffsu break; } - /* Explicitly disallow negative values. */ - - if (r < 0.0) - r = 0.0; - - return((size_t)/* LINTED */ - r); + return(r); }