O código fonte do Unix V7ed(1)
é um programa C primitivo de 1.762 linhas com apenas alguns comentários, um dos quais é este comentário de cabeçalho altamente esclarecedor:
/*
* Editor
*/
Dado que o código fonte em si não fornece nenhuma justificativa, você o receberá apenas pelo autor do programa.
ed
foi originalmente escrito por Ken Thompson na montagem do PDP-11 , mas você realmente precisa conversar com quem o transportou para C. Esse poderia ter sido Dennis Ritchie , desde que ele criou C para Unix, e foi um dos muitos que usaram C para torne o Unix portátil para máquinas que não sejam PDP. O Dr. Ritchie não está mais por perto para responder a essas perguntas.
Minha leitura do código sugere que foi feito para tentar preservar o conteúdo da cópia dentro do núcleo do documento editado. Você notará que outros editores de texto também não morrem Ctrl-C.
Aqui está o que ed
acontece em Ctrl-C:
onintr()
{
signal(SIGINT, onintr);
putchr('\n');
lastc = '\n';
error(Q);
}
(Sim, K&R C. Não precisamos de nenhum especificador de tipo de retorno ou declaração de parâmetro.)
Traduzido para o inglês ed
:
Registra novamente o manipulador de sinal.
(O Unix não recebeu sinais de redefinição automática até 4,3BSD , em meados da década de 1980).
Escreve uma nova linha e lembra que fez isso, através da variável global lastc
.
( ed.c
possui cerca de sessenta variáveis globais.)
Chama a error()
função, que famosa faz pouco mais que imprimir ?
, da perspectiva do usuário.
Em outras palavras, está dizendo: "Você realmente não quis fazer isso, não é?"