Hans Hagen wrote:
The part which is causing the problem is the system() call, when we need to escape the "&" under sh, but not when using the Windows shell. So perhaps the following:At 12:11 PM 11/3/2002 -0500, Gregory D. Collins wrote:Hello ntg-context, I have a copy of texexec.pl dated 2002/05/04 which has a bug in it. I use tetex under cygwin in Windows, and was having a lot of trouble getting texexec working. The problem is as follows. There is a line in texexec.pl: my $dosish = ($Config{'osname'} =~ /^(ms)?dos|^os\/2|^(ms|cyg)win/i); The purpose of this is to find out if we are in a "dosish" environment. This is used later: unless ($dosish) ~ { if ($TeXFormatFlag == "&") { $TeXFormatFlag = "\\&" } ~ if ($MpFormatFlag == "&") { $MpFormatFlag = "\\&" } } This breaks badly (and very confusingly) later when we do system() calls if $SHELL=bash. I don't know if the rest of cygwin's environment qualifies as "dosish" or not for the rest of the program, although mine works fine if it's turned off. Is this a known bug?So you suggest to remove the cyg from the regexp?
# If $SHELL contains "sh", it is probably UNIXish
my $escapeshell = ($ENV{"SHELL"} =~ m/sh/i);
...
# Then later, instead of:
unless ($dosish)
{ if ($TeXFormatFlag == "&") { $TeXFormatFlag = "\\&" }
if ($MpFormatFlag == "&") { $MpFormatFlag = "\\&" } }
# We do:
unless ($dosish && !$escapeshell)
{ if ($TeXFormatFlag == "&") { $TeXFormatFlag = "\\&" }
if ($MpFormatFlag == "&") { $MpFormatFlag = "\\&" } }
What do you think?
--
Gregory D. Collins <[EMAIL PROTECTED]>
GPG key available at pgp.mit.edu keyserver, id 0xD2EECA60
_______________________________________________
ntg-context mailing list
[EMAIL PROTECTED]
http://ref.ntg.nl/mailman/listinfo/ntg-context
