summaryrefslogtreecommitdiff
path: root/lib/input.c
diff options
context:
space:
mode:
authorRaúl Benencia <rul@kalgan.cc>2015-03-31 15:13:34 -0300
committerRaúl Benencia <rul@kalgan.cc>2015-03-31 15:13:34 -0300
commitf7098bcf35b095ce98acaee9f969981e6ef9a43e (patch)
tree6d8bd3e817849b5762d3d7659294c0fb35584fa3 /lib/input.c
parent85858c2f6dc624c6c32b9c59b187b378cfc89d9e (diff)
input coordinates from stdin
Diffstat (limited to 'lib/input.c')
-rw-r--r--lib/input.c38
1 files changed, 38 insertions, 0 deletions
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