aboutsummaryrefslogtreecommitdiff
path: root/src/io/input.c
diff options
context:
space:
mode:
authorJ08nY2018-03-25 00:49:13 +0100
committerJ08nY2018-03-25 00:49:13 +0100
commitf7d64a5b2f6a0ec597e0ee0ad2af1b759833d0dd (patch)
treec167c484054e1b043a58fef3fb0512850487233b /src/io/input.c
parent25ff36c600b10cab05c2c948ac6aa8d7e9677fd1 (diff)
downloadecgen-f7d64a5b2f6a0ec597e0ee0ad2af1b759833d0dd.tar.gz
ecgen-f7d64a5b2f6a0ec597e0ee0ad2af1b759833d0dd.tar.zst
ecgen-f7d64a5b2f6a0ec597e0ee0ad2af1b759833d0dd.zip
Diffstat (limited to 'src/io/input.c')
-rw-r--r--src/io/input.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/src/io/input.c b/src/io/input.c
index efe2d2c..5f7bfa8 100644
--- a/src/io/input.c
+++ b/src/io/input.c
@@ -12,14 +12,15 @@ int delim;
static GEN input_i(const char *prompt, unsigned long bits) {
if (prompt && in == stdin) {
- fprintf(out, "%s ", prompt);
+ fprintf(err, "%s ", prompt);
}
char *line = NULL;
size_t n = 0;
ssize_t len = getdelim(&line, &n, delim, in);
if (len <= 0) {
- return gen_m1;
+ fprintf(err, "Couldn't read an integer.\n");
+ return gen_m2;
}
if (len == 1 && !feof(in)) {
free(line);
@@ -44,7 +45,7 @@ static GEN input_i(const char *prompt, unsigned long bits) {
GEN input_prime(const char *prompt, unsigned long bits) {
GEN read = input_i(prompt, bits);
- if (equalii(read, gen_m1)) {
+ if (equalii(read, gen_m1) || equalii(read, gen_m2)) {
return read;
} else {
if (isprime(read)) {
@@ -64,7 +65,7 @@ GEN input_short(const char *prompt) { return input_i(prompt, 16); }
GEN input_string(const char *prompt) {
if (prompt && in == stdin) {
- fprintf(out, "%s ", prompt);
+ fprintf(err, "%s ", prompt);
}
char *line = NULL;
size_t n = 0;