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

Diff for /mandoc/man_term.c between version 1.129 and 1.130

version 1.129, 2012/06/02 20:16:23 version 1.130, 2012/07/10 19:54:11
Line 1 
Line 1 
 /*      $Id$ */  /*      $Id$ */
 /*  /*
  * Copyright (c) 2008-2012 Kristaps Dzonsons <kristaps@bsd.lv>   * Copyright (c) 2008-2012 Kristaps Dzonsons <kristaps@bsd.lv>
  * Copyright (c) 2010, 2011 Ingo Schwarze <schwarze@openbsd.org>   * Copyright (c) 2010, 2011, 2012 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 480  pre_HP(DECL_ARGS)
Line 480  pre_HP(DECL_ARGS)
                 print_bvspace(p, n);                  print_bvspace(p, n);
                 return(1);                  return(1);
         case (MAN_BODY):          case (MAN_BODY):
                 p->flags |= TERMP_NOBREAK;  
                 p->flags |= TERMP_TWOSPACE;  
                 break;                  break;
         default:          default:
                 return(0);                  return(0);
         }          }
   
           if ( ! (MANT_LITERAL & mt->fl)) {
                   p->flags |= TERMP_NOBREAK;
                   p->flags |= TERMP_TWOSPACE;
           }
   
         len = mt->lmargin[mt->lmargincur];          len = mt->lmargin[mt->lmargincur];
         ival = -1;          ival = -1;
   
Line 516  post_HP(DECL_ARGS)
Line 519  post_HP(DECL_ARGS)
 {  {
   
         switch (n->type) {          switch (n->type) {
         case (MAN_BLOCK):  
                 term_flushln(p);  
                 break;  
         case (MAN_BODY):          case (MAN_BODY):
                 term_flushln(p);                  term_flushln(p);
                 p->flags &= ~TERMP_NOBREAK;                  p->flags &= ~TERMP_NOBREAK;
Line 696  pre_TP(DECL_ARGS)
Line 696  pre_TP(DECL_ARGS)
         case (MAN_BODY):          case (MAN_BODY):
                 p->offset = mt->offset + len;                  p->offset = mt->offset + len;
                 p->rmargin = p->maxrmargin;                  p->rmargin = p->maxrmargin;
                   p->flags &= ~TERMP_NOBREAK;
                   p->flags &= ~TERMP_TWOSPACE;
                 break;                  break;
         default:          default:
                 break;                  break;
Line 713  post_TP(DECL_ARGS)
Line 715  post_TP(DECL_ARGS)
         switch (n->type) {          switch (n->type) {
         case (MAN_HEAD):          case (MAN_HEAD):
                 term_flushln(p);                  term_flushln(p);
                 p->flags &= ~TERMP_NOBREAK;  
                 p->flags &= ~TERMP_TWOSPACE;  
                 p->rmargin = p->maxrmargin;  
                 break;                  break;
         case (MAN_BODY):          case (MAN_BODY):
                 term_newln(p);                  term_newln(p);
Line 912  print_man_node(DECL_ARGS)
Line 911  print_man_node(DECL_ARGS)
                         term_newln(p);                          term_newln(p);
   
                 term_word(p, n->string);                  term_word(p, n->string);
                   goto out;
   
                 /*  
                  * If we're in a literal context, make sure that words  
                  * togehter on the same line stay together.  This is a  
                  * POST-printing call, so we check the NEXT word.  Since  
                  * -man doesn't have nested macros, we don't need to be  
                  * more specific than this.  
                  */  
                 if (MANT_LITERAL & mt->fl && ! (TERMP_NOBREAK & p->flags) &&  
                                 (NULL == n->next ||  
                                  n->next->line > n->line)) {  
                         rm = p->rmargin;  
                         rmax = p->maxrmargin;  
                         p->rmargin = p->maxrmargin = TERM_MAXMARGIN;  
                         p->flags |= TERMP_NOSPACE;  
                         term_flushln(p);  
                         p->rmargin = rm;  
                         p->maxrmargin = rmax;  
                 }  
   
                 if (MAN_EOS & n->flags)  
                         p->flags |= TERMP_SENTENCE;  
                 return;  
         case (MAN_EQN):          case (MAN_EQN):
                 term_eqn(p, n->eqn);                  term_eqn(p, n->eqn);
                 return;                  return;
Line 966  print_man_node(DECL_ARGS)
Line 944  print_man_node(DECL_ARGS)
         if ( ! (MAN_NOTEXT & termacts[n->tok].flags))          if ( ! (MAN_NOTEXT & termacts[n->tok].flags))
                 term_fontrepl(p, TERMFONT_NONE);                  term_fontrepl(p, TERMFONT_NONE);
   
   out:
           /*
            * If we're in a literal context, make sure that words
            * together on the same line stay together.  This is a
            * POST-printing call, so we check the NEXT word.  Since
            * -man doesn't have nested macros, we don't need to be
            * more specific than this.
            */
           if (MANT_LITERAL & mt->fl && ! (TERMP_NOBREAK & p->flags) &&
               NULL != n->next && n->next->line > n->line) {
                   rm = p->rmargin;
                   rmax = p->maxrmargin;
                   p->rmargin = p->maxrmargin = TERM_MAXMARGIN;
                   p->flags |= TERMP_NOSPACE;
                   if (NULL != n->string && '\0' != *n->string)
                           term_flushln(p);
                   else
                           term_newln(p);
                   if (rm < rmax && n->parent->tok == MAN_HP) {
                           p->offset = rm;
                           p->rmargin = rmax;
                   } else
                           p->rmargin = rm;
                   p->maxrmargin = rmax;
           }
         if (MAN_EOS & n->flags)          if (MAN_EOS & n->flags)
                 p->flags |= TERMP_SENTENCE;                  p->flags |= TERMP_SENTENCE;
 }  }

Legend:
Removed from v.1.129  
changed lines
  Added in v.1.130

CVSweb