From 2332679ad64e3e0318ca812421190156edec9186 Mon Sep 17 00:00:00 2001 From: Sebastiano Tronto Date: Mon, 27 Dec 2021 12:43:14 +0100 Subject: Added option -i to accept scramble(s) from stdin, very useful for batch mode --- src/shell.c | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) (limited to 'src/shell.c') diff --git a/src/shell.c b/src/shell.c index 5fb18bc..2cb3719 100644 --- a/src/shell.c +++ b/src/shell.c @@ -32,8 +32,10 @@ void exec_args(int c, char **v) { int i; + char line[MAXLINELEN]; Command *cmd = NULL; CommandArgs *args; + Alg *scramble; for (i = 0; i < NCOMMANDS; i++) if (commands[i] != NULL && !strcmp(v[0], commands[i]->name)) @@ -50,7 +52,27 @@ exec_args(int c, char **v) return; } - cmd->exec(args); + if (args->scrstdin) { + while (true) { + if (fgets(line, MAXLINELEN, stdin) == NULL) { + clearerr(stdin); + break; + } + + scramble = new_alg(line); + + printf(">>> Line: %s", line); + + if (scramble != NULL && scramble->len > 0) { + args->scramble = scramble; + cmd->exec(args); + free_alg(scramble); + args->scramble = NULL; + } + } + } else { + cmd->exec(args); + } free_args(args); } -- cgit v1.3