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

version 1.218, 2011/02/06 23:02:31 version 1.223, 2011/04/04 16:05:36
Line 32 
Line 32 
 #include "out.h"  #include "out.h"
 #include "term.h"  #include "term.h"
 #include "mdoc.h"  #include "mdoc.h"
 #include "chars.h"  
 #include "main.h"  #include "main.h"
   
 #define INDENT            5  #define INDENT            5
Line 352  print_mdoc_node(DECL_ARGS)
Line 351  print_mdoc_node(DECL_ARGS)
         case (MDOC_TEXT):          case (MDOC_TEXT):
                 if (' ' == *n->string && MDOC_LINE & n->flags)                  if (' ' == *n->string && MDOC_LINE & n->flags)
                         term_newln(p);                          term_newln(p);
                   if (MDOC_DELIMC & n->flags)
                           p->flags |= TERMP_NOSPACE;
                 term_word(p, n->string);                  term_word(p, n->string);
                   if (MDOC_DELIMO & n->flags)
                           p->flags |= TERMP_NOSPACE;
                 break;                  break;
         case (MDOC_EQN):          case (MDOC_EQN):
                   term_word(p, n->eqn->data);
                 break;                  break;
         case (MDOC_TBL):          case (MDOC_TBL):
                 term_tbl(p, n->span);                  term_tbl(p, n->span);
Line 412  print_mdoc_node(DECL_ARGS)
Line 416  print_mdoc_node(DECL_ARGS)
 static void  static void
 print_mdoc_foot(struct termp *p, const void *arg)  print_mdoc_foot(struct termp *p, const void *arg)
 {  {
         char            buf[DATESIZ], os[BUFSIZ];  
         const struct mdoc_meta *m;          const struct mdoc_meta *m;
   
         m = (const struct mdoc_meta *)arg;          m = (const struct mdoc_meta *)arg;
Line 427  print_mdoc_foot(struct termp *p, const void *arg)
Line 430  print_mdoc_foot(struct termp *p, const void *arg)
          * SYSTEM                  DATE                    SYSTEM           * SYSTEM                  DATE                    SYSTEM
          */           */
   
         time2a(m->date, buf, DATESIZ);  
         strlcpy(os, m->os, BUFSIZ);  
   
         term_vspace(p);          term_vspace(p);
   
         p->offset = 0;          p->offset = 0;
         p->rmargin = (p->maxrmargin -          p->rmargin = (p->maxrmargin -
                         term_strlen(p, buf) + term_len(p, 1)) / 2;                          term_strlen(p, m->date) + term_len(p, 1)) / 2;
         p->flags |= TERMP_NOSPACE | TERMP_NOBREAK;          p->flags |= TERMP_NOSPACE | TERMP_NOBREAK;
   
         term_word(p, os);          term_word(p, m->os);
         term_flushln(p);          term_flushln(p);
   
         p->offset = p->rmargin;          p->offset = p->rmargin;
         p->rmargin = p->maxrmargin - term_strlen(p, os);          p->rmargin = p->maxrmargin - term_strlen(p, m->os);
         p->flags |= TERMP_NOLPAD | TERMP_NOSPACE;          p->flags |= TERMP_NOLPAD | TERMP_NOSPACE;
   
         term_word(p, buf);          term_word(p, m->date);
         term_flushln(p);          term_flushln(p);
   
         p->offset = p->rmargin;          p->offset = p->rmargin;
Line 452  print_mdoc_foot(struct termp *p, const void *arg)
Line 452  print_mdoc_foot(struct termp *p, const void *arg)
         p->flags &= ~TERMP_NOBREAK;          p->flags &= ~TERMP_NOBREAK;
         p->flags |= TERMP_NOLPAD | TERMP_NOSPACE;          p->flags |= TERMP_NOLPAD | TERMP_NOSPACE;
   
         term_word(p, os);          term_word(p, m->os);
         term_flushln(p);          term_flushln(p);
   
         p->offset = 0;          p->offset = 0;
Line 1183  termp_rs_pre(DECL_ARGS)
Line 1183  termp_rs_pre(DECL_ARGS)
 static int  static int
 termp_rv_pre(DECL_ARGS)  termp_rv_pre(DECL_ARGS)
 {  {
         const struct mdoc_node  *nn;          int              nchild;
   
         term_newln(p);          term_newln(p);
         term_word(p, "The");          term_word(p, "The");
   
         for (nn = n->child; nn; nn = nn->next) {          nchild = n->nchild;
   
           for (n = n->child; n; n = n->next) {
                 term_fontpush(p, TERMFONT_BOLD);                  term_fontpush(p, TERMFONT_BOLD);
                 term_word(p, nn->string);                  term_word(p, n->string);
                 term_fontpop(p);                  term_fontpop(p);
                 p->flags |= TERMP_NOSPACE;                  p->flags |= TERMP_NOSPACE;
                 if (nn->next && NULL == nn->next->next)                  term_word(p, "()");
                         term_word(p, "(), and");  
                 else if (nn->next)                  if (nchild > 2 && n->next) {
                         term_word(p, "(),");                          p->flags |= TERMP_NOSPACE;
                 else                          term_word(p, ",");
                         term_word(p, "()");                  }
   
                   if (n->next && NULL == n->next->next)
                           term_word(p, "and");
         }          }
   
         if (n->child && n->child->next)          if (nchild > 1)
                 term_word(p, "functions return");                  term_word(p, "functions return");
         else          else
                 term_word(p, "function returns");                  term_word(p, "function returns");
Line 1306  termp_xr_pre(DECL_ARGS)
Line 1311  termp_xr_pre(DECL_ARGS)
                 return(0);                  return(0);
         p->flags |= TERMP_NOSPACE;          p->flags |= TERMP_NOSPACE;
         term_word(p, "(");          term_word(p, "(");
           p->flags |= TERMP_NOSPACE;
         term_word(p, nn->string);          term_word(p, nn->string);
           p->flags |= TERMP_NOSPACE;
         term_word(p, ")");          term_word(p, ")");
   
         return(0);          return(0);
Line 1536  termp_fn_pre(DECL_ARGS)
Line 1543  termp_fn_pre(DECL_ARGS)
   
         p->flags |= TERMP_NOSPACE;          p->flags |= TERMP_NOSPACE;
         term_word(p, "(");          term_word(p, "(");
           p->flags |= TERMP_NOSPACE;
   
         for (nn = n->child->next; nn; nn = nn->next) {          for (nn = n->child->next; nn; nn = nn->next) {
                 term_fontpush(p, TERMFONT_UNDER);                  term_fontpush(p, TERMFONT_UNDER);
                 term_word(p, nn->string);                  term_word(p, nn->string);
                 term_fontpop(p);                  term_fontpop(p);
   
                 if (nn->next)                  if (nn->next) {
                           p->flags |= TERMP_NOSPACE;
                         term_word(p, ",");                          term_word(p, ",");
                   }
         }          }
   
           p->flags |= TERMP_NOSPACE;
         term_word(p, ")");          term_word(p, ")");
   
         if (MDOC_SYNPRETTY & n->flags)          if (MDOC_SYNPRETTY & n->flags) {
                   p->flags |= TERMP_NOSPACE;
                 term_word(p, ";");                  term_word(p, ";");
           }
   
         return(0);          return(0);
 }  }
Line 1571  termp_fa_pre(DECL_ARGS)
Line 1584  termp_fa_pre(DECL_ARGS)
                 term_word(p, nn->string);                  term_word(p, nn->string);
                 term_fontpop(p);                  term_fontpop(p);
   
                 if (nn->next)                  if (nn->next) {
                           p->flags |= TERMP_NOSPACE;
                         term_word(p, ",");                          term_word(p, ",");
                   }
         }          }
   
         if (n->child && n->next && n->next->tok == MDOC_Fa)          if (n->child && n->next && n->next->tok == MDOC_Fa) {
                   p->flags |= TERMP_NOSPACE;
                 term_word(p, ",");                  term_word(p, ",");
           }
   
         return(0);          return(0);
 }  }
