-/* $Id: argv.c,v 1.32 2009/02/26 14:56:27 kristaps Exp $ */
+/* $Id: argv.c,v 1.35 2009/03/03 22:28:21 kristaps Exp $ */
/*
* Copyright (c) 2008 Kristaps Dzonsons <kristaps@kth.se>
*
/* LINTED */
for (i = 0; i < c; i++) {
- if (MDOC_Column != n->data.block.argv[i].arg)
- continue;
- fl |= ARGS_TABSEP;
- fl &= ~ARGS_DELIM;
- break;
+ switch (n->data.block.argv[i].arg) {
+ case (MDOC_Column):
+ fl |= ARGS_TABSEP;
+ fl &= ~ARGS_DELIM;
+ i = c;
+ break;
+ case (MDOC_Diag):
+ fl |= ARGS_QUOTED;
+ i = c;
+ break;
+ default:
+ break;
+ }
}
}
if ( ! mdoc_iscdelim(buf[i]))
break;
i++;
+ /* There must be at least one space... */
+ if (0 == buf[i] || ! isspace((int)buf[i]))
+ break;
+ i++;
while (buf[i] && isspace((int)buf[i]))
i++;
}
p++;
if (0 != *p)
*(p - 1) = 0;
- *pos += p - *v;
+ *pos += (int)(p - *v);
}
if (p && 0 == *p)
if (p > *v && ' ' == *(p - 1))
if ( ! pwarn(mdoc, line, *pos, WTAILWS))
return(0);
- *pos += p - *v;
+ *pos += (int)(p - *v);
return(ARGS_WORD);
}
return(0);
} else if (ARGS_EOLN == c)
break;
- v->value[v->sz] = p;
+ v->value[(int)v->sz] = p;
}
if (0 < v->sz && v->sz < MDOC_LINEARG_MAX)