summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/input.h9
-rw-r--r--lib/input.c38
2 files changed, 47 insertions, 0 deletions
diff --git a/include/input.h b/include/input.h
new file mode 100644
index 0000000..7e1bb3e
--- /dev/null
+++ b/include/input.h
@@ -0,0 +1,9 @@
+#ifndef _INPUT
+#define _INPUT
+
+#include "types.h"
+
+Coord input_orig_coord();
+Coord input_dest_coord();
+
+#endif
diff --git a/lib/input.c b/lib/input.c
new file mode 100644
index 0000000..63df8c5
--- /dev/null
+++ b/lib/input.c
@@ -0,0 +1,38 @@
+#include <stdio.h>
+#include <string.h>
+
+#include "coordinate.h"
+#include "input.h"
+
+#define LENGTH 80
+
+static Coord _input_coord() {
+ char line[LENGTH];
+ int done = 0;
+
+ while (!done) {
+ fgets(line, LENGTH, stdin);
+
+ if (strnlen(line, LENGTH) == 3 && line[2] == '\n')
+ line[2] = 0;
+
+ if (!coord_is_valid(line))
+ printf("Invalid coordinate. Write something like \"e2\": ");
+ else
+ done = 1;
+ }
+
+ return coord_init(line);
+}
+
+Coord input_orig_coord() {
+ printf("Orig coordinate: ");
+
+ return _input_coord();
+}
+
+Coord input_dest_coord() {
+ printf("Dest coordinate: ");
+
+ return _input_coord();
+}
nihil fit ex nihilo