Estou executando o Emacs no Windows XP SP3
GNU Emacs 22.3.1 (i386-mingw-nt5.1.2600) de 2008-09-07 em SOFT-MJASON
Quando executo um comando em que o argumento contém meta-caracteres do shell, minha região do Emacs não é passada para o comando via STDIN como esperado. Eu escrevi um programa para verificar se este é o caso:
## test.pl
my $lines = 0;
while (<STDIN>)
{
++$lines;
}
print "Input lines: $lines\n";
for (my $i = 0; $i < @ARGV; ++$i)
{
print "$i: [[$ARGV[$i]]]\n";
}
Por exemplo, se a região contiver:
a
b
E eu corro: perl c:\bin\test.pl "<"
, eu recebo:
Input lines: 0
0: [[<]]
Se, em vez disso, eu executar: perl c:\bin\test.pl "-"
, obtenho:
Input lines: 2
0: [[-]]
Minha variável de ambiente SHELL no Emacs está definida como c: /emacs/bin/cmdproxy.exe
Isso nunca foi um problema até que comecei a rodar uma versão recente do Emacs. Alguém sabe como consertar isso? (Eu não estou interessado em usar qualquer shell cygwin como meu shell emacs)
Edit:
Qualquer argumento para test.pl eu uso que contém um meta-caractere shell tem o mesmo efeito que usando "<". Por exemplo, passando "foo &" também resulta em "Linhas de entrada: 0"
Da mesma forma, qualquer argumento para test.pl eu uso que não contém um meta-caractere shell tem o mesmo efeito que usar "-". Por exemplo, passar "foo" também resulta em "Input Lines: 2"