#include #include #include "etc.h" /* Elimine une chaine d'une table Retourne le nouveau nombre de chaine dans la table */ export int tbstr_delete ( char *tbstr[], int nbstr, int nodelete, int dofree) /* free() applique sur la chaine si != 0 */ { if (nodelete >= 0 && nodelete < nbstr){ if (dofree) free (tbstr[nodelete]); nbstr--; if (nodelete < nbstr){ memmove (tbstr+nodelete,tbstr+nodelete+1 ,(nbstr-nodelete)*sizeof(char *)); } } return (nbstr); } /* Insère une chaine dans une table. */ export void tbstr_insert ( char *tbstr[], int nbstr, const char *str, /* Chaine a insèrer */ int pos, /* Position d'insertion */ int dupli) /* Place dans la table via strdup_err ou pas */ { if (pos < nbstr){ memmove (tbstr+pos+1,tbstr+pos,(nbstr-pos)*sizeof(char*)); } if (dupli) str = strdup_err (str,1); tbstr[pos] = (char*) str; }