diff --git a/coreutils/tr.c b/coreutils/tr.c index 54b6abc8c..96e2c2b5f 100644 --- a/coreutils/tr.c +++ b/coreutils/tr.c @@ -70,7 +70,7 @@ static void convert() coded = vector[c]; if (del_fl && invec[c]) continue; - if (sq_fl && last == coded && outvec[coded]) + if (sq_fl && last == coded && (invec[c] || outvec[coded])) continue; output[out_index++] = last = coded; if (out_index == BUFSIZ) { diff --git a/tr.c b/tr.c index 54b6abc8c..96e2c2b5f 100644 --- a/tr.c +++ b/tr.c @@ -70,7 +70,7 @@ static void convert() coded = vector[c]; if (del_fl && invec[c]) continue; - if (sq_fl && last == coded && outvec[coded]) + if (sq_fl && last == coded && (invec[c] || outvec[coded])) continue; output[out_index++] = last = coded; if (out_index == BUFSIZ) {