]> git.cameronkatri.com Git - mandoc.git/blobdiff - mdoc_argv.c
More use default tags, this time I and U. Also fix a stack overflow
[mandoc.git] / mdoc_argv.c
index 334a608788067db1e957847a95ecffc17a968329..3a36e4e9abc044314cf6fbd0a5fff81a528e20c2 100644 (file)
@@ -1,6 +1,6 @@
-/*     $Id: mdoc_argv.c,v 1.53 2010/06/12 11:58:22 kristaps Exp $ */
+/*     $Id: mdoc_argv.c,v 1.60 2010/09/13 20:15:43 schwarze Exp $ */
 /*
- * Copyright (c) 2008, 2009 Kristaps Dzonsons <kristaps@kth.se>
+ * Copyright (c) 2008, 2009, 2010 Kristaps Dzonsons <kristaps@bsd.lv>
  *
  * Permission to use, copy, modify, and distribute this software for any
  * purpose with or without fee is hereby granted, provided that the above
@@ -45,7 +45,7 @@
 
 #define        MULTI_STEP       5
 
-static int              argv_a2arg(enum mdoct, const char *);
+static enum mdocargt    argv_a2arg(enum mdoct, const char *);
 static enum margserr    args(struct mdoc *, int, int *, 
                                char *, int, char **);
 static int              argv(struct mdoc *, int, 
@@ -95,7 +95,7 @@ static        int mdoc_argflags[MDOC_MAX] = {
        0, /* Os */
        0, /* Sh */
        0, /* Ss */ 
-       ARGS_DELIM, /* Pp */ 
+       0, /* Pp */ 
        ARGS_DELIM, /* D1 */
        ARGS_DELIM, /* Dl */
        0, /* Bd */
@@ -196,7 +196,7 @@ static      int mdoc_argflags[MDOC_MAX] = {
        0, /* Fr */
        0, /* Ud */
        0, /* Lb */
-       ARGS_DELIM, /* Lp */
+       0, /* Lp */
        ARGS_DELIM, /* Lk */
        ARGS_DELIM, /* Mt */
        ARGS_DELIM, /* Brq */
@@ -313,9 +313,11 @@ mdoc_argv_free(struct mdoc_arg *p)
 void
 mdoc_argn_free(struct mdoc_arg *p, int iarg)
 {
-       struct mdoc_argv *arg = &p->argv[iarg];
+       struct mdoc_argv *arg;
        int               j;
 
+       arg = &p->argv[iarg];
+
        if (arg->sz && arg->value) {
                for (j = (int)arg->sz - 1; j >= 0; j--) 
                        free(arg->value[j]);
@@ -359,7 +361,8 @@ mdoc_args(struct mdoc *m, int line, int *pos,
                if (MDOC_Bl == n->tok)
                        break;
 
-       if (n && LIST_column == n->data.Bl.type) {
+       assert(n->data.Bl);
+       if (n && LIST_column == n->data.Bl->type) {
                fl |= ARGS_TABSEP;
                fl &= ~ARGS_DELIM;
        }
@@ -582,7 +585,7 @@ args(struct mdoc *m, int line, int *pos,
 }
 
 
-static int
+static enum mdocargt
 argv_a2arg(enum mdoct tok, const char *p)
 {