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

Diff for /mandoc/Attic/mdocml.c between version 1.38 and 1.41

version 1.38, 2009/01/09 14:45:44 version 1.41, 2009/01/12 16:39:57
Line 192  print_node(const struct mdoc_node *n, int indent)
Line 192  print_node(const struct mdoc_node *n, int indent)
         params = NULL;          params = NULL;
         sz = 0;          sz = 0;
   
           /* FIXME: put parts of this in util.c. */
         switch (n->type) {          switch (n->type) {
         case (MDOC_TEXT):          case (MDOC_TEXT):
                 assert(NULL == n->child);                  assert(NULL == n->child);
Line 199  print_node(const struct mdoc_node *n, int indent)
Line 200  print_node(const struct mdoc_node *n, int indent)
                 t = "text";                  t = "text";
                 break;                  break;
         case (MDOC_BODY):          case (MDOC_BODY):
                 p = mdoc_macronames[n->data.body.tok];                  p = mdoc_macronames[n->tok];
                 t = "block-body";                  t = "block-body";
                 break;                  break;
         case (MDOC_HEAD):          case (MDOC_HEAD):
                 p = mdoc_macronames[n->data.head.tok];                  p = mdoc_macronames[n->tok];
                 t = "block-head";                  t = "block-head";
                 break;                  break;
         case (MDOC_TAIL):          case (MDOC_TAIL):
                 p = mdoc_macronames[n->data.tail.tok];                  p = mdoc_macronames[n->tok];
                 t = "block-tail";                  t = "block-tail";
                 break;                  break;
         case (MDOC_ELEM):          case (MDOC_ELEM):
                 p = mdoc_macronames[n->data.elem.tok];                  p = mdoc_macronames[n->tok];
                 t = "element";                  t = "element";
                 argv = n->data.elem.argv;                  argv = n->data.elem.argv;
                 argc = n->data.elem.argc;                  argc = n->data.elem.argc;
                 break;                  break;
         case (MDOC_BLOCK):          case (MDOC_BLOCK):
                 p = mdoc_macronames[n->data.block.tok];                  p = mdoc_macronames[n->tok];
                 t = "block";                  t = "block";
                 argv = n->data.block.argv;                  argv = n->data.block.argv;
                 argc = n->data.block.argc;                  argc = n->data.block.argc;
Line 237  print_node(const struct mdoc_node *n, int indent)
Line 238  print_node(const struct mdoc_node *n, int indent)
   
         for (i = 0; i < (int)argc; i++) {          for (i = 0; i < (int)argc; i++) {
                 (void)printf(" -%s", mdoc_argnames[argv[i].arg]);                  (void)printf(" -%s", mdoc_argnames[argv[i].arg]);
                   if (j > 0)
                           (void)printf(" [");
                 for (j = 0; j < (int)argv[i].sz; j++)                  for (j = 0; j < (int)argv[i].sz; j++)
                         (void)printf(" \"%s\"", argv[i].value[j]);                          (void)printf(" [%s]", argv[i].value[j]);
                   if (j > 0)
                           (void)printf(" ]");
         }          }
   
         for (i = 0; i < (int)sz; i++)          for (i = 0; i < (int)sz; i++)
                 (void)printf(" \"%s\"", params[i]);                  (void)printf(" [%s]", params[i]);
   
         (void)printf("\n");          (void)printf(" %d:%d\n", n->line, n->pos);
   
         if (n->child)          if (n->child)
                 print_node(n->child, indent + 1);                  print_node(n->child, indent + 1);
Line 328  msg_err(void *arg, int line, int col, enum mdoc_err ty
Line 333  msg_err(void *arg, int line, int col, enum mdoc_err ty
 {  {
         char             *lit;          char             *lit;
         struct md_parse  *p;          struct md_parse  *p;
         int               i;  
   
         p = (struct md_parse *)arg;          p = (struct md_parse *)arg;
   
Line 409  msg_err(void *arg, int line, int col, enum mdoc_err ty
Line 413  msg_err(void *arg, int line, int col, enum mdoc_err ty
                 lit = "syntax: expected value for macro argument";                  lit = "syntax: expected value for macro argument";
                 break;                  break;
         case (ERR_SYNTAX_ARGBAD):          case (ERR_SYNTAX_ARGBAD):
                 lit = "syntax: invalid value for macro argument";                  lit = "syntax: invalid value(s) for macro argument";
                 break;                  break;
           case (ERR_SYNTAX_ARGMISS):
                   lit = "syntax: missing required argument(s) for macro";
                   break;
         case (ERR_SYNTAX_ARGMANY):          case (ERR_SYNTAX_ARGMANY):
                 lit = "syntax: too many values for macro argument";                  lit = "syntax: too many values for macro argument";
                 break;                  break;
           case (ERR_SYNTAX_CHILDBAD):
                   lit = "syntax: invalid child for parent macro";
                   break;
           case (ERR_SYNTAX_PARENTBAD):
                   lit = "syntax: invalid parent for macro";
                   break;
         case (ERR_SYNTAX_CHILDHEAD):          case (ERR_SYNTAX_CHILDHEAD):
                 lit = "syntax: expected only block-header section";                  lit = "syntax: expected only block-header section";
                 break;                  break;
Line 431  msg_err(void *arg, int line, int col, enum mdoc_err ty
Line 444  msg_err(void *arg, int line, int col, enum mdoc_err ty
                 /* NOTREACHED */                  /* NOTREACHED */
         }          }
   
         (void)fprintf(stderr, "%s:%d: error: %s", p->name, p->lnn, lit);          (void)fprintf(stderr, "%s:%d: error: %s (column %d)\n",
                           p->name, line, lit, col);
         if (p->dbg < 1) {  
                 (void)fprintf(stderr, " (column %d)\n", col);  
                 return(0);  
         }  
   
         (void)fprintf(stderr, "\nFrom: %s\n      ", p->line);  
         for (i = 0; i < col; i++)  
                 (void)fprintf(stderr, " ");  
         (void)fprintf(stderr, "^\n");  
   
         return(0);          return(0);
 }  }
   
Line 451  static void
Line 454  static void
 msg_msg(void *arg, int line, int col, const char *msg)  msg_msg(void *arg, int line, int col, const char *msg)
 {  {
         struct md_parse  *p;          struct md_parse  *p;
         int               i;  
   
         p = (struct md_parse *)arg;          p = (struct md_parse *)arg;
   
         if (p->dbg < 2)          if (p->dbg < 2)
                 return;                  return;
   
         (void)printf("%s:%d: %s", p->name, line, msg);          (void)printf("%s:%d: %s (column %d)\n",
                           p->name, line, msg, col);
         if (p->dbg < 3) {  
                 (void)printf(" (column %d)\n", col);  
                 return;  
         }  
   
         (void)printf("\nFrom: %s\n      ", p->line);  
         for (i = 0; i < col; i++)  
                 (void)printf(" ");  
         (void)printf("^\n");  
 }  }
   
   
Line 477  msg_warn(void *arg, int line, int col, enum mdoc_warn 
Line 470  msg_warn(void *arg, int line, int col, enum mdoc_warn 
 {  {
         char             *lit;          char             *lit;
         struct md_parse  *p;          struct md_parse  *p;
         int               i;  
         extern char      *__progname;          extern char      *__progname;
   
         p = (struct md_parse *)arg;          p = (struct md_parse *)arg;
Line 501  msg_warn(void *arg, int line, int col, enum mdoc_warn 
Line 493  msg_warn(void *arg, int line, int col, enum mdoc_warn 
                 lit = "syntax: argument-like value";                  lit = "syntax: argument-like value";
                 break;                  break;
         case (WARN_SYNTAX_EMPTYBODY):          case (WARN_SYNTAX_EMPTYBODY):
                 lit = "syntax: empty block-body section";                  lit = "syntax: macro suggests non-empty block-body section";
                 break;                  break;
           case (WARN_SYNTAX_EMPTYHEAD):
                   lit = "syntax: macro suggests non-empty block-head section";
                   break;
           case (WARN_SYNTAX_NOBODY):
                   lit = "syntax: macro suggests empty block-body section";
                   break;
         case (WARN_SEC_OO):          case (WARN_SEC_OO):
                 lit = "section is out of conventional order";                  lit = "section is out of conventional order";
                 break;                  break;
Line 533  msg_warn(void *arg, int line, int col, enum mdoc_warn 
Line 531  msg_warn(void *arg, int line, int col, enum mdoc_warn 
         }          }
   
   
         (void)fprintf(stderr, "%s:%d: warning: %s", p->name, line, lit);          (void)fprintf(stderr, "%s:%d: warning: %s (column %d)\n",
                           p->name, line, lit, col);
         if (p->dbg >= 1) {  
                 (void)fprintf(stderr, "\nFrom: %s\n      ", p->line);  
                 for (i = 0; i < col; i++)  
                         (void)fprintf(stderr, " ");  
                 (void)fprintf(stderr, "^\n");  
         } else  
                 (void)fprintf(stderr, " (column %d)\n", col);  
   
         if (p->warn & MD_WARN_ERR) {          if (p->warn & MD_WARN_ERR) {
                 (void)fprintf(stderr, "%s: considering warnings as "                  (void)fprintf(stderr, "%s: considering warnings as "

Legend:
Removed from v.1.38  
changed lines
  Added in v.1.41

CVSweb