mirror of https://github.com/sbt/sbt.git
Make EscHelpers.removeEscapeSequences handle partial escape sequences
Fixes #67
This commit is contained in:
parent
83f8eabfab
commit
5ed25cbc56
|
|
@ -66,8 +66,9 @@ object EscHelpers {
|
||||||
} else {
|
} else {
|
||||||
sb.append(s, start, escIndex)
|
sb.append(s, start, escIndex)
|
||||||
val next: Int =
|
val next: Int =
|
||||||
|
if (escIndex + 1 >= s.length) skipESC(s, escIndex + 1)
|
||||||
// If it's a CSI we skip past it and then look for a terminator.
|
// If it's a CSI we skip past it and then look for a terminator.
|
||||||
if (isCSI(s.charAt(escIndex + 1))) skipESC(s, escIndex + 2)
|
else if (isCSI(s.charAt(escIndex + 1))) skipESC(s, escIndex + 2)
|
||||||
else if (isAnsiTwoCharacterTerminator(s.charAt(escIndex + 1))) escIndex + 2
|
else if (isAnsiTwoCharacterTerminator(s.charAt(escIndex + 1))) escIndex + 2
|
||||||
else {
|
else {
|
||||||
// There could be non-ANSI character sequences we should make sure we handle here.
|
// There could be non-ANSI character sequences we should make sure we handle here.
|
||||||
|
|
|
||||||
|
|
@ -34,6 +34,16 @@ object Escapes extends Properties("Escapes") {
|
||||||
!hasEscapeSequence(removed)
|
!hasEscapeSequence(removed)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private[this] final val ecs = ESC.toString
|
||||||
|
private val partialEscapeSequences =
|
||||||
|
Gen.oneOf(Gen const ecs, Gen const ecs ++ "[", Gen.choose('@', '_').map(ecs :+ _))
|
||||||
|
|
||||||
|
property("removeEscapeSequences handles partial escape sequences") =
|
||||||
|
forAll(partialEscapeSequences) { s =>
|
||||||
|
val removed: String = removeEscapeSequences(s)
|
||||||
|
s"Escape sequence removed: '$removed'" |: !hasEscapeSequence(removed)
|
||||||
|
}
|
||||||
|
|
||||||
property("removeEscapeSequences returns string without escape sequences") =
|
property("removeEscapeSequences returns string without escape sequences") =
|
||||||
forAllNoShrink(genWithoutEscape, genEscapePairs) {
|
forAllNoShrink(genWithoutEscape, genEscapePairs) {
|
||||||
(start: String, escapes: List[EscapeAndNot]) =>
|
(start: String, escapes: List[EscapeAndNot]) =>
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue