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

Diff for /mandoc/Attic/mdoc_action.c between version 1.24 and 1.34

version 1.24, 2009/07/07 11:47:17 version 1.34, 2009/07/26 10:29:39
Line 32  struct actions {
Line 32  struct actions {
         int     (*post)(POST_ARGS);          int     (*post)(POST_ARGS);
 };  };
   
 static  int       concat(struct mdoc *, const struct mdoc_node *,  
                         char *, size_t);  
   
 static  int       post_ar(POST_ARGS);  static  int       post_ar(POST_ARGS);
   static  int       post_at(POST_ARGS);
 static  int       post_bl(POST_ARGS);  static  int       post_bl(POST_ARGS);
 static  int       post_bl_head(POST_ARGS);  static  int       post_bl_head(POST_ARGS);
 static  int       post_bl_width(POST_ARGS);  
 static  int       post_bl_tagwidth(POST_ARGS);  static  int       post_bl_tagwidth(POST_ARGS);
   static  int       post_bl_width(POST_ARGS);
 static  int       post_dd(POST_ARGS);  static  int       post_dd(POST_ARGS);
 static  int       post_display(POST_ARGS);  static  int       post_display(POST_ARGS);
 static  int       post_dt(POST_ARGS);  static  int       post_dt(POST_ARGS);
 static  int       post_lk(POST_ARGS);  static  int       post_lb(POST_ARGS);
 static  int       post_nm(POST_ARGS);  static  int       post_nm(POST_ARGS);
 static  int       post_os(POST_ARGS);  static  int       post_os(POST_ARGS);
 static  int       post_prol(POST_ARGS);  static  int       post_prol(POST_ARGS);
 static  int       post_sh(POST_ARGS);  static  int       post_sh(POST_ARGS);
   static  int       post_st(POST_ARGS);
 static  int       post_std(POST_ARGS);  static  int       post_std(POST_ARGS);
   static  int       post_tilde(POST_ARGS);
   
 static  int       pre_bd(PRE_ARGS);  static  int       pre_bd(PRE_ARGS);
 static  int       pre_dl(PRE_ARGS);  static  int       pre_dl(PRE_ARGS);