Line 2011  termp_fo_pre(DECL_ARGS)
Line 2028  termp_fo_pre(DECL_ARGS)
         } else if (MDOC_BODY == n->type) {          } else if (MDOC_BODY == n->type) {
                 p->flags |= TERMP_NOSPACE;                  p->flags |= TERMP_NOSPACE;
                 term_word(p, "(");                  term_word(p, "(");
                   p->flags |= TERMP_NOSPACE;
                 return(1);                  return(1);
         }          }
   
Line 2034  termp_fo_post(DECL_ARGS)
Line 2052  termp_fo_post(DECL_ARGS)
         if (MDOC_BODY != n->type)          if (MDOC_BODY != n->type)
                 return;                  return;
   
           p->flags |= TERMP_NOSPACE;
         term_word(p, ")");          term_word(p, ")");
   
         if (MDOC_SYNPRETTY & n->flags)          if (MDOC_SYNPRETTY & n->flags) {
                   p->flags |= TERMP_NOSPACE;
                 term_word(p, ";");                  term_word(p, ";");
           }
 }  }
   
   
Line 2111  termp____post(DECL_ARGS)
Line 2132  termp____post(DECL_ARGS)
         if (NULL == n->parent || MDOC_Rs != n->parent->tok)          if (NULL == n->parent || MDOC_Rs != n->parent->tok)
                 return;                  return;
   
           p->flags |= TERMP_NOSPACE;
         if (NULL == n->next) {          if (NULL == n->next) {
                 term_word(p, ".");                  term_word(p, ".");
                 p->flags |= TERMP_SENTENCE;                  p->flags |= TERMP_SENTENCE;
Line 2147  termp_lk_pre(DECL_ARGS)
Line 2169  termp_lk_pre(DECL_ARGS)
   
         term_fontpop(p);          term_fontpop(p);
   
           p->flags |= TERMP_NOSPACE;
         term_word(p, ":");          term_word(p, ":");
   
         term_fontpush(p, TERMFONT_BOLD);          term_fontpush(p, TERMFONT_BOLD);

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

CVSweb