- if ( ! mdoc_word_alloc(m, line, 0, buf))
+ /*
+ * Break apart a free-form line into tokens. Spaces are
+ * stripped out of the input.
+ */
+
+ for (j = i; buf[i]; i++) {
+ if (' ' != buf[i])
+ continue;
+
+ /* Escaped whitespace. */
+ if (i && ' ' == buf[i] && '\\' == buf[i - 1])
+ continue;
+
+ buf[i++] = 0;
+ if ( ! pstring(m, line, j, &buf[j], (size_t)(i - j)))
+ return(0);
+ m->next = MDOC_NEXT_SIBLING;
+
+ for ( ; ' ' == buf[i]; i++)
+ /* Skip trailing whitespace. */ ;
+
+ j = i;
+ if (0 == buf[i])
+ break;
+ }
+
+ if (j != i && ! pstring(m, line, j, &buf[j], (size_t)(i - j)))