Retornando o cursor do terminal para o início de linha com a quebra automática ativada

Estou escrevendo um filtro (em um canal destinado a uma saída de terminal) que às vezes precisa "substituir" uma linha que acabou de ocorrer. Ele funciona passando stdin para stdout character-by-character até um\n é atingido e, em seguida, invocar comportamento especial. Meu problema diz respeito a como voltar ao início da linha.

A primeira coisa que pensei foi usar um\r ou a sequência ANSI\033[1G. No entanto, se a linha foi longa o suficiente para ter envolvido no terminal (e, portanto, causou a rolagem), estes só irá mover o cursor de volta para o atualfisica linha.

Minha segunda idéia era rastrear o comprimento da linha (número de caracteres passados ​​desde\n) e, em seguida, eco\b isso muitas vezes. No entanto, isso não funciona se a linha contiver caracteres de controle ou seqüências de escape (e possivelmente Unicode?).

Além de procurar por todas as sequências especiais e usar isso para ajustar a contagem de caracteres, existe uma maneira simples de conseguir isso?

questionAnswers(3)

yourAnswerToTheQuestion