[tex-live] possible tlmgr bug

Philipp Stephani st_philipp at yahoo.de
Wed May 4 17:29:26 CEST 2011


Am 04.05.2011 um 15:55 schrieb Adam R. Maxwell:

> 
> On May 4, 2011, at 00:05 , Reinhard Kotucha wrote:
> 
>> Sorry, but I fear that there are some other scripts in TeX Live which
>> can't deal with spaces in filenames.  They can't be fixed easily and
>> it would make more sense to re-write them in Perl in order to make
>> them work on Windows too.
> 
> So this line in TLUtils.pm will handle spaces correctly?  It's
> approximately near the one Artemio called out:
> 
>      chomp (my $guessed_platform = `/bin/sh $config_guess`);
> 
> Are backticks in Perl handled differently from Bourne shell?

AFAIK it is passed directly to the shell which does word splitting. For myself I tend to avoid calling the shell whenever possible when I try to write OS-independent code. The popular "system" function in C is probably the biggest source of problems; it should be replaced by direct process creation (CreateProcessW on Windows, posix_spawn/execve on Linux, or wrappers thereof).
In this case, the /bin/sh seems to indicate that you can be sure in that branch of the code that /bin/sh is a valid file name and points to a Bourne-compatible shell. Then even something like `/bin/sh '$config_guess'` might work (unless the path $config_guess contains an ASCII apostrophe, of course).


More information about the tex-live mailing list