protected String makeIndentStr(int indent) {
		String tabSpaceString = /* (tab x 20) . (space x 20) */
		"\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t                    ";
		if (indent < 0)
			return "NEGATIVEINDENT" + indent;

		int tabs = indent / tabWidth;
		indent -= tabs * tabWidth;
		if (tabs <= 20 && indent <= 20) {
			/* The fast way. */
			return tabSpaceString.substring(20 - tabs, 20 + indent);
		} else {
			/* the not so fast way */
			StringBuffer sb = new StringBuffer(tabs + indent);
			while (tabs > 20) {
				sb.append(tabSpaceString.substring(0, 20));
				tabs -= 20;
			}
			sb.append(tabSpaceString.substring(0, tabs));
			while (indent > 20) {
				sb.append(tabSpaceString.substring(20));
				indent -= 20;
			}
			sb.append(tabSpaceString.substring(40 - indent));
			return sb.toString();
		}
	}