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

Diff for /mandoc/mdoc_man.c between version 1.48 and 1.52

version 1.48, 2013/05/19 21:07:51 version 1.52, 2013/09/15 18:48:31
Line 1 
Line 1 
 /*      $Id$ */  /*      $Id$ */
 /*  /*
  * Copyright (c) 2011, 2012 Ingo Schwarze <schwarze@openbsd.org>   * Copyright (c) 2011, 2012, 2013 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 182  static const struct manact manacts[MDOC_MAX + 1] = {
Line 182  static const struct manact manacts[MDOC_MAX + 1] = {
         { NULL, pre_bx, NULL, NULL, NULL }, /* Bx */          { NULL, pre_bx, NULL, NULL, NULL }, /* Bx */
         { NULL, NULL, NULL, NULL, NULL }, /* Db */          { NULL, NULL, NULL, NULL, NULL }, /* Db */
         { NULL, NULL, NULL, NULL, NULL }, /* Dc */          { NULL, NULL, NULL, NULL, NULL }, /* Dc */
         { cond_body, pre_enc, post_enc, "``", "''" }, /* Do */          { cond_body, pre_enc, post_enc, "\\(lq", "\\(rq" }, /* Do */
         { cond_body, pre_enc, post_enc, "``", "''" }, /* Dq */          { cond_body, pre_enc, post_enc, "\\(lq", "\\(rq" }, /* Dq */
         { NULL, NULL, NULL, NULL, NULL }, /* Ec */          { NULL, NULL, NULL, NULL, NULL }, /* Ec */
         { NULL, NULL, NULL, NULL, NULL }, /* Ef */          { NULL, NULL, NULL, NULL, NULL }, /* Ef */
         { NULL, pre_em, post_font, NULL, NULL }, /* Em */          { NULL, pre_em, post_font, NULL, NULL }, /* Em */
Line 199  static const struct manact manacts[MDOC_MAX + 1] = {
Line 199  static const struct manact manacts[MDOC_MAX + 1] = {
         { cond_body, pre_enc, post_enc, "(", ")" }, /* Po */          { cond_body, pre_enc, post_enc, "(", ")" }, /* Po */
         { cond_body, pre_enc, post_enc, "(", ")" }, /* Pq */          { cond_body, pre_enc, post_enc, "(", ")" }, /* Pq */
         { NULL, NULL, NULL, NULL, NULL }, /* Qc */          { NULL, NULL, NULL, NULL, NULL }, /* Qc */
         { cond_body, pre_enc, post_enc, "`", "'" }, /* Ql */          { cond_body, pre_enc, post_enc, "\\(oq", "\\(cq" }, /* Ql */
         { cond_body, pre_enc, post_enc, "\"", "\"" }, /* Qo */          { cond_body, pre_enc, post_enc, "\"", "\"" }, /* Qo */
         { cond_body, pre_enc, post_enc, "\"", "\"" }, /* Qq */          { cond_body, pre_enc, post_enc, "\"", "\"" }, /* Qq */
         { NULL, NULL, NULL, NULL, NULL }, /* Re */          { NULL, NULL, NULL, NULL, NULL }, /* Re */
         { cond_body, pre_rs, NULL, NULL, NULL }, /* Rs */          { cond_body, pre_rs, NULL, NULL, NULL }, /* Rs */
         { NULL, NULL, NULL, NULL, NULL }, /* Sc */          { NULL, NULL, NULL, NULL, NULL }, /* Sc */
         { cond_body, pre_enc, post_enc, "`", "'" }, /* So */          { cond_body, pre_enc, post_enc, "\\(oq", "\\(cq" }, /* So */
         { cond_body, pre_enc, post_enc, "`", "'" }, /* Sq */          { cond_body, pre_enc, post_enc, "\\(oq", "\\(cq" }, /* Sq */
         { NULL, pre_sm, NULL, NULL, NULL }, /* Sm */          { NULL, pre_sm, NULL, NULL, NULL }, /* Sm */
         { NULL, pre_em, post_font, NULL, NULL }, /* Sx */          { NULL, pre_em, post_font, NULL, NULL }, /* Sx */
         { NULL, pre_sy, post_font, NULL, NULL }, /* Sy */          { NULL, pre_sy, post_font, NULL, NULL }, /* Sy */
Line 553  man_mdoc(void *arg, const struct mdoc *mdoc)
Line 553  man_mdoc(void *arg, const struct mdoc *mdoc)
 static void  static void
 print_node(DECL_ARGS)  print_node(DECL_ARGS)
 {  {
         const struct mdoc_node  *prev, *sub;          const struct mdoc_node  *sub;
         const struct manact     *act;          const struct manact     *act;
         int                      cond, do_sub;          int                      cond, do_sub;
   
Line 561  print_node(DECL_ARGS)
Line 561  print_node(DECL_ARGS)
          * Break the line if we were parsed subsequent the current node.           * Break the line if we were parsed subsequent the current node.
          * This makes the page structure be more consistent.           * This makes the page structure be more consistent.
          */           */
         prev = n->prev ? n->prev : n->parent;          if (MMAN_spc & outflags && MDOC_LINE & n->flags)
         if (MMAN_spc & outflags && prev && prev->line < n->line)  
                 outflags |= MMAN_nl;                  outflags |= MMAN_nl;
   
         act = NULL;          act = NULL;
Line 901  static void
Line 900  static void
 post_bk(DECL_ARGS)  post_bk(DECL_ARGS)
 {  {
   
         if (MDOC_BODY == n->type)          if (MDOC_BODY == n->type && ! (MDOC_SYNPRETTY & n->flags))
                 outflags &= ~MMAN_Bk;                  outflags &= ~MMAN_Bk;
 }  }
   
Line 910  pre_bl(DECL_ARGS)
Line 909  pre_bl(DECL_ARGS)
 {  {
         size_t           icol;          size_t           icol;
   
           /*
            * print_offs() will increase the -offset to account for
            * a possible enclosing .It, but any enclosed .It blocks
            * just nest and do not add up their indentation.
            */
           if (n->norm->Bl.offs) {
                   print_offs(n->norm->Bl.offs);
                   Bl_stack[Bl_stack_len++] = 0;
           }
   
         switch (n->norm->Bl.type) {          switch (n->norm->Bl.type) {
         case (LIST_enum):          case (LIST_enum):
                 n->norm->Bl.count = 0;                  n->norm->Bl.count = 0;
Line 942  post_bl(DECL_ARGS)
Line 951  post_bl(DECL_ARGS)
         default:          default:
                 break;                  break;
         }          }
         outflags |= MMAN_PP | MMAN_nl;  
         outflags &= ~(MMAN_sp | MMAN_br);          if (n->norm->Bl.offs) {
                   print_line(".RE", MMAN_nl);
                   assert(Bl_stack_len);
                   Bl_stack_len--;
                   assert(0 == Bl_stack[Bl_stack_len]);
           } else {
                   outflags |= MMAN_PP | MMAN_nl;
                   outflags &= ~(MMAN_sp | MMAN_br);
           }
   
         /* Maybe we are inside an enclosing list? */          /* Maybe we are inside an enclosing list? */
         if (NULL != n->parent->next)          if (NULL != n->parent->next)

Legend:
Removed from v.1.48  
changed lines
  Added in v.1.52

CVSweb