- if (ARGS_TABSEP & fl) {
- /* Scan ahead to unescaped tab. */
-
- p = strchr(*v, '\t');
-
- /* Scan ahead to unescaped `Ta'. */
-
- for (pp = *v; ; pp++) {
- if (NULL == (pp = strstr(pp, "Ta")))
- break;
- if (pp > *v && ' ' != *(pp - 1))
- continue;
- if (' ' == *(pp + 2) || 0 == *(pp + 2))
- break;
- }
-
- /* Choose delimiter tab/Ta. */
-
- if (p && pp)
- p = (p < pp ? p : pp);
- else if ( ! p && pp)
- p = pp;
-
- /* Strip delimiter's preceding whitespace. */
-
- if (p && p > *v) {
- pp = p - 1;
- while (pp > *v && ' ' == *pp)
- pp--;
- if (pp == *v && ' ' == *pp)
- *pp = 0;
- else if (' ' == *pp)
- *(pp + 1) = 0;
- }
-
- /* ...in- and proceding whitespace. */
-
- if (p && ('\t' != *p)) {
- *p++ = 0;
- *p++ = 0;
- } else if (p)
- *p++ = 0;
-
- if (p) {
- while (' ' == *p)
- p++;
- if (0 != *p)
- *(p - 1) = 0;
- *pos += (int)(p - *v);
- }
-
- if (p && 0 == *p)
- if ( ! pwarn(mdoc, line, *pos, WCOLEMPTY))
- return(0);
- if (p && 0 == *p && p > *v && ' ' == *(p - 1))
- if ( ! pwarn(mdoc, line, *pos, WTAILWS))
- return(0);
-
- if (p)
- return(ARGS_PHRASE);
-
- /* Configure the eoln case, too. */
+ /* Whitespace check for eoln case... */
+ if (0 == *p && ' ' == *(p - 1) && ! (ARGS_NOWARN & fl))
+ if ( ! mdoc_pwarn(m, line, *pos, ETAILWS))
+ return(ARGS_ERROR);