/* Op‚ration sur la variable d'environnement PATH */ #include #include #include #include #include "../../etc/etc.h" #include "tool.h" /* D‚compose une variable d'environnement comme PATH en une s‚rie d'argument Le s‚parateur est un ';' Retourne le nombre d'‚l‚ment plac‚ dans tb */ export int path_varenvsplit ( const char *nomvar, /* Nom de la variable */ char *tb[]) /* Contiendra un path absolue pour recherche exec */ /* alloue par strdup() */ /* utilis‚ tbstr_free() pour lib‚rer */ { int nb = 0; char *varbuf = getenv(nomvar); if (varbuf != NULL){ nb = tbstr_str2tb (varbuf,':',tb); tbstr_skipstrip (tb,nb); } return (nb); } /* V‚rifie si la variable PATH contient des path valides Retourne -1 si un des path est invalide, sinon retourne le nombre de path */ export int path_validate (void) { char *tb[50]; int nb = path_varenvsplit("PATH",tb); int ret = nb; int i; for (i=0; i %d\n",buf,path_validate()); } void main(void) { test (getenv("PATH")); test ("/bin:/etc"); test ("/bin"); /* invalide */ test ("/bin:/toto"); test (""); } #endif