void my_printnbr(int fd, int nbr, char *base) { if (nbr < 0) { my_fdputchar(fd, '-'); nbr *= -1; } if (nbr >= my_strlen(base)) { my_printnbr(fd, nbr / my_strlen(base), base); my_printnbr(fd, nbr % my_strlen(base), base); } else my_fdputchar(fd, base[nbr]); }
int my_print_flag(int fd, char *str_flag, va_list *ap) { int i; int ret; i = 0; ret = 0; if (str_flag[0] == '%') my_fdputchar(fd, '%'); else { while ((g_interf + i)->flag && ret == 0) { if (my_strcmp((g_interf + i)->flag, str_flag) == 0) ret = (g_interf + i)->print(fd, ap); i += 1; } if (ret == 0) { my_putchar('%'); my_putstr(str_flag); } } return (ret); }
int my_fdprintf(int fd, const char *format, ...) { int i; int written; va_list params; i = 0; written = 0; if (format == NULL) return (-1); va_start(params, format); while (format[i]) { if (format[i] == '%' && format[++i]) written += my_print_flag(fd, my_getflag(format + i, &i), ¶ms); else { my_fdputchar(fd, format[i]); written += 1; } i += 1; } va_end(params); return (written); }
void error_cd(char **tabx, char *home, t_cmd *cmd) { char *path; cmd->retour = 1; if (size_wordtab(tabx) > 1) path = tabx[1]; else path = home; if (access(path, F_OK) == 0) { my_fdputstr("bash: cd: ", cmd->fdout); my_fdputstr(path, cmd->fdout); my_fdputstr("/: Permission denied ", cmd->fdout); my_fdputchar('\n', cmd->fdout); } else { my_fdputstr("bash: cd: ", cmd->fdout); my_fdputstr(path, cmd->fdout); my_fdputstr(": No such file or directory", cmd->fdout); my_fdputchar('\n', cmd->fdout); } }