1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50
|
int prompt(t_env *env2, t_list *env)
{
char *cd;
char *t1;
char *tmp;
if (env2->buffer == NULL)
my_putstr_error("errreur amlloc");
else
{
my_putstr("$-->");
memset(&env2->buffer[0], 0, 4096);
if (read(0, env2->buffer, 4095) <= 0)
{
/* my_putstr_error("[ERROR]\n"); */
return (0);
}
else
{
cd = malloc(my_strlen(env2->buffer) * sizeof(char));
t1 = malloc(my_strlen(env2->buffer) * sizeof(char));
tmp = malloc(my_strlen(env2->buffer) * sizeof(char));
if (cd == NULL || t1 == NULL || tmp == NULL)
my_putstr_error("error\n");
else
{
if (my_strcmp(env2->buffer, "exit\n") == 0)
return (0);
else
{
my_strncpy(cd,env2->buffer,2);
my_strcpy(t1, env2->buffer);
del_str(t1, cd);
strcpy(tmp, t1);
if (strncmp(cd, "cd\n", 2) == 0)
my_cd(tmp);
else if (my_strncmp(env2->buffer, "setenv\n", 5) == 0)
{
env = add_firsttab(env, env2->environ);
setenv(env, env2->buffer);
}
else
loop(env2);
}
}
}
}
return (42);
} |