www.delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/1997/09/18/05:32:19

Date: Thu, 18 Sep 1997 12:30:38 +0300 (IDT)
From: Eli Zaretskii <eliz AT is DOT elta DOT co DOT il>
To: "N.TRAJKOVSKI" <t3076371 AT student DOT anu DOT edu DOT au>
cc: djgpp AT delorie DOT com
Subject: Re: Djgpp TeX problem
In-Reply-To: <342063BA.15B8@student.anu.edu.au>
Message-ID: <Pine.SUN.3.91.970918122935.1776L-100000@is>
MIME-Version: 1.0

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).

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019