Mail Archives: djgpp/2012/08/21/03:00:55
X-Authentication-Warning: | delorie.com: mail set sender to djgpp-bounces using -f
|
From: | "Rod Pemberton" <do_not_have AT notemailnot DOT cmm>
|
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: | <k0vb24$52a$1@speranza.aioe.org>
|
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
- Raw text -