[texworks] New version 302/303

Jonathan Kew jfkthame at googlemail.com
Sat Jun 6 19:25:24 CEST 2009


On 6 Jun 2009, at 16:44, T T wrote:

>
>>>> Note that the original PATH is repeated twice in the one passed  
>>>> to the
>>>> spawned process, which should not happen, because of the condition
>>>> (see above):
>>>>
>>>>    if (!binPaths.contains(s))  binPaths.append(s);
>>>>
>>>> So something is not right here.
>>>
>>> Rev 303 did not include that condition, it unconditionally added the
>>> PATH in typeset(). This was revised in r.306. So this part, at  
>>> least,
>>> is not a mystery.
>
> Right, my mistake. But it seems that those changes made things  
> worse. But why?

Aaaarrgghh!!!

On Windows, the env variable isn't called "PATH", it's called "Path".  
At least on my XP installation. That wouldn't matter for getenv(),  
which is case insensitive on Windows. But when scanning the  
environment from within the Qt code, the string comparison was case  
sensitive, so it missed the Path variable entirely!

I think this also explains some other problem reports; texworks wants  
to modify the path it passes to subprocesses, so that they can also  
find additional tools they may need (such as xetex piping output to  
xdvipdfmx), but this would have been failing too.

r.308 deals with this, I think, and seems to work better here at least.

JK



More information about the texworks mailing list