O Unix V7 ed(1)
código-fonte é um primitivo programa C 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ê só vai obtê-lo do autor do programa.
ed
foi originalmente escrito por Ken Thompson na montagem do PDP-11 , mas você Na verdade, eu preciso falar com quem o portou para C. Isso pode ter sido Dennis Ritchie , já que ele criou C para Unix, e foi um dos muitos que usaram o C para tornar o Unix portátil para máquinas não-PDP. O Dr. Ritchie não está mais por perto para responder a essas questões.
A minha leitura do código sugere que foi feito para tentar preservar o conteúdo da cópia do núcleo o documento editado. Você notará que outros editores de texto também não morrem em Ctrl-C .
Veja o que o ed
faz em Ctrl-C :
onintr()
{
signal(SIGINT, onintr);
putchr('\n');
lastc = '\n';
error(Q);
}
(Sim, K & RC . Não precisamos de nenhum tipo de retorno de steenkin ' especificadores ou declarações de parâmetros.)
Traduzido para o inglês, ed
:
-
Registra novamente o manipulador de sinal.
(o Unix não recebeu sinais de reinicialização automática até o 4.3BSD , em meados dos anos 80.)
-
Escreve uma nova linha e lembra-se que o fez através da variável global lastc
.
( ed.c
tem cerca de sessenta variáveis globais.)
-
Chama a função error()
, que famosa faz pouco mais que imprimir ?
, da perspectiva do usuário.
Em outras palavras, está dizendo: "Você não queria fazer isso, sabia?"