[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.215 and 1.223

version 1.215, 2018/08/18 02:08:27 version 1.223, 2018/12/30 00:49:55
Line 27 
Line 27 
 #include <string.h>  #include <string.h>
   
 #include "mandoc_aux.h"  #include "mandoc_aux.h"
 #include "mandoc.h"  
 #include "roff.h"  #include "roff.h"
 #include "man.h"  #include "man.h"
 #include "out.h"  #include "out.h"
Line 81  static int    pre_SS(DECL_ARGS);
Line 80  static int    pre_SS(DECL_ARGS);
 static  int               pre_SY(DECL_ARGS);  static  int               pre_SY(DECL_ARGS);
 static  int               pre_TP(DECL_ARGS);  static  int               pre_TP(DECL_ARGS);
 static  int               pre_UR(DECL_ARGS);  static  int               pre_UR(DECL_ARGS);
   static  int               pre_abort(DECL_ARGS);
 static  int               pre_alternate(DECL_ARGS);  static  int               pre_alternate(DECL_ARGS);
 static  int               pre_ign(DECL_ARGS);  static  int               pre_ign(DECL_ARGS);
 static  int               pre_in(DECL_ARGS);  static  int               pre_in(DECL_ARGS);
Line 101  static const struct man_term_act man_term_acts[MAN_MAX
Line 101  static const struct man_term_act man_term_acts[MAN_MAX
         { pre_SS, post_SS, 0 }, /* SS */          { pre_SS, post_SS, 0 }, /* SS */
         { pre_TP, post_TP, 0 }, /* TP */          { pre_TP, post_TP, 0 }, /* TP */
         { pre_TP, post_TP, 0 }, /* TQ */          { pre_TP, post_TP, 0 }, /* TQ */
         { pre_PP, NULL, 0 }, /* LP */          { pre_abort, NULL, 0 }, /* LP */
         { pre_PP, NULL, 0 }, /* PP */          { pre_PP, NULL, 0 }, /* PP */
         { pre_PP, NULL, 0 }, /* P */          { pre_abort, NULL, 0 }, /* P */
         { pre_IP, post_IP, 0 }, /* IP */          { pre_IP, post_IP, 0 }, /* IP */
         { pre_HP, post_HP, 0 }, /* HP */          { pre_HP, post_HP, 0 }, /* HP */
         { NULL, NULL, 0 }, /* SM */          { NULL, NULL, 0 }, /* SM */
Line 117  static const struct man_term_act man_term_acts[MAN_MAX
Line 117  static const struct man_term_act man_term_acts[MAN_MAX
         { pre_I, NULL, 0 }, /* I */          { pre_I, NULL, 0 }, /* I */
         { pre_alternate, NULL, 0 }, /* IR */          { pre_alternate, NULL, 0 }, /* IR */
         { pre_alternate, NULL, 0 }, /* RI */          { pre_alternate, NULL, 0 }, /* RI */
         { pre_literal, NULL, 0 }, /* nf */          { pre_literal, NULL, MAN_NOTEXT }, /* nf */
         { pre_literal, NULL, 0 }, /* fi */          { pre_literal, NULL, MAN_NOTEXT }, /* fi */
         { NULL, NULL, 0 }, /* RE */          { NULL, NULL, 0 }, /* RE */
         { pre_RS, post_RS, 0 }, /* RS */          { pre_RS, post_RS, 0 }, /* RS */
         { pre_DT, NULL, 0 }, /* DT */          { pre_DT, NULL, 0 }, /* DT */
Line 147  man_term_act(enum roff_tok tok)
Line 147  man_term_act(enum roff_tok tok)
 }  }
   
 void  void
 terminal_man(void *arg, const struct roff_man *man)  terminal_man(void *arg, const struct roff_meta *man)
 {  {
         struct termp            *p;          struct termp            *p;
         struct roff_node        *n;          struct roff_node        *n;
Line 176  terminal_man(void *arg, const struct roff_man *man)
Line 176  terminal_man(void *arg, const struct roff_man *man)
                             !strcmp(n->child->child->string, "SYNOPSIS")) {                              !strcmp(n->child->child->string, "SYNOPSIS")) {
                                 if (n->child->next->child != NULL)                                  if (n->child->next->child != NULL)
                                         print_man_nodelist(p, &mt,                                          print_man_nodelist(p, &mt,
                                             n->child->next->child,                                              n->child->next->child, man);
                                             &man->meta);  
                                 term_newln(p);                                  term_newln(p);
                                 break;                                  break;
                         }                          }
                         n = n->next;                          n = n->next;
                 }                  }
         } else {          } else {
                 term_begin(p, print_man_head, print_man_foot, &man->meta);                  term_begin(p, print_man_head, print_man_foot, man);
                 p->flags |= TERMP_NOSPACE;                  p->flags |= TERMP_NOSPACE;
                 if (n != NULL)                  if (n != NULL)
                         print_man_nodelist(p, &mt, n, &man->meta);                          print_man_nodelist(p, &mt, n, man);
                 term_end(p);                  term_end(p);
         }          }
         p->defindent = save_defindent;          p->defindent = save_defindent;
