On Fri, Apr 08, 2022 at 04:30:12PM +0200, Tomas Kalibera wrote: > I am not sure what is the correct name of it. I executed > C:\MinGW\msys\1.0\msys.bat to get the shell. > It uses : as path separator. > > > Have you found that running texi2dvi fails in such an environment, with > > my patch above? > > Yes. It is because "uname" returns "MINGW32_NT-6.2". > The original version works because "MSYSTEM=$OSTYPE uname" returns > "msys_NT-6.2" >
I don't like the whole setting MSYSTEM via OSTYPE and then running uname process; it's far too fiddly and hard to understand. People like myself have no idea what the MSYSTEM variable is supposed to be. Instead, I propose checking OSTYPE directly for msys, where uname doesn't give this information: diff --git a/util/texi2dvi b/util/texi2dvi index 1f42b41907..e5d0ffb4e2 100755 --- a/util/texi2dvi +++ b/util/texi2dvi @@ -80,12 +80,9 @@ IFS="$space$tab$newline" # directories in TEXINPUTS -- except for Cygwin and Msys, where COMSPEC # might be inherited, but : is used. -# In the case of Msys, uname returns a value derived from MSYSTEM, as -# MSYSTEM is user configurable, it is not so safe to use it to detect -# Msys. It is safer to use OSTYPE, this is why we set MSYSTEM to -# $OSTYPE before calling uname if test -n "$COMSPEC$ComSpec" \ - && MSYSTEM=$OSTYPE uname | $EGREP -iv 'cygwin|msys' >/dev/null; then + && uname | $EGREP -iv 'cygwin|msys' >/dev/null + && test "$OSTYPE" != msys ; then path_sep=";" else path_sep=":" How does that work?