einpoklum
Apr 2 2006, 02:07 PM
There are several extract.exe 's which may occur in the path before Microsoft's extract.exe : Cygwin's, and the Windows UNIX binaries distribution unixtools . HFSLIP fails to notice when these are present, and tries to use them instead of the valid extract, reporting that it has successfully completed its work while in fact it has not.
Super-Magician
Apr 2 2006, 03:08 PM
It is not possible for HFSLIP to distinguish between "valid" and "invalid" extract modules. However, Tomcat76/tommyp could probably add the exact path of EXTRACT.EXE into the script.
tain
Apr 2 2006, 03:38 PM
This is an interesting idea, and one that would have saved me TONS of trouble early in my HFSLIP days since I had a similar issue. The script could also be made to check the filesize and compare it to "known good" filesizes of extract.exe.
einpoklum
Apr 2 2006, 03:52 PM
Uh, how about checking for the "invalid switch" error message you get from running cygwin's extract.exe ? Or making sure cygwin and unixtools aren't in the path (or removing them from the path)?
Super-Magician
Apr 2 2006, 03:56 PM
Just realized the following:
The name of Microsoft's module in Windows XP (and 2003) is EXPAND.EXE, not EXTRACT.EXE. I believe this is also true on 2000, but I could be wrong.
@einpoklum, can you check to see whether 2000 uses extract or expand?
---------------------------------------------------------------------------------------------------------------------------------------------------
@TAiN:
AFAIK, there is no way to check and verify the size of a file at the command prompt. Although you can produce it using DIR, it might take some time to integrate it into the script.
Maybe doing this would work:
1. DIR %windir%\system32\EXPAND.EXE>TEMP.TXT
2. Find the string "15,872 bytes" (for XP's module) in TEMP.TXT (not sure of the exact command that should be used; I'm not familiar with FINDSTR)
3. If the string is found, use that EXPAND.EXE.
4. If the string cannot be found, report an error or search for EXPAND.EXE (don't think this is possible).
tain
Apr 2 2006, 05:14 PM
QUOTE (Super-Magician @ Apr 2 2006, 03:56 PM)

1. DIR %windir%\system32\EXPAND.EXE>TEMP.TXT
2. Find the string "15,872 bytes" (for XP's module) in TEMP.TXT (not sure of the exact command that should be used; I'm not familiar with FINDSTR)
3. If the string is found, use that EXPAND.EXE.
4. If the string cannot be found, report an error or search for EXPAND.EXE (don't think this is possible).
That is almost exactly what I was thinking.
Also, I have both expand.exe and extract.exe on my 2kSP4 box.
expand.exe is version 5.0.2134.1 and 15,632 bytes
extract.exe is version 1.00.603.0 and 93,242 bytes
Tomcat76
Apr 2 2006, 05:45 PM
HFSLIP doesn't use extract.exe; only expand.exe. I had a quick look at the entire script and it seems to me you can get away with placing the "correct" version of expand.exe in the HFSLIP folder (for now) except for the integration of msxmlcab.exe.
Checking for the file size is out of the question. On a Dutch XP system, for example, the file is 16,896 bytes large.
Where can I get this cygwin version?
Tomcat76
Apr 3 2006, 08:54 AM
Try the latest test release. It uses the full path to expand.exe. There are two locations HFSLIP check in: %WINDIR%\SYSTEM32 and the HFSLIP folder. The latter gets preference. So if the version in SYSTEM32 is not the original MS version, place a copy of the MS version in the HFSLIP folder.
einpoklum
Apr 3 2006, 11:03 AM
Sorry sorry sorry! The entire bug report should have been about expand.exe, not extract.exe . I just got them mixed up when reporting the bug :-(
Anyway, to get the cygwin version, download the cygwin installer at
http://www.cygwin.com (it's a net installer); I don't remember the exact package which includes expand.exe . Or you can use the version I've attached below.
Super-Magician
Apr 3 2006, 01:55 PM
@Tomcat76, why not have expand.exe placed into HFTOOLS instead of the root HFSLIP directory?
einpoklum
Apr 3 2006, 02:18 PM
As the user, you mean? Well, you need to know you need to do that before you can actually do it.
Super-Magician
Apr 3 2006, 03:12 PM
Actually, that post was intended toward Tomcat76. As he has not incorporated it yet into the script, doing so would not work.
Tomcat76
Apr 3 2006, 03:37 PM
It is now. 60403c.
Out of curiosity... If any of you would replace expand.exe through HFSLIP (so Windows gets installed with another version), where would you put it? In the FIX folder or in HFEXPERT\APPREPLACEMENT?
Super-Magician
Apr 3 2006, 04:01 PM
I would rather put it in HFEXPERT\APPREPLACEMENT, but as I have never tested that feature, I don't know if it would be the best option.
tommyp
Apr 3 2006, 04:05 PM
Stupid Q, but what is the purpose/benefit of the "other" expand file?
Super-Magician
Apr 3 2006, 04:13 PM
The Tomcat addition for HFTOOLS? It's so that people who normally use a different expand.exe (in %windir%\SYSTEM32) will be able to use Microsoft's expand.exe while running HFSLIP.
tommyp
Apr 3 2006, 04:24 PM
Actually non-hfslip related. What is the difference between the msft expand and this other expand? Why not just use the msft one? What does the other expand do that the msft version can't?
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please
click here.