Line 222  print_bvspace(struct termp *p, const struct roff_node 
Line 221  print_bvspace(struct termp *p, const struct roff_node 
   
   
 static int  static int
   pre_abort(DECL_ARGS)
   {
           abort();
   }
   
   static int
 pre_ign(DECL_ARGS)  pre_ign(DECL_ARGS)
 {  {
   
Line 346  pre_OP(DECL_ARGS)
Line 351  pre_OP(DECL_ARGS)
 {  {
   
         term_word(p, "[");          term_word(p, "[");
         p->flags |= TERMP_NOSPACE;          p->flags |= TERMP_KEEP | TERMP_NOSPACE;
   
         if (NULL != (n = n->child)) {          if (NULL != (n = n->child)) {
                 term_fontrepl(p, TERMFONT_BOLD);                  term_fontrepl(p, TERMFONT_BOLD);
Line 358  pre_OP(DECL_ARGS)
Line 363  pre_OP(DECL_ARGS)
         }          }
   
         term_fontrepl(p, TERMFONT_NONE);          term_fontrepl(p, TERMFONT_NONE);
           p->flags &= ~TERMP_KEEP;
         p->flags |= TERMP_NOSPACE;          p->flags |= TERMP_NOSPACE;
         term_word(p, "]");          term_word(p, "]");
         return 0;          return 0;
Line 860  pre_SY(DECL_ARGS)
Line 866  pre_SY(DECL_ARGS)
   
         switch (n->type) {          switch (n->type) {
         case ROFFT_BLOCK:          case ROFFT_BLOCK:
                 print_bvspace(p, n, mt->pardist);                  if (n->prev == NULL || n->prev->tok != MAN_SY)
                           print_bvspace(p, n, mt->pardist);
                 return 1;                  return 1;
         case ROFFT_HEAD:          case ROFFT_HEAD:
         case ROFFT_BODY:          case ROFFT_BODY:
Line 870  pre_SY(DECL_ARGS)
Line 877  pre_SY(DECL_ARGS)
         }          }
   
         nn = n->parent->head->child;          nn = n->parent->head->child;
         len = nn == NULL ? 0 : term_strlen(p, nn->string) + 1;          len = nn == NULL ? 1 : term_strlen(p, nn->string) + 1;
   
         switch (n->type) {          switch (n->type) {
         case ROFFT_HEAD:          case ROFFT_HEAD:
Line 983  print_man_node(DECL_ARGS)
Line 990  print_man_node(DECL_ARGS)
         }          }
   
         act = man_term_act(n->tok);          act = man_term_act(n->tok);
         if ((act->flags & MAN_NOTEXT) == 0)          if ((act->flags & MAN_NOTEXT) == 0 && n->tok != MAN_SM)
                 term_fontrepl(p, TERMFONT_NONE);                  term_fontrepl(p, TERMFONT_NONE);
   
         c = 1;          c = 1;
Line 995  print_man_node(DECL_ARGS)
Line 1002  print_man_node(DECL_ARGS)
   
         if (act->post != NULL)          if (act->post != NULL)
                 (*act->post)(p, mt, n, meta);                  (*act->post)(p, mt, n, meta);
         if ((act->flags & MAN_NOTEXT) == 0)          if ((act->flags & MAN_NOTEXT) == 0 && n->tok != MAN_SM)
                 term_fontrepl(p, TERMFONT_NONE);                  term_fontrepl(p, TERMFONT_NONE);
   
 out:  out:

Legend:
Removed from v.1.215  
changed lines
  Added in v.1.223

CVSweb