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

Diff for /mandoc/mdoc_term.c between version 1.276 and 1.281

version 1.276, 2014/08/10 23:54:41 version 1.281, 2014/09/03 05:22:45
Line 252  static const struct termact termacts[MDOC_MAX] = {
Line 252  static const struct termact termacts[MDOC_MAX] = {
 void  void
 terminal_mdoc(void *arg, const struct mdoc *mdoc)  terminal_mdoc(void *arg, const struct mdoc *mdoc)
 {  {
         const struct mdoc_node  *n;  
         const struct mdoc_meta  *meta;          const struct mdoc_meta  *meta;
           struct mdoc_node        *n;
         struct termp            *p;          struct termp            *p;
   
         p = (struct termp *)arg;          p = (struct termp *)arg;
   
         if (0 == p->defindent)  
                 p->defindent = 5;  
   
         p->overstep = 0;          p->overstep = 0;
         p->maxrmargin = p->defrmargin;          p->rmargin = p->maxrmargin = p->defrmargin;
         p->tabwidth = term_len(p, 5);          p->tabwidth = term_len(p, 5);
   
         if (NULL == p->symtab)          if (NULL == p->symtab)
                 p->symtab = mchars_alloc();                  p->symtab = mchars_alloc();
   
         n = mdoc_node(mdoc);          n = mdoc_node(mdoc)->child;
         meta = mdoc_meta(mdoc);          meta = mdoc_meta(mdoc);
   
         term_begin(p, print_mdoc_head, print_mdoc_foot, meta);          if (p->synopsisonly) {
                   while (n != NULL) {
         if (n->child) {                          if (n->tok == MDOC_Sh && n->sec == SEC_SYNOPSIS) {
                 if (MDOC_Sh != n->child->tok)                                  if (n->child->next->child != NULL)
                         term_vspace(p);                                          print_mdoc_nodelist(p, NULL,
                 print_mdoc_nodelist(p, NULL, meta, n->child);                                              meta, n->child->next->child);
                                   term_newln(p);
                                   break;
                           }
                           n = n->next;
                   }
           } else {
                   if (p->defindent == 0)
                           p->defindent = 5;
                   term_begin(p, print_mdoc_head, print_mdoc_foot, meta);
                   if (n != NULL) {
                           if (n->tok != MDOC_Sh)
                                   term_vspace(p);
                           print_mdoc_nodelist(p, NULL, meta, n);
                   }
                   term_end(p);
         }          }
   
         term_end(p);  
 }  }
   
 static void  static void
Line 463  print_mdoc_head(struct termp *p, const void *arg)
Line 473  print_mdoc_head(struct termp *p, const void *arg)
          * switches on the manual section.           * switches on the manual section.
          */           */
   
         p->offset = 0;  
         p->rmargin = p->maxrmargin;  
   
         assert(meta->vol);          assert(meta->vol);
         if (NULL == meta->arch)          if (NULL == meta->arch)
                 volume = mandoc_strdup(meta->vol);                  volume = mandoc_strdup(meta->vol);
Line 806  termp_it_pre(DECL_ARGS)
Line 813  termp_it_pre(DECL_ARGS)
                  * the "overstep" effect in term_flushln() and treat                   * the "overstep" effect in term_flushln() and treat
                  * this as a `-ohang' list instead.                   * this as a `-ohang' list instead.
                  */                   */
                 if (n->next->child &&                  if (NULL != n->next &&
                       NULL != n->next->child &&
                     (MDOC_Bl == n->next->child->tok ||                      (MDOC_Bl == n->next->child->tok ||
                      MDOC_Bd == n->next->child->tok))                       MDOC_Bd == n->next->child->tok))
                         break;                          break;
Line 862  termp_it_pre(DECL_ARGS)
Line 870  termp_it_pre(DECL_ARGS)
                  * don't want to recalculate rmargin and offsets when                   * don't want to recalculate rmargin and offsets when
                  * using `Bd' or `Bl' within `-hang' overstep lists.                   * using `Bd' or `Bl' within `-hang' overstep lists.
                  */                   */
                 if (MDOC_HEAD == n->type && n->next->child &&                  if (MDOC_HEAD == n->type &&
                       NULL != n->next &&
                       NULL != n->next->child &&
                     (MDOC_Bl == n->next->child->tok ||                      (MDOC_Bl == n->next->child->tok ||
                      MDOC_Bd == n->next->child->tok))                       MDOC_Bd == n->next->child->tok))
                         break;                          break;
Line 1027  termp_nm_pre(DECL_ARGS)
Line 1037  termp_nm_pre(DECL_ARGS)
         if (MDOC_HEAD == n->type)          if (MDOC_HEAD == n->type)
                 synopsis_pre(p, n->parent);                  synopsis_pre(p, n->parent);
   
         if (MDOC_HEAD == n->type && n->next->child) {          if (MDOC_HEAD == n->type &&
               NULL != n->next && NULL != n->next->child) {
                 p->flags |= TERMP_NOSPACE | TERMP_NOBREAK | TERMP_BRIND;                  p->flags |= TERMP_NOSPACE | TERMP_NOBREAK | TERMP_BRIND;
                 p->trailspace = 1;                  p->trailspace = 1;
                 p->rmargin = p->offset + term_len(p, 1);                  p->rmargin = p->offset + term_len(p, 1);
Line 1055  termp_nm_post(DECL_ARGS)
Line 1066  termp_nm_post(DECL_ARGS)
   
         if (MDOC_BLOCK == n->type) {          if (MDOC_BLOCK == n->type) {
                 p->flags &= ~(TERMP_KEEP | TERMP_PREKEEP);                  p->flags &= ~(TERMP_KEEP | TERMP_PREKEEP);
         } else if (MDOC_HEAD == n->type && n->next->child) {          } else if (MDOC_HEAD == n->type &&
               NULL != n->next && NULL != n->next->child) {
                 term_flushln(p);                  term_flushln(p);
                 p->flags &= ~(TERMP_NOBREAK | TERMP_BRIND | TERMP_HANG);                  p->flags &= ~(TERMP_NOBREAK | TERMP_BRIND | TERMP_HANG);
                 p->trailspace = 0;                  p->trailspace = 0;
Line 1070  termp_fl_pre(DECL_ARGS)
Line 1082  termp_fl_pre(DECL_ARGS)
         term_fontpush(p, TERMFONT_BOLD);          term_fontpush(p, TERMFONT_BOLD);
         term_word(p, "\\-");          term_word(p, "\\-");
   
         if (n->child)          if ( ! (n->nchild == 0 &&
                 p->flags |= TERMP_NOSPACE;              (n->next == NULL ||
         else if (n->next && n->next->line == n->line)               n->next->type == MDOC_TEXT ||
                n->next->flags & MDOC_LINE)))
                 p->flags |= TERMP_NOSPACE;                  p->flags |= TERMP_NOSPACE;
   
         return(1);          return(1);

Legend:
Removed from v.1.276  
changed lines
  Added in v.1.281

CVSweb