No caso específico do problema causado pelos switches HP, descobri (usando script
, que registra cada byte enviado ao terminal), que o modo de quebra automática do terminal estava sendo desativado por meio do código VT100 " <ESC>[?7l
"e depois nunca mais ser ativado novamente. †
O código VT100 para ativar o retrocesso automático é " <ESC>[?7h
", que você pode enviar para o terminal com este comando:
printf "3[?7h"
No entanto, isso pressupõe que o terminal seja compatível com o VT100, o que, embora seja uma boa aposta, não é uma certeza. ‡ A maneira mais correta de fazer isso é confiar nas configurações do terminfo e execute este comando:
tput smam
que gera exatamente a mesma saída que o comando printf
acima, assumindo um terminal no estilo VT100. O recurso terminfo "smam" é "Set Mode: Automatic Margins". Seu parceiro é "rmam": "Modo Redefinir: Margens Automáticas".
A propósito, eu realmente gostaria que ssh
tivesse uma opção de configuração "LocalEndCommand" (semelhante a "LocalCommand") para que eu pudesse executar automaticamente este un-fucker no final de cada conexão ssh do switch HP.
† Obrigado, HP!
‡ Você acha que a HP fez essa aposta ou não? Eu estou supondo que eles fizeram, e sempre enviar códigos VT100. Nesse caso, se o seu terminal não for compatível com o VT100, você não terá esse problema para começar.