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

Diff for /mandoc/Attic/mdocterm.c between version 1.21 and 1.22

version 1.21, 2009/02/28 21:31:13 version 1.22, 2009/03/01 13:06:49
Line 190  flushln(struct termp *p)
Line 190  flushln(struct termp *p)
                 assert(vsz > 0);                  assert(vsz > 0);
   
                 /*                  /*
                    * If we're breaking normally...
                    *
                  * If a word is too long and we're within a line, put it                   * If a word is too long and we're within a line, put it
                  * on the next line.  Puke if we're being asked to write                   * on the next line.  Puke if we're being asked to write
                  * something that will exceed the right margin (i.e.,                   * something that will exceed the right margin (i.e.,
                  * from a fresh line or when we're not allowed to break                   * from a fresh line).
                  * the line with TERMP_NOBREAK).                   *
                    * If we're not breaking...
                    *
                    * Don't let the visible size exceed the full margin.
                  */                   */
   
                 /* FIXME: allow selective right-margin breaking. */                  if ( ! (TERMP_NOBREAK & p->flags)) {
                           if (vis && vis + vsz > maxvis) {
                 if (vis && vis + vsz > maxvis) {                                  putchar('\n');
                         if (p->flags & TERMP_NOBREAK)                                  for (j = 0; j < p->offset; j++)
                                           putchar(' ');
                                   vis = 0;
                           } else if (vis + vsz > maxvis)
                                 errx(1, "word breaks right margin");                                  errx(1, "word breaks right margin");
                         putchar('\n');                  } else if (vis + vsz > p->maxrmargin)
                         for (j = 0; j < p->offset; j++)  
                                 putchar(' ');  
                         vis = 0;  
                 } else if (vis + vsz > maxvis)  
                         errx(1, "word breaks right margin");                          errx(1, "word breaks right margin");
   
                 /*                  /*
Line 226  flushln(struct termp *p)
Line 230  flushln(struct termp *p)
                 }                  }
         }          }
   
           if ((TERMP_NOBREAK & p->flags) && vis >= maxvis) {
                   putchar('\n');
                   for (i = 0; i < p->rmargin; i++)
                           putchar(' ');
                   p->col = 0;
                   return;
           }
   
         /*          /*
          * If we're not to right-marginalise it (newline), then instead           * If we're not to right-marginalise it (newline), then instead
          * pad to the right margin and stay off.           * pad to the right margin and stay off.
          */           */
   
         if (p->flags & TERMP_NOBREAK) {          if (p->flags & TERMP_NOBREAK) {
                 if ( ! (p->flags & TERMP_NORPAD))                  for ( ; vis < maxvis; vis++)
                         for ( ; vis < maxvis; vis++)                          putchar(' ');
                                 putchar(' ');  
         } else          } else
                 putchar('\n');                  putchar('\n');
   

Legend:
Removed from v.1.21  
changed lines
  Added in v.1.22

CVSweb