[SOS] Problème de fonctionnalité
Cyril Dupuit
cyrildupuit at hotmail.com
Ven 7 Avr 14:34:05 CEST 2006
Bonjour,
En analysant le code du fichier shell.c (article 9.5), je me suis rendu
compte qu'il pouvait y avoir un problème dans la fonction command_exec()
(ligne 607 et suivante) lorsque l'utilisateur saisit plusieurs espaces entre
les paramètres.
Voici le code :
for (c = cmd; *c != '\0'; c++)
if (*c == ' ')
argc++;
[....]
for (i = 0, c = cmd; i < argc; i++)
{
argv[i] = c;
while (*c != ' ' && *c != '\0')
c++;
*c = '\0';
c++;
}
[....]
Ma solution est :
for (c = cmd; *c != '\0'; c++)
if(*c == ' ')
{
while(*c == ' ') c++;
while((*c != ' ')&&(*c != '\0')) c++;
if(*c != '\0') argc++;
}
[.....]
for (i = 0, c = cmd; i < argc; i++)
{
while(*c == ' ') c++;
argv[i] = c;
while (*c != ' ' && *c != '\0')
c++;
*c = '\0';
c++;
}
[....]
Bonne journée.
Cyril
Plus d'informations sur la liste de diffusion Sos