version 1.93, 2009/07/24 11:54:25 |
version 1.94, 2009/07/27 12:02:49 |
Line 34 static void term_free(struct termp *); |
|
Line 34 static void term_free(struct termp *); |
|
static void term_pescape(struct termp *, const char **); |
static void term_pescape(struct termp *, const char **); |
static void term_nescape(struct termp *, |
static void term_nescape(struct termp *, |
const char *, size_t); |
const char *, size_t); |
|
static void term_sescape(struct termp *, |
|
const char *, size_t); |
static void term_chara(struct termp *, char); |
static void term_chara(struct termp *, char); |
static void term_encodea(struct termp *, char); |
static void term_encodea(struct termp *, char); |
static int term_isopendelim(const char *); |
static int term_isopendelim(const char *); |
Line 399 term_nescape(struct termp *p, const char *word, size_t |
|
Line 401 term_nescape(struct termp *p, const char *word, size_t |
|
|
|
rhs = term_a2ascii(p->symtab, word, len, &sz); |
rhs = term_a2ascii(p->symtab, word, len, &sz); |
|
|
if (rhs) |
if (NULL == rhs) |
for (i = 0; i < (int)sz; i++) |
return; |
term_encodea(p, rhs[i]); |
for (i = 0; i < (int)sz; i++) |
|
term_encodea(p, rhs[i]); |
} |
} |
|
|
|
|
|
static void |
|
term_sescape(struct termp *p, const char *word, size_t len) |
|
{ |
|
const char *rhs; |
|
size_t sz; |
|
int i; |
|
|
|
rhs = term_a2res(p->symtab, word, len, &sz); |
|
|
|
if (NULL == rhs) |
|
return; |
|
for (i = 0; i < (int)sz; i++) |
|
term_encodea(p, rhs[i]); |
|
} |
|
|
|
|
/* |
/* |
* Handle an escape sequence: determine its length and pass it to the |
* Handle an escape sequence: determine its length and pass it to the |
* escape-symbol look table. Note that we assume mdoc(3) has validated |
* escape-symbol look table. Note that we assume mdoc(3) has validated |
Line 448 term_pescape(struct termp *p, const char **word) |
|
Line 467 term_pescape(struct termp *p, const char **word) |
|
return; |
return; |
} |
} |
|
|
term_nescape(p, wp, 2); |
term_sescape(p, wp, 2); |
*word = ++wp; |
*word = ++wp; |
return; |
return; |
case ('['): |
case ('['): |
break; |
break; |
default: |
default: |
term_nescape(p, wp, 1); |
term_sescape(p, wp, 1); |
*word = wp; |
*word = wp; |
return; |
return; |
} |
} |