This was sent to a cygwin list, but is more properly a texinfo problem in the texi2dvi script (version 4.7). $COMSPEC has meaning in djgpp and perhaps mingw, but is just a worthless environment variable when inherited into cygwin. Instead of using $COMSPEC for determining the path separator, you should use autoconf's approach (look at any recent configure script generated by autoconf 2.59 for this snippet):
if test "${PATH_SEPARATOR+set}" != set; then echo "#! /bin/sh" >conf$$.sh echo "exit 0" >>conf$$.sh chmod +x conf$$.sh if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then PATH_SEPARATOR=';' else PATH_SEPARATOR=: fi rm -f conf$$.sh fi Dave's other point that you are incorrectly dividing the path at ' ' in findprog() is also valid, you should instead be temporarily setting IFS=$PATH_SEPARATOR instead. Additionally, according to autoconf, `test -x' is not portable. Your best bet may be to make texi2dvi a generated file from texi2dvi.in, and let autoconf determine @PATH_SEPARATOR@ and even the location of tex up front at configure time, rather than re-locating it every invocation of texi2dvi. I was able to avoid hacking texi2dvi by adding "unset COMSPEC" to my cygwin ~/.bashrc. Even with spaces in my $PATH, tex happened to be installed in one of the directories that did not have a space. -- Life is short - so eat dessert first! Eric Blake [EMAIL PROTECTED] To: cygwin at cygwin dot com From: David Abrahams <dave at boost-consulting dot com> Subject: bug in texi2dvi, and hack patch Date: Sat, 15 Jan 2005 13:42:40 -0500 The latest /bin/texi2dvi contains (at line 102): # Systems which define $COMSPEC or $ComSpec use semicolons to separate # directories in TEXINPUTS. if test -n "$COMSPEC$ComSpec"; then path_sep=";" else path_sep=":" fi I think I know what this is *trying* to accomplish, but I think it's misguided. At least on my system, all the environment variables defined for my NT shell also show up in Cygwin, appropriately translated to use ":" separators. So the above messes everything up when findprog(), shown below, tries to locate the "tex" program: findprog () { foundprog=false for dir in `echo $PATH | tr "$path_sep" " "`; do if test -x "$dir/$1"; then # does anyone still need test -f? foundprog=true break fi done $foundprog } Paths end up being broken at spaces. I'm actually a little concerned about the code above because it seems to me that even after we fix the path_sep problem it will fail to work correctly with paths containing spaces. I'm certain it's not the right long-term fix, but the little hack patch I needed to get going again was to change line 105 from: path_sep=";" to path_sep=":" -- Dave Abrahams Boost Consulting http://www.boost-consulting.com -- Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple Problem reports: http://cygwin.com/problems.html Documentation: http://cygwin.com/docs.html FAQ: http://cygwin.com/faq/