Hans Hagen wrote:
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?
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:

# 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

Reply via email to