#include #include #include #include #include #include #include #include #include #include "permut.h" /* Lecture d'un fichier permutte et initialisation editeur Utilise le window courant Retourne 0 si ok, -1 si erreur */ export int permut_set (char *filnam, PERMUT *perm) { int ok = -1; long len = file_size (filnam); if (len >0){ char *text = (char*)malloc_get (len); perm->text = text; if (text != NULL){ long lenlec; int ret = string_read (filnam,text,len,&lenlec); if (ret >=0 ){ perm->index[0] = '\0'; trilst_set (&perm->tr,text,lenlec,30,perm->index,20); ok = 0; }else{ malloc_free (text); } } } return (ok); } /* Presentation d'un index permutte Retourne dans str la fin de la ligne courante ou le curseur se trouvait */ export void permut_edit (PERMUT *perm, KEYSET *set, KEYCMD *cmd, char *str) { char buflin[200]; trilst_edit (&perm->tr,set,cmd,buflin,NULL); strcpy (str,buflin+62); } /* Termine presentation d'un index permutte */ export void permut_unset (PERMUT *perm) { trilst_unset (&perm->tr); malloc_free (perm->text); } #ifdef TEST main( int argc, char *argv[]) { if (argc != 2){ }else{ char buf[100]; PERMUT perm; KEYCMD cmd; static KEY list[]={ C_FKEY, 10, }; static KEYSET set={NULL,list,sizeof(list)/sizeof(KEY)}; window_set (1,1,80,25); permut_set (argv[1],&perm); permut_edit (&perm,&set,&cmd,buf); permut_unset(&perm); printf (":%s:\n",buf); } } #endif