[tex-live] error from "tlmgr update --self" in 4NT/TCC

T T t34www at googlemail.com
Thu Aug 20 17:57:57 CEST 2009


2009/8/20 Dan Luecking <luecking at uark.edu>:
> Hello,
>
> The following code in updater-w32 causes an error in the command
> shells TCC/4NT when tlmgr updates itself:
>
>  rem Restart in cmd.exe to avoid problems if 4NT is used
>  call :debug "respawning in cmd.exe ..."
>  %respawn% cmd.exe /c call "%~f0" main
>
> Note that the "call :debug" command occurs _before_ respawning
> the batch file under cmd. This ultimately executes two set
> commands on lines 218 and 220 under TCC:
>  set /p "=%~1" <nul >>"%~dpn0.log"
> and
>  set /p "=%~1" <nul
> This particular syntax is (as far as I can tell) undocumented
> in cmd.exe, and is an error in TCC/4NT.

As usual thanks for very detailed bug report.

> Running "help set" in cmd.exe reveals that "set /p" requires
> variable=[prompt string]. The above examples have no
> variable (and a strange quoting). While cmd.exe lets the
> lack of a variable slide, TCC takes it seriously (TCC also
> doesn't like the quoting).
>
> Is there some more (undocument) behavior that makes "set /p" better
> than echo? I couldn't find any effect of "set /p" (when there is no
> variable to set) other than the display of the the prompt string.

This is a workaround to echo strings with poison characters. On Win7
default program's dir is named "Program Files (x86)" and this doesn't
go well through echo in some cases.

I will look into that.

Cheers,

Tomek


More information about the tex-live mailing list