I just tried out MYOB (a popular financial program used widely in
Australia). The autorun program on the CD attempts to start programs
using WinExec as WinExec("whatnews\\whatnews.exe")
Unfortunately the FILE_contains_pathW function belueves that is a full
path which causes (in files/directory.c):
if (FILE_contains_pathW(name))
{
ret = DOSFS_GetFullName( name, TRUE, full_name );
goto done;
}
to fail and return an error to WinExec and subsequently not do anything.
The below patch fixes this problem (for me) and lets me install a number
of ancillory programs. Unfortunately MYOB install uses InstallShield6 as
its installer, so I've had no success with the actual program.
Is there a better way to do this patch?
Thanks,
Anand
--
`` We are shaped by our thoughts, we become what we think.
When the mind is pure, joy follows like a shadow that never
leaves. '' -- Buddha, The Dhammapada
--- files/directory.c Sun Sep 1 01:27:00 2002
+++ files/directory.c Sun Sep 1 01:26:02 2002
@@ -821,12 +821,11 @@
}
/* If the name contains an explicit path, everything's easy */
+ /* But only jump if we successfully found it */
- if (FILE_contains_pathW(name))
- {
- ret = DOSFS_GetFullName( name, TRUE, full_name );
+ if ( FILE_contains_pathW(name) &&
+ DOSFS_GetFullName(name, TRUE, full_name) )
goto done;
- }
/* Search in the specified path */