fun equalsTrimTrailingWhitespaces()

in intellij-plugin/educational-core/src/com/jetbrains/edu/coursecreator/framework/diff/diffUtils.kt [147:176]


fun equalsTrimTrailingWhitespaces(s1: CharSequence, s2: CharSequence): Boolean {
  var index1 = 0
  var index2 = 0

  while (true) {
    var lastLine1 = false
    var lastLine2 = false

    var end1 = Strings.indexOf(s1, '\n', index1) + 1
    var end2 = Strings.indexOf(s2, '\n', index2) + 1
    if (end1 == 0) {
      end1 = s1.length
      lastLine1 = true
    }
    if (end2 == 0) {
      end2 = s2.length
      lastLine2 = true
    }
    if (lastLine1 xor lastLine2) return false

    val line1 = s1.subSequence(index1, end1)
    val line2 = s2.subSequence(index2, end2)

    if (!lineEqualsTrimTrailingWhitespaces(line1, line2)) return false

    index1 = end1
    index2 = end2
    if (lastLine1) return true
  }
}