version 1.230, 2014/10/27 13:31:04 |
version 1.232, 2014/10/28 18:49:33 |
|
|
term_free(struct termp *p) |
term_free(struct termp *p) |
{ |
{ |
|
|
if (p->buf) |
free(p->buf); |
free(p->buf); |
|
if (p->symtab) |
|
mchars_free(p->symtab); |
|
|
|
free(p); |
free(p); |
} |
} |
|
|
Line 462 term_word(struct termp *p, const char *word) |
|
Line 458 term_word(struct termp *p, const char *word) |
|
if (p->enc == TERMENC_ASCII) { |
if (p->enc == TERMENC_ASCII) { |
cp = mchars_spec2str(p->symtab, |
cp = mchars_spec2str(p->symtab, |
seq, sz, &ssz); |
seq, sz, &ssz); |
if (cp == NULL) |
if (cp != NULL) |
encode(p, "<?>", 3); |
|
else |
|
encode(p, cp, ssz); |
encode(p, cp, ssz); |
} else { |
} else { |
uc = mchars_spec2cp(p->symtab, seq, sz); |
uc = mchars_spec2cp(p->symtab, seq, sz); |
Line 694 term_strlen(const struct termp *p, const char *cp) |
|
Line 688 term_strlen(const struct termp *p, const char *cp) |
|
sz += cond_width(p, c, &skip); |
sz += cond_width(p, c, &skip); |
break; |
break; |
case ESCAPE_SPECIAL: |
case ESCAPE_SPECIAL: |
if (p->enc == TERMENC_ASCII) { |
if (p->enc == TERMENC_ASCII) |
rhs = mchars_spec2str(p->symtab, |
rhs = mchars_spec2str(p->symtab, |
seq, ssz, &rsz); |
seq, ssz, &rsz); |
if (rhs == NULL) { |
else { |
rhs = "<?>"; |
|
rsz = 3; |
|
} |
|
} else { |
|
c = mchars_spec2cp(p->symtab, |
c = mchars_spec2cp(p->symtab, |
seq, ssz); |
seq, ssz); |
if (c > 0) |
if (c > 0) |