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

Diff for /mandoc/term.c between version 1.214 and 1.217

version 1.214, 2013/12/25 00:39:31 version 1.217, 2014/03/13 19:23:50
Line 1 
Line 1 
 /*      $Id$ */  /*      $Id$ */
 /*  /*
  * Copyright (c) 2008, 2009, 2010, 2011 Kristaps Dzonsons <kristaps@bsd.lv>   * Copyright (c) 2008, 2009, 2010, 2011 Kristaps Dzonsons <kristaps@bsd.lv>
  * Copyright (c) 2010, 2011, 2012, 2013 Ingo Schwarze <schwarze@openbsd.org>   * Copyright (c) 2010-2014 Ingo Schwarze <schwarze@openbsd.org>
  *   *
  * Permission to use, copy, modify, and distribute this software for any   * Permission to use, copy, modify, and distribute this software for any
  * purpose with or without fee is hereby granted, provided that the above   * purpose with or without fee is hereby granted, provided that the above
Line 179  term_flushln(struct termp *p)
Line 179  term_flushln(struct termp *p)
                         /* Regular word. */                          /* Regular word. */
                         /* Break at the hyphen point if we overrun. */                          /* Break at the hyphen point if we overrun. */
                         if (vend > vis && vend < bp &&                          if (vend > vis && vend < bp &&
                                         ASCII_HYPH == p->buf[j])                              (ASCII_HYPH == p->buf[j] ||
                                ASCII_BREAK == p->buf[j]))
                                 jhy = j;                                  jhy = j;
   
                           /*
                            * Hyphenation now decided, put back a real
                            * hyphen such that we get the correct width.
                            */
                           if (ASCII_HYPH == p->buf[j])
                                   p->buf[j] = '-';
   
                         vend += (*p->width)(p, p->buf[j]);                          vend += (*p->width)(p, p->buf[j]);
                 }                  }
   
Line 233  term_flushln(struct termp *p)
Line 241  term_flushln(struct termp *p)
                                 vbl += (*p->width)(p, ' ');                                  vbl += (*p->width)(p, ' ');
                                 continue;                                  continue;
                         }                          }
                           if (ASCII_BREAK == p->buf[i])
                                   continue;
   
                         /*                          /*
                          * Now we definitely know there will be                           * Now we definitely know there will be
Line 245  term_flushln(struct termp *p)
Line 255  term_flushln(struct termp *p)
                                 vbl = 0;                                  vbl = 0;
                         }                          }
   
                         if (ASCII_HYPH == p->buf[i]) {  
                                 (*p->letter)(p, '-');  
                                 p->viscol += (*p->width)(p, '-');  
                                 continue;  
                         }  
   
                         (*p->letter)(p, p->buf[i]);                          (*p->letter)(p, p->buf[i]);
                         if (8 == p->buf[i])                          if (8 == p->buf[i])
                                 p->viscol -= (*p->width)(p, p->buf[i-1]);                                  p->viscol -= (*p->width)(p, p->buf[i-1]);
Line 644  term_strlen(const struct termp *p, const char *cp)
Line 648  term_strlen(const struct termp *p, const char *cp)
         int              ssz, skip, c;          int              ssz, skip, c;
         const char      *seq, *rhs;          const char      *seq, *rhs;
         enum mandoc_esc  esc;          enum mandoc_esc  esc;
         static const char rej[] = { '\\', ASCII_HYPH, ASCII_NBRSP, '\0' };          static const char rej[] = { '\\', ASCII_NBRSP, ASCII_HYPH,
                           ASCII_BREAK, '\0' };
   
         /*          /*
          * Account for escaped sequences within string length           * Account for escaped sequences within string length
Line 659  term_strlen(const struct termp *p, const char *cp)
Line 664  term_strlen(const struct termp *p, const char *cp)
                 for (i = 0; i < rsz; i++)                  for (i = 0; i < rsz; i++)
                         sz += cond_width(p, *cp++, &skip);                          sz += cond_width(p, *cp++, &skip);
   
                 c = 0;  
                 switch (*cp) {                  switch (*cp) {
                 case ('\\'):                  case ('\\'):
                         cp++;                          cp++;
Line 733  term_strlen(const struct termp *p, const char *cp)
Line 737  term_strlen(const struct termp *p, const char *cp)
                 case (ASCII_HYPH):                  case (ASCII_HYPH):
                         sz += cond_width(p, '-', &skip);                          sz += cond_width(p, '-', &skip);
                         cp++;                          cp++;
                           /* FALLTHROUGH */
                   case (ASCII_BREAK):
                         break;                          break;
                 default:                  default:
                         break;                          break;

Legend:
Removed from v.1.214  
changed lines
  Added in v.1.217

CVSweb