public int diff_xIndex(LinkedList<Diff> diffs, int loc) {
		int chars1 = 0;
		int chars2 = 0;
		int last_chars1 = 0;
		int last_chars2 = 0;
		Diff lastDiff = null;
		for (Diff aDiff : diffs) {
			if (aDiff.operation != Operation.INSERT) {
				// Equality or deletion.
				chars1 += aDiff.text.length();
			}
			if (aDiff.operation != Operation.DELETE) {
				// Equality or insertion.
				chars2 += aDiff.text.length();
			}
			if (chars1 > loc) {
				// Overshot the location.
				lastDiff = aDiff;
				break;
			}
			last_chars1 = chars1;
			last_chars2 = chars2;
		}
		if (lastDiff != null && lastDiff.operation == Operation.DELETE) {
			// The location was deleted.
			return last_chars2;
		}
		// Add the remaining character length.
		return last_chars2 + (loc - last_chars1);
	}