ntg-context - mailing list for ConTeXt users
 help / color / mirror / Atom feed
* [Fwd: Texexec bug]
@ 2002-11-03 17:11 Gregory D. Collins
  2002-11-05  8:29 ` Fabrice Popineau
  2002-11-05  8:45 ` Hans Hagen
  0 siblings, 2 replies; 7+ messages in thread
From: Gregory D. Collins @ 2002-11-03 17:11 UTC (permalink / raw)


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?

G.
- --
Gregory D. Collins <gcollins@cs.yale.edu>
GPG key available at pgp.mit.edu keyserver, id 0xD2EECA60

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [Fwd: Texexec bug]
  2002-11-03 17:11 [Fwd: Texexec bug] Gregory D. Collins
@ 2002-11-05  8:29 ` Fabrice Popineau
  2002-11-05  8:45 ` Hans Hagen
  1 sibling, 0 replies; 7+ messages in thread
From: Fabrice Popineau @ 2002-11-05  8:29 UTC (permalink / raw)


* Gregory D Collins <gcollins@cs.yale.edu> writes:

> The purpose of this is to find out if we are in a "dosish"
> environment.  This is used later:

The real problem is that Cygwin does not know itself if it is dosish
or not. In this case, I would say 'no'.

Fabrice

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [Fwd: Texexec bug]
  2002-11-03 17:11 [Fwd: Texexec bug] Gregory D. Collins
  2002-11-05  8:29 ` Fabrice Popineau
@ 2002-11-05  8:45 ` Hans Hagen
  2002-11-05  9:10   ` Gregory D. Collins
  1 sibling, 1 reply; 7+ messages in thread
From: Hans Hagen @ 2002-11-05  8:45 UTC (permalink / raw)


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?

Hans
-------------------------------------------------------------------------
                                   Hans Hagen | PRAGMA ADE | pragma@wxs.nl
                       Ridderstraat 27 | 8061 GH Hasselt | The Netherlands
  tel: +31 (0)38 477 53 69 | fax: +31 (0)38 477 53 74 | www.pragma-ade.com
-------------------------------------------------------------------------
                        information: http://www.pragma-ade.com/roadmap.pdf
                     documentation: http://www.pragma-ade.com/showcase.pdf
-------------------------------------------------------------------------

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [Fwd: Texexec bug]
  2002-11-05  8:45 ` Hans Hagen
@ 2002-11-05  9:10   ` Gregory D. Collins
  2002-11-05  9:46     ` Taco Hoekwater
  2002-11-05 11:06     ` Hans Hagen
  0 siblings, 2 replies; 7+ messages in thread
From: Gregory D. Collins @ 2002-11-05  9:10 UTC (permalink / raw)


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 <gcollins@cs.yale.edu>
GPG key available at pgp.mit.edu keyserver, id 0xD2EECA60

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [Fwd: Texexec bug]
  2002-11-05  9:10   ` Gregory D. Collins
@ 2002-11-05  9:46     ` Taco Hoekwater
  2002-11-05 11:06     ` Hans Hagen
  1 sibling, 0 replies; 7+ messages in thread
From: Taco Hoekwater @ 2002-11-05  9:46 UTC (permalink / raw)




Another (and probably better) option is to use the multi-part (array) 
interface to system().

That call doesn't use the shell at all, so the problem never arises.
Differences between shells tend to give problems, even under
Unix, but under windows the situation is definately worse.

Side note: Cygwin's file system is too broken to be considered 
Unix, but it's not DOS either. If you want bash as shell, try using
then minw version instead.

-- 
groeten,

Taco

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [Fwd: Texexec bug]
  2002-11-05  9:10   ` Gregory D. Collins
  2002-11-05  9:46     ` Taco Hoekwater
@ 2002-11-05 11:06     ` Hans Hagen
  2002-11-05 19:50       ` Gregory D. Collins
  1 sibling, 1 reply; 7+ messages in thread
From: Hans Hagen @ 2002-11-05 11:06 UTC (permalink / raw)


At 04:10 AM 11/5/2002 -0500, Gregory D. Collins 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:
>
>     # 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?

Did you test it? If it works we can do this (i don't have cygwin installed)

Hans
-------------------------------------------------------------------------
                                   Hans Hagen | PRAGMA ADE | pragma@wxs.nl
                       Ridderstraat 27 | 8061 GH Hasselt | The Netherlands
  tel: +31 (0)38 477 53 69 | fax: +31 (0)38 477 53 74 | www.pragma-ade.com
-------------------------------------------------------------------------
                        information: http://www.pragma-ade.com/roadmap.pdf
                     documentation: http://www.pragma-ade.com/showcase.pdf
-------------------------------------------------------------------------

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [Fwd: Texexec bug]
  2002-11-05 11:06     ` Hans Hagen
@ 2002-11-05 19:50       ` Gregory D. Collins
  0 siblings, 0 replies; 7+ messages in thread
From: Gregory D. Collins @ 2002-11-05 19:50 UTC (permalink / raw)


Hans Hagen wrote:
> At 04:10 AM 11/5/2002 -0500, Gregory D. Collins 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:
>>
>>     # 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?
> 
> 
> Did you test it? If it works we can do this (i don't have cygwin installed)

I just tested it, it works on my system.

-- 
Gregory D. Collins <gcollins@cs.yale.edu>
GPG key available at pgp.mit.edu keyserver, id 0xD2EECA60

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2002-11-05 19:50 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2002-11-03 17:11 [Fwd: Texexec bug] Gregory D. Collins
2002-11-05  8:29 ` Fabrice Popineau
2002-11-05  8:45 ` Hans Hagen
2002-11-05  9:10   ` Gregory D. Collins
2002-11-05  9:46     ` Taco Hoekwater
2002-11-05 11:06     ` Hans Hagen
2002-11-05 19:50       ` Gregory D. Collins

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).