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.