summaryrefslogtreecommitdiffstats
path: root/atc
diff options
context:
space:
mode:
authorelad <elad@NetBSD.org>2006-10-07 18:29:02 +0000
committerelad <elad@NetBSD.org>2006-10-07 18:29:02 +0000
commit70b401e618341601bb80edc90daa5fe4579ad5bf (patch)
tree96b5c2e2c4c2e7978c390bd00d2d21ab1e2e5f80 /atc
parent7b75ec7c32fed43c84bccc56d4a8dfe625ecaef4 (diff)
downloadbsdgames-darwin-70b401e618341601bb80edc90daa5fe4579ad5bf.tar.gz
bsdgames-darwin-70b401e618341601bb80edc90daa5fe4579ad5bf.tar.zst
bsdgames-darwin-70b401e618341601bb80edc90daa5fe4579ad5bf.zip
Input validation, from David A. Holland on #NetBSD-code
Diffstat (limited to 'atc')
-rw-r--r--atc/input.c24
1 files changed, 18 insertions, 6 deletions
diff --git a/atc/input.c b/atc/input.c
index 2eef9053..44310133 100644
--- a/atc/input.c
+++ b/atc/input.c
@@ -1,4 +1,4 @@
-/* $NetBSD: input.c,v 1.20 2006/06/07 09:24:26 jnemeth Exp $ */
+/* $NetBSD: input.c,v 1.21 2006/10/07 18:29:02 elad Exp $ */
/*-
* Copyright (c) 1990, 1993
@@ -46,7 +46,7 @@
#if 0
static char sccsid[] = "@(#)input.c 8.1 (Berkeley) 5/31/93";
#else
-__RCSID("$NetBSD: input.c,v 1.20 2006/06/07 09:24:26 jnemeth Exp $");
+__RCSID("$NetBSD: input.c,v 1.21 2006/10/07 18:29:02 elad Exp $");
#endif
#endif /* not lint */
@@ -517,28 +517,40 @@ descend(int c __attribute__((__unused__)))
const char *
setalt(int c)
{
- if ((p.altitude == c - '0') && (p.new_altitude == p.altitude))
+ int newalt = c - '0';
+ if ((p.altitude == newalt) && (p.new_altitude == p.altitude))
return ("Already at that altitude");
- p.new_altitude = c - '0';
+ if (p.new_altitude == newalt) {
+ return ("Already going to that altitude");
+ }
+ p.new_altitude = newalt;
return (NULL);
}
const char *
setrelalt(int c)
{
+ int newalt;
+
if (c == 0)
return ("altitude not changed");
switch (dir) {
case D_UP:
- p.new_altitude = p.altitude + c - '0';
+ newalt = p.altitude + c - '0';
break;
case D_DOWN:
- p.new_altitude = p.altitude - (c - '0');
+ newalt = p.altitude - (c - '0');
break;
default:
return ("Unknown case in setrelalt! Get help!");
}
+
+ if (p.new_altitude == newalt)
+ return ("Already going to that altitude");
+
+ p.new_altitude = newalt;
+
if (p.new_altitude < 0)
return ("Altitude would be too low");
else if (p.new_altitude > 9)