diff options
author | elad <elad@NetBSD.org> | 2006-10-07 18:29:02 +0000 |
---|---|---|
committer | elad <elad@NetBSD.org> | 2006-10-07 18:29:02 +0000 |
commit | 70b401e618341601bb80edc90daa5fe4579ad5bf (patch) | |
tree | 96b5c2e2c4c2e7978c390bd00d2d21ab1e2e5f80 /atc | |
parent | 7b75ec7c32fed43c84bccc56d4a8dfe625ecaef4 (diff) | |
download | bsdgames-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.c | 24 |
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) |