Deutsch English Français Italiano |
<6779084b$0$407$426a74cc@news.free.fr> View for Bookmarking (what is this?) Look up another Usenet article |
Path: ...!2.eu.feeder.erje.net!feeder.erje.net!fdn.fr!proxad.net!feeder1-2.proxad.net!cleanfeed3-a.proxad.net!nnrp2-2.free.fr!not-for-mail Date: Sat, 4 Jan 2025 11:07:07 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: =?UTF-8?Q?Re=3A_Proc=C3=A9dure_ARGV?= Newsgroups: fr.comp.sys.atari References: <6776c99f$0$12931$426a74cc@news.free.fr> <7JvJomHd6m_kGA6xXqpnj9n9gJ4@jntp> <67771a0a$0$29727$426a74cc@news.free.fr> <obL8snLYupJyJ2K3YCHvnuUkOBU@jntp> <6778159f$0$513$426a74cc@news.free.fr> <677826a2$0$29717$426a74cc@news.free.fr> <Q9EaQy098-PVA5Z7zAi1RLKy4XQ@jntp> <mIBAMcSyY7LpBCtFdtvLpUFiqJc@jntp> <67785429$0$375$426a74cc@news.free.fr> <n2atGw7UckVKd_awDmn5Fdq4Hf8@jntp> <677866ee$0$12914$426a34cc@news.free.fr> <6778765b$0$29730$426a34cc@news.free.fr> Content-Language: fr From: Good Old TOS <_remove_vision@atari.org> In-Reply-To: <6778765b$0$29730$426a34cc@news.free.fr> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Lines: 49 Message-ID: <6779084b$0$407$426a74cc@news.free.fr> Organization: Guest of ProXad - France NNTP-Posting-Date: 04 Jan 2025 11:07:07 CET NNTP-Posting-Host: 83.159.222.32 X-Trace: 1735985227 news-1.free.fr 407 83.159.222.32:1415 X-Complaints-To: abuse@proxad.net Bytes: 2607 Hello, pb résolu grâce à Olivier! Un grand merci! Voilà le code fonctionnel: long XPexec_eas(int mode, char* full_name, char* cmdline) { /* A BIG thnaks to Olivier Landemarre ! */ char buffer[1500] ; char eas_cmd[128] ; char* pt_env = buffer ; char* source ; char* envp = _BasPag->p_env ; /* Program Environment is required else it fails (e.g. err 27 with curl) */ while( *envp ) { while ( *envp ) *pt_env++ = *envp++ ; *pt_env++ = 0 ; envp++ ; } *pt_env++='A' ; *pt_env++='R' ; *pt_env++='G' ; *pt_env++='V' ; *pt_env++='=' ; *pt_env++ = 0 ; *pt_env++ = ' ' ; /* These 2 are important else */ *pt_env++ = 0 ; /* First parameter is ignored ! */ while ( *cmdline ) { if ( *cmdline == ' ' ) *pt_env++ = 0 ; /* New parameter/value */ else if ( *cmdline == '\\' ) *pt_env++ = '/' ; /* Change \ to / */ else *pt_env++ = *cmdline ; /* Next char of parameter/value */ cmdline++ ; } *pt_env++ = 0 ; *pt_env = 0 ; eas_cmd[0] = 127 ; return Pexec( mode, full_name, eas_cmd, buffer ) ; } Il manquait un espace + \0 après "ARGV=" avant la génération des paramètres.