X-Authentication-Warning: delorie.com: mail set sender to djgpp-bounces using -f From: "Rod Pemberton" Newsgroups: comp.os.msdos.djgpp Subject: p7zip 9.20.1 cross-compiled by Rugxulo Date: Tue, 21 Aug 2012 02:52:12 -0400 Organization: Aioe.org NNTP Server Lines: 61 Message-ID: NNTP-Posting-Host: CNsg4fVcCsvs3UaOgZtQCw.user.speranza.aioe.org X-Complaints-To: abuse AT aioe DOT org X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.2001 X-Notice: Filtered by postfilter v. 0.8.2 X-Newsreader: Microsoft Outlook Express 6.00.2800.2001 X-Priority: 3 X-MSMail-Priority: Normal Bytes: 2862 To: djgpp AT delorie DOT com DJ-Gateway: from newsgroup comp.os.msdos.djgpp Reply-To: djgpp AT delorie DOT com Elsewhere, Rugxulo posted p7zip 9.20.1 cross-compiled for DOS using DJGPP: http://www.bttr-software.de/forum/forum_entry.php?id=11710 But, he may need our help: "Bug? It still relies on *nix-style forward slashes '/' in dir paths, which is bad, but I couldn't find a solution that actually fixed it (tried and failed, sadly)." There could be many locations that need changing to fix path separators in p7zip 9.20.1 for DOS. But, I'd think that only the separators already adjusted for Win32 would need to be added for DJGPP. I.e., I think for Win32 it converts between *nix-style slashes and Windows. A search finds only four p7zip files where the separator is adjusted in Win32 #ifdef sections: FilePathAutoRename.cpp in AutoRenamePath() 7zUpdate.cpp in GetReverseSlashPos() Wildcard.cpp Types.h I'd guess that adding DJGPP to those Win32 #ifdef's would fix the problem. This is just like you did for your other fixes in the diff files. If it doesn't, try fixing the '/' in FileFind.cpp and FileDir.cpp. Next, maybe try adding '/' in DmgHandler.cpp which has '\' but no '/'. There are many more locations, about 17 more, but Win32 hasn't modified those locations either. Search for '/' or "slash", if needed. Also, you'll probably need or want some of DJGPP's CRT0 flags to be added in files with C's main(): #ifdef DJGPP int _crt0_startup_flags = _CRT0_FLAG_USE_DOS_SLASHES | _CRT0_FLAG_KEEP_QUOTES | _CRT0_FLAG_PRESERVE_UPPER_CASE | _CRT0_FLAG_PRESERVE_FILENAME_CASE | _CRT0_FLAG_DISALLOW_RESPONSE_FILES; char ** __crt0_glob_function(char *arg) { return (char **)0; } void __crt0_load_environment_file(char *app_name) {} #endif Those will help pass DOS path's correctly. Client7z.cpp seems to have the main application main(), but main() is also in: LzmaAlone.cpp ClientCodec.cpp wine_GetXXXDefaultLang.cpp test_emul.cpp my_86_filter.cpp HTH and hope you see this, Rod Pemberton