[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.10 and 1.11

version 1.10, 2012/07/07 13:37:42 version 1.11, 2012/07/07 13:46:59
Line 1 
Line 1 
 /*      $Id$ */  /*      $Id$ */
 /*  /*
  * Copyright (c) 2011 Ingo Schwarze <schwarze@openbsd.org>   * Copyright (c) 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 22 
Line 22 
 #include <string.h>  #include <string.h>
   
 #include "mandoc.h"  #include "mandoc.h"
   #include "out.h"
 #include "man.h"  #include "man.h"
 #include "mdoc.h"  #include "mdoc.h"
 #include "main.h"  #include "main.h"
Line 68  static int   pre_sect(DECL_ARGS);
Line 69  static int   pre_sect(DECL_ARGS);
 static  int       pre_ux(DECL_ARGS);  static  int       pre_ux(DECL_ARGS);
 static  int       pre_xr(DECL_ARGS);  static  int       pre_xr(DECL_ARGS);
 static  void      print_word(struct mman *, const char *);  static  void      print_word(struct mman *, const char *);
   static  void      print_offs(struct mman *, const char *);
 static  void      print_node(DECL_ARGS);  static  void      print_node(DECL_ARGS);
   
 static  const struct manact manacts[MDOC_MAX + 1] = {  static  const struct manact manacts[MDOC_MAX + 1] = {
Line 245  print_word(struct mman *mm, const char *s)
Line 247  print_word(struct mman *mm, const char *s)
         }          }
 }  }
   
   static void
   print_offs(struct mman *mm, const char *v)
   {
           char              buf[24];
           struct roffsu     su;
           size_t            sz;
   
           if (NULL == v || '\0' == *v || 0 == strcmp(v, "left"))
                   sz = 0;
           else if (0 == strcmp(v, "indent"))
                   sz = 6;
           else if (0 == strcmp(v, "indent-two"))
                   sz = 12;
           else if (a2roffsu(v, &su, SCALE_MAX)) {
                   print_word(mm, v);
                   return;
           } else
                   sz = strlen(v);
   
           snprintf(buf, sizeof(buf), "%ldn", sz);
           print_word(mm, buf);
   }
   
 void  void
 man_man(void *arg, const struct man *man)  man_man(void *arg, const struct man *man)
 {  {
Line 445  static int
Line 470  static int
 pre_bd(DECL_ARGS)  pre_bd(DECL_ARGS)
 {  {
   
           if (0 == n->norm->Bd.comp) {
                   mm->need_nl = 1;
                   print_word(mm, ".sp");
           }
         if (DISP_unfilled == n->norm->Bd.type ||          if (DISP_unfilled == n->norm->Bd.type ||
             DISP_literal  == n->norm->Bd.type) {              DISP_literal  == n->norm->Bd.type) {
                 mm->need_nl = 1;                  mm->need_nl = 1;
                 print_word(mm, ".nf");                  print_word(mm, ".nf");
         }          }
         mm->need_nl = 1;          mm->need_nl = 1;
           print_word(mm, ".RS");
           print_offs(mm, n->norm->Bd.offs);
           mm->need_nl = 1;
         return(1);          return(1);
 }  }
   
Line 458  static void
Line 490  static void
 post_bd(DECL_ARGS)  post_bd(DECL_ARGS)
 {  {
   
           mm->need_nl = 1;
           print_word(mm, ".RE");
         if (DISP_unfilled == n->norm->Bd.type ||          if (DISP_unfilled == n->norm->Bd.type ||
             DISP_literal  == n->norm->Bd.type) {              DISP_literal  == n->norm->Bd.type) {
                 mm->need_nl = 1;                  mm->need_nl = 1;

Legend:
Removed from v.1.10  
changed lines
  Added in v.1.11

CVSweb