[BACK]Return to term.c CVS log [TXT][DIR] Up to [cvsweb.bsd.lv] / mandoc

Diff for /mandoc/term.c between version 1.229 and 1.232

version 1.229, 2014/10/26 17:12:03 version 1.232, 2014/10/28 18:49:33
Line 42  void
Line 42  void
 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);
                                 if (uc <= 0)                                  if (uc > 0)
                                         uc = 0xFFFD;                                          encode1(p, uc);
                                 encode1(p, uc);  
                         }                          }
                         break;                          break;
                 case ESCAPE_FONTBOLD:                  case ESCAPE_FONTBOLD:
Line 695  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)
                                                 c = 0xFFFD;                                                  sz += cond_width(p, c, &skip);
                                         sz += cond_width(p, c, &skip);  
                                 }                                  }
                                 break;                                  break;
                         case ESCAPE_SKIPCHAR:                          case ESCAPE_SKIPCHAR:

Legend:
Removed from v.1.229  
changed lines
  Added in v.1.232

CVSweb