Etant donné qu'il y a toujours des réfractaires à Flib / Vertel, il leur faut quand même une chaine EXEC pour obtenir la liste des dossiers et fichiers de la Ti.
Donc je fais le prog, il marche très bien, mais une fois converti en chaine EXEC il plante systématiquement (ADRESS ERROR). Pourquoi ???
#define USE_TI89
#define USE_TI92PLUS
#include <tigcclib.h>
void _main(void)
{
SYM_ENTRY *sym_var;
ESI esi_elm;
char tbl_nam[18]={},*tbl_rtr[1000],*chr_nam=(char*)"*";
int int_rtr=0,int_typ=0;
sym_var=SymFindPtr($(name),0);
if(peek(esi_elm=HToESI(sym_var->handle))==217)
{
esi_elm--;
if(GetArgType(esi_elm)==STR_TAG) chr_nam=(char*)GetStrnArg(esi_elm);
else esi_elm=next_expression_index(esi_elm);
if(GetArgType(esi_elm)==POSINT_TAG) int_typ=GetIntArg(esi_elm);
}
sym_var=!strcmp(chr_nam,"*")?SymFindFirst(NULL,4):SymFindFirst(strcpy(tbl_nam+1,chr_nam)+strlen(chr_nam),1);
while(sym_var)
{
if(!strcmp(chr_nam,"*") || !int_typ || (*(unsigned char*)HToESI(sym_var->handle))==int_typ) tbl_rtr[int_rtr++]=(char*)(sym_var->name);
sym_var=SymFindNext();
}
esi_elm=top_estack;
push_quantum(END_TAG);
for(int_typ=int_rtr;int_typ>0;int_typ--) push_ANSI_string(tbl_rtr[int_typ-1]);
push_quantum(LIST_TAG);
sym_var=DerefSym(SymAdd($(list)));
chr_nam=(char*)HeapDeref(sym_var->handle=HeapAlloc(top_estack-esi_elm+2));
*(unsigned short *)chr_nam=top_estack-esi_elm;
memcpy(chr_nam+2,esi_elm+1,top_estack-esi_elm);
top_estack=esi_elm;
}