public AbstractFormattedWalker(final List<? extends Content> xx,
			final FormatStack fstack, final boolean doescape) {
		super();
		this.fstack = fstack;
		this.content = xx.isEmpty() ? EMPTYIT : xx.iterator();
		this.escape = doescape ? fstack.getEscapeStrategy() : null;
		newlineindent = fstack.getPadBetween();
		endofline = fstack.getLevelEOL();
		if (!content.hasNext()) {
			alltext = true;
			allwhite = true;
		} else {
			boolean atext = false;
			boolean awhite = false;
			pending = content.next();
			if (isTextLike(pending)) {
				// the first item in the list is Text-like, and we pre-check
				// to see whether all content is text.... and whether it amounts
				// to something.
				pendingmt = buildMultiText(true);
				analyzeMultiText(pendingmt, 0, mtsourcesize);
				pendingmt.done();

				if (pending == null) {
					atext = true;
					awhite = mtsize == 0;
				}
				if (mtsize == 0) {
					// first content in list is ignorable.
					pendingmt = null;
				}
			}
			alltext = atext;
			allwhite = awhite;
		}
		hasnext = pendingmt != null || pending != null;
	}