void (Runnable action) { if (isIsReadOnly()) return; final boolean before = doesNotContainAnySpaces(); final int lineFeedsBefore = getLineFeeds(); action.run(); if (isLineFeedsAreReadOnly()) { setLineFeeds(lineFeedsBefore); } if (isIsSafe()) { final boolean after = doesNotContainAnySpaces(); if (before && !after) { // Actions below seem to be useless if 'after' value is 'false'. Are kept as historical heritage. mySpaces = 0; myIndentSpaces = 0; setLineFeeds(0); } else if (!before && after) { mySpaces = 1; myIndentSpaces = 0; } } }