void event_wait_enter(Event *event) { char *message; puts("Press [Enter] to continue"); lock(event); while ((message = event_peek_message(event)) == NULL) { condition_wait(event); } unlock(event); free(message); }
/** * @brief Wait input. * * @param ui User interface. * @param cmd Command. * @param param Command's parameters. */ bool ui_event_peek(UI *ui, char **cmd, char **param) { int n; char *message; if ((message = event_peek_message(ui->event)) != NULL) { free(*cmd); *cmd = NULL; free(*param); *param = NULL; n = strlen(message); *cmd = (char*) malloc(n + 1); *param = (char*) malloc(n + 1); parse_command(message, *cmd, *param, n); free(message); return true; } else { return false; } }
/** * @brief Wait input. * * @param event Event. * @param cmd Command. * @param param Command's parameters. */ void event_wait(Event *event, char **cmd, char **param) { int n; char *message; lock(event); while ((message = event_peek_message(event)) == NULL) { condition_wait(event); } unlock(event); free(*cmd); free(*param); info("<event wait: %s>\n", message); n = strlen(message); *cmd = (char*) malloc(n + 1); *param = (char*) malloc(n + 1); parse_command(message, *cmd, *param, n); free(message); }