Line 89  const struct actions mdoc_actions[MDOC_MAX] = {
Line 89  const struct actions mdoc_actions[MDOC_MAX] = {
         { NULL, post_nm }, /* Nm */          { NULL, post_nm }, /* Nm */
         { NULL, NULL }, /* Op */          { NULL, NULL }, /* Op */
         { NULL, NULL }, /* Ot */          { NULL, NULL }, /* Ot */
         { NULL, NULL }, /* Pa */          { NULL, post_tilde }, /* Pa */
         { NULL, post_std }, /* Rv */          { NULL, post_std }, /* Rv */
         { NULL, NULL }, /* St */          { NULL, post_st }, /* St */
         { NULL, NULL }, /* Va */          { NULL, NULL }, /* Va */
         { NULL, NULL }, /* Vt */          { NULL, NULL }, /* Vt */
         { NULL, NULL }, /* Xr */          { NULL, NULL }, /* Xr */
Line 109  const struct actions mdoc_actions[MDOC_MAX] = {
Line 109  const struct actions mdoc_actions[MDOC_MAX] = {
         { NULL, NULL }, /* Ac */          { NULL, NULL }, /* Ac */
         { NULL, NULL }, /* Ao */          { NULL, NULL }, /* Ao */
         { NULL, NULL }, /* Aq */          { NULL, NULL }, /* Aq */
         { NULL, NULL }, /* At */          { NULL, post_at }, /* At */
         { NULL, NULL }, /* Bc */          { NULL, NULL }, /* Bc */
         { NULL, NULL }, /* Bf */          { NULL, NULL }, /* Bf */
         { NULL, NULL }, /* Bo */          { NULL, NULL }, /* Bo */
Line 160  const struct actions mdoc_actions[MDOC_MAX] = {
Line 160  const struct actions mdoc_actions[MDOC_MAX] = {
         { NULL, NULL }, /* Hf */          { NULL, NULL }, /* Hf */
         { NULL, NULL }, /* Fr */          { NULL, NULL }, /* Fr */
         { NULL, NULL }, /* Ud */          { NULL, NULL }, /* Ud */
         { NULL, NULL }, /* Lb */          { NULL, post_lb }, /* Lb */
         { NULL, NULL }, /* Lp */          { NULL, NULL }, /* Lp */
         { NULL, post_lk }, /* Lk */          { NULL, post_tilde }, /* Lk */
         { NULL, NULL }, /* Mt */          { NULL, NULL }, /* Mt */
         { NULL, NULL }, /* Brq */          { NULL, NULL }, /* Brq */
         { NULL, NULL }, /* Bro */          { NULL, NULL }, /* Bro */
Line 172  const struct actions mdoc_actions[MDOC_MAX] = {
Line 172  const struct actions mdoc_actions[MDOC_MAX] = {
         { NULL, NULL }, /* En */          { NULL, NULL }, /* En */
         { NULL, NULL }, /* Dx */          { NULL, NULL }, /* Dx */
         { NULL, NULL }, /* %Q */          { NULL, NULL }, /* %Q */
           { NULL, NULL }, /* br */
           { NULL, NULL }, /* sp */
 };  };
   
   static  int       concat(struct mdoc *, const struct mdoc_node *,
                           char *, size_t);
   
 #ifdef __linux__  #ifdef __linux__
 extern  size_t  strlcat(char *, const char *, size_t);  extern  size_t    strlcat(char *, const char *, size_t);
 #endif  #endif
   
   
Line 290  post_nm(POST_ARGS)
Line 294  post_nm(POST_ARGS)
   
   
 static int  static int
   post_lb(POST_ARGS)
   {
           const char      *p;
           char            *buf;
           size_t           sz;
   
           assert(MDOC_TEXT == m->last->child->type);
           p = mdoc_a2lib(m->last->child->string);
           if (NULL == p) {
                   sz = strlen(m->last->child->string) +
                           2 + strlen("\\(lqlibrary\\(rq");
                   buf = malloc(sz);
                   if (NULL == buf)
                           return(mdoc_nerr(m, m->last, EMALLOC));
                   (void)snprintf(buf, sz, "library \\(lq%s\\(rq",
                                   m->last->child->string);
                   free(m->last->child->string);
                   m->last->child->string = buf;
                   return(1);
           }
   
           free(m->last->child->string);
           m->last->child->string = strdup(p);
           if (NULL == m->last->child->string)
                   return(mdoc_nerr(m, m->last, EMALLOC));
           return(1);
   }
   
   
   static int
   post_st(POST_ARGS)
   {
           const char      *p;
   
           assert(MDOC_TEXT == m->last->child->type);
           p = mdoc_a2st(m->last->child->string);
           assert(p);
           free(m->last->child->string);
           m->last->child->string = strdup(p);
           if (NULL == m->last->child->string)
                   return(mdoc_nerr(m, m->last, EMALLOC));
           return(1);
   }
   
   
   static int
   post_at(POST_ARGS)
   {
           struct mdoc_node *n;
           const char       *p;
   
           if (m->last->child) {
                   assert(MDOC_TEXT == m->last->child->type);
                   p = mdoc_a2att(m->last->child->string);
                   assert(p);
                   free(m->last->child->string);
                   m->last->child->string = strdup(p);
                   if (NULL == m->last->child->string)
                           return(mdoc_nerr(m, m->last, EMALLOC));
                   return(1);
           }
   
           n = m->last;
           m->next = MDOC_NEXT_CHILD;
   
           if ( ! mdoc_word_alloc(m, n->line, n->pos, "AT&T UNIX"))
                   return(0);
   
           m->last = n;
           m->next = MDOC_NEXT_SIBLING;
           return(1);
   }
   
   
   static int
 post_sh(POST_ARGS)  post_sh(POST_ARGS)
 {  {
         enum mdoc_sec    sec;          enum mdoc_sec    sec;
Line 408  post_dt(POST_ARGS)
Line 487  post_dt(POST_ARGS)
                 free(m->meta.vol);                  free(m->meta.vol);
                 if (NULL == (m->meta.vol = strdup(cp)))                  if (NULL == (m->meta.vol = strdup(cp)))
                         return(mdoc_nerr(m, m->last, EMALLOC));                          return(mdoc_nerr(m, m->last, EMALLOC));
                 n = n->next;  
         } else {          } else {
                 cp = mdoc_a2arch(n->string);                  cp = mdoc_a2arch(n->string);
                 if (NULL == cp) {                  if (NULL == cp) {
Line 452  post_os(POST_ARGS)
Line 530  post_os(POST_ARGS)
         if (NULL == (m->meta.os = strdup(buf)))          if (NULL == (m->meta.os = strdup(buf)))
                 return(mdoc_nerr(m, m->last, EMALLOC));                  return(mdoc_nerr(m, m->last, EMALLOC));
   
         m->flags |= MDOC_PBODY;  
         return(post_prol(m));          return(post_prol(m));
 }  }
   
Line 656  post_bl(POST_ARGS)
Line 733  post_bl(POST_ARGS)
   
   
 static int  static int
 post_lk(POST_ARGS)  post_tilde(POST_ARGS)
 {  {
         struct mdoc_node *n;          struct mdoc_node *n;
   
Line 666  post_lk(POST_ARGS)
Line 743  post_lk(POST_ARGS)
         n = m->last;          n = m->last;
         m->next = MDOC_NEXT_CHILD;          m->next = MDOC_NEXT_CHILD;
   
         /* XXX: this isn't documented anywhere! */          /* XXX: not documented for `Lk'. */
         if ( ! mdoc_word_alloc(m, m->last->line,          if ( ! mdoc_word_alloc(m, m->last->line, m->last->pos, "~"))
                                 m->last->pos, "~"))  
                 return(0);                  return(0);
   
         m->last = n;          m->last = n;
Line 687  post_ar(POST_ARGS)
Line 763  post_ar(POST_ARGS)
   
         n = m->last;          n = m->last;
         m->next = MDOC_NEXT_CHILD;          m->next = MDOC_NEXT_CHILD;
         if ( ! mdoc_word_alloc(m, m->last->line,          if ( ! mdoc_word_alloc(m, m->last->line, m->last->pos, "file"))
                                 m->last->pos, "file"))  
                 return(0);                  return(0);
         m->next = MDOC_NEXT_SIBLING;          m->next = MDOC_NEXT_SIBLING;
         if ( ! mdoc_word_alloc(m, m->last->line,          if ( ! mdoc_word_alloc(m, m->last->line, m->last->pos, "..."))
                                 m->last->pos, "..."))  
                 return(0);                  return(0);
   
         m->last = n;          m->last = n;
Line 747  post_prol(POST_ARGS)
Line 821  post_prol(POST_ARGS)
         }          }
   
         mdoc_node_freelist(n);          mdoc_node_freelist(n);
   
           if (m->meta.title && m->meta.date && m->meta.os)
                   m->flags |= MDOC_PBODY;
         return(1);          return(1);
 }  }
   
Line 757  pre_dl(PRE_ARGS)
Line 834  pre_dl(PRE_ARGS)
   
         if (MDOC_BODY == n->type)          if (MDOC_BODY == n->type)
                 m->flags |= MDOC_LITERAL;                  m->flags |= MDOC_LITERAL;
   
         return(1);          return(1);
 }  }
   
Line 769  pre_bd(PRE_ARGS)
Line 847  pre_bd(PRE_ARGS)
         if (MDOC_BODY != n->type)          if (MDOC_BODY != n->type)
                 return(1);                  return(1);
   
         /* Enter literal context if `Bd -literal' or * -unfilled'. */          /* Enter literal context if `Bd -literal' or `-unfilled'. */
   
           /*
            * TODO: `-offset' without an argument should be the width of
            * the literal "<string>".
            */
   
         for (n = n->parent, i = 0; i < (int)n->args->argc; i++)          for (n = n->parent, i = 0; i < (int)n->args->argc; i++)
                 if (MDOC_Literal == n->args->argv[i].arg)                  if (MDOC_Literal == n->args->argv[i].arg)

Legend:
Removed from v.1.24  
changed lines
  Added in v.1.34

CVSweb