#define return_value var
Donc Kevin m'a passé un algo qui marche nickel, mais qui ne permet d'envoyer que des int, pas de chaines. J'ai essayé de completer et c un desastre

Résumé :
Unsigned int retour[99];
void exe_adds(char *string) // Pour ajouter une chaine dans la liste à renvoyer
{
retour[rng_return++]=string;
}
(si j'utilise strcpy(retour[rng_return++],string); comme indiqué dans l'aide, ça me fait une protected memory violation...
Bon et puis + loin :
push_quantum(END_TAG);
for(tmp=rng_return;tmp>0;tmp--)
{
type=retour[tmp-1];
if(!strlen(type)) push_ANSI_string(retour[tmp-1]);
else push_longint(retour[tmp-1]);
}
push_quantum(LIST_TAG);
donc normalement ça devait reperer quels sont les élements chaines / nombres (avec strlen) et envoyer l'un ou l'autre dans la liste à renvoyer.
Et le résultat c'est que pour renvoyer des nombres ça marche sans problème, mais pour des chaines, c'est... disons une fois sur 2

Par exemple je teste en renvoyant la liste des dossiers de la ti (main & unios). La liste renvoyée c'est {"main",59934}.
Alors la je comprends plus rien. Encore ça n'aurait pas marché du tout, ok, mais pourquoi ça marche une fois sur 2 ???