version 1.2, 2009/03/17 13:35:46 |
version 1.6, 2009/04/12 19:19:57 |
|
|
#define ASCII_PRINT_HI 126 |
#define ASCII_PRINT_HI 126 |
#define ASCII_PRINT_LO 32 |
#define ASCII_PRINT_LO 32 |
|
|
/* |
|
* Lookup and hashing routines for constructing the ASCII symbol table, |
|
* which should contain a significant portion of mdoc(7)'s special |
|
* symbols. |
|
*/ |
|
|
|
struct line { |
struct line { |
const char *code; |
const char *code; |
const char *out; |
const char *out; |
Line 62 static inline int match(const struct line *, |
|
Line 56 static inline int match(const struct line *, |
|
|
|
|
|
void |
void |
asciifree(void *arg) |
term_asciifree(void *arg) |
{ |
{ |
struct asciitab *tab; |
struct asciitab *tab; |
|
|
Line 75 asciifree(void *arg) |
|
Line 69 asciifree(void *arg) |
|
|
|
|
|
void * |
void * |
ascii2htab(void) |
term_ascii2htab(void) |
{ |
{ |
struct asciitab *tab; |
struct asciitab *tab; |
void **htab; |
void **htab; |
|
|
if (NULL == (tab = malloc(sizeof(struct asciitab)))) |
if (NULL == (tab = malloc(sizeof(struct asciitab)))) |
err(1, "malloc"); |
err(1, "malloc"); |
|
|
assert(0 == sizeof(lines) % sizeof(struct line)); |
|
len = sizeof(lines) / sizeof(struct line); |
len = sizeof(lines) / sizeof(struct line); |
|
|
if (NULL == (p = calloc((size_t)len, sizeof(struct linep)))) |
if (NULL == (p = calloc((size_t)len, sizeof(struct linep)))) |
Line 132 ascii2htab(void) |
|
Line 125 ascii2htab(void) |
|
|
|
|
|
const char * |
const char * |
a2ascii(void *arg, const char *p, size_t sz, size_t *rsz) |
term_a2ascii(void *arg, const char *p, size_t sz, size_t *rsz) |
{ |
{ |
struct asciitab *tab; |
struct asciitab *tab; |
struct linep *pp, *prev; |
struct linep *pp, *prev; |
Line 144 a2ascii(void *arg, const char *p, size_t sz, size_t *r |
|
Line 137 a2ascii(void *arg, const char *p, size_t sz, size_t *r |
|
|
|
assert(p); |
assert(p); |
assert(sz > 0); |
assert(sz > 0); |
assert(p[0] >= ASCII_PRINT_LO && p[0] <= ASCII_PRINT_HI); |
|
|
if (p[0] < ASCII_PRINT_LO || p[0] > ASCII_PRINT_HI) |
|
return(NULL); |
|
|
|
|
/* |
/* |
* Lookup the symbol in the symbol hash. See ascii2htab for the |
* Lookup the symbol in the symbol hash. See ascii2htab for the |