void proc_arg() { int8 number; int8 good_arg; number = 0; arg = 0; good_arg = FALSE; while (number != 13) { // 13 = CR = terminator number = fgetc(COM_A); if (number != 13) fputc(number, COM_A); if (number > 47 && number < 58) { // ASCII 0 = 48 number = number - 48; arg = arg * 10; // increase significance arg = arg + number; // for each number good_arg = TRUE; } else if (number == 13 && good_arg == TRUE) { fputs("@OK! ", COM_A); // got a valid number // *** COMMAND PROCESSOR *** // select_cmd(); } else { good_arg = FALSE; fputs("@ARG ", COM_A); // bad input } if (good_arg == FALSE) break; } }
int get_word_in(t_cmd *cmd) { int fd_pipe[2]; char *line; if (pipe(fd_pipe) < 0) return (-1); if ((line = select_cmd(1, ">", NULL)) == NULL) return (-1); while (ft_strcmp(line, cmd->file_in) != 0) { write(fd_pipe[1], line, ft_strlen(line)); write(fd_pipe[1], "\n", 1); free(line); if ((line = select_cmd(1, ">", NULL)) == NULL) return (-1); } free(line); close(fd_pipe[1]); cmd->fd_in = fd_pipe[0]; return (0); }