Date: Thu, 18 Sep 1997 12:30:38 +0300 (IDT) From: Eli Zaretskii To: "N.TRAJKOVSKI" cc: djgpp AT delorie DOT com Subject: Re: Djgpp TeX problem In-Reply-To: <342063BA.15B8@student.anu.edu.au> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Precedence: bulk On Thu, 18 Sep 1997, N.TRAJKOVSKI wrote: > However when using Tex I get a very anoying > problem. TeX itself seems to compile fine, but as soon as I try to view > the dvi file (or convert it to PS) the viewer (vgadvi) gives me an > error. > > "MakeTexPK was not properly copied to Maket~1.exe" That's because you unzipped the package without setting the Windows NameNumericTail to zero. The explanation of why does this matter is rather technical and obscure (see below), but the solution is simple and involves three steps: - delete the TeX installation (both in the bin subdirectory and in share/texmf subdirectory); - use the Windows regedit program to set NameNumericTail to zero (the way to do that is explained in detail in section 8.2 of the DJGPP FAQ list, v2/faq210b.zip from the same place you get DJGPP); - unzip the distribution again using a program that supports long file names in zip files (you seem to have such a program already, since you say that the long name MakeTexPK is intact). If you so wish, you may then restore the NameNumericTail to the value of 1, after unzipping the TeX distribution. (Personally, I set it permanently to zero, and have yet to see any problems.) This should really be explained in the DJGPP-specific README file in the distribution, I'm sorry I didn't think about such problems and failed to mention them. And now for the gory details of why this problem pops up. When NameNumericTail is non-zero, Windows attaches the "~1" tails to 8.3 aliases created for every long file name, even if just truncating the long name to 8.3 limits would make no conflicts with other file names. The original MakeTexPK is a shell script (you can still find it in the distribution under the name MakeTexPK.sh), but the DJGPP port includes an emulation of that script as a C program (so that TeX users won't need to install Bash and related utilities just to run TeX and DVI drivers). The programs which emulate MakeTexPK all the other MakeTeX... scripts are really just ``symlinks'' to a single program named maketex.exe, which looks at the name it was invoked with to decide what function(s) to perform. If it sees that its invocation name is none of the known names, it barfs with the error message that you've cited. The last element of this puzzle is that when a program is run on Windows 95, it always gets the short alias as its name in argv[0], even if you actually typed the long name to invoke it. So in your case, it gets "makete~1.exe" as its invocation name, and refuses to work. If I ever have time to work on the DJGPP port of TeX again, I might include a simple fix, so that even with non-zero NameNumericTail the programs work as expected. If you feel like working on that, please do (I can tell you what should be changed).