From 747d1333cc6fb668d8a6105e3b30f46e81378e28 Mon Sep 17 00:00:00 2001 From: Markus Armbruster Date: Sat, 29 Oct 2005 07:15:14 +0000 Subject: [PATCH] (intmatch): Assumes that struct size is a multiple of sizeof(int), out of laziness. The assumption is true on any sane machine, due to alignment constraints. But the function doesn't provide enough value to make me fix or document this. Remove it. (lookup): Replace it. --- include/prototypes.h | 1 - src/lib/subs/mtch.c | 20 -------------------- src/lib/subs/show.c | 20 +++++++++++--------- 3 files changed, 11 insertions(+), 30 deletions(-) diff --git a/include/prototypes.h b/include/prototypes.h index 79422469..1bcfb1b2 100644 --- a/include/prototypes.h +++ b/include/prototypes.h @@ -529,7 +529,6 @@ extern void msl_sel(struct emp_qelem *, coord, coord, natid, int, extern int msl_launch_mindam(struct emp_qelem *, coord, coord, int, int, int, s_char *, int, int); /* mtch.c */ -extern int intmatch(register int, register int *, int); extern int comtch(register s_char *, struct cmndstr *, int, int); /* natarg.c */ extern int natarg(s_char *, s_char *); diff --git a/src/lib/subs/mtch.c b/src/lib/subs/mtch.c index f4f08c75..05bd032d 100644 --- a/src/lib/subs/mtch.c +++ b/src/lib/subs/mtch.c @@ -30,10 +30,6 @@ * Known contributors to this file: * (List known contributors to this file) */ -/* - * XXX These routines gamble that structures are all longword-aligned. - * If this is not true, they will BREAK! - */ #include "misc.h" #include "player.h" @@ -41,22 +37,6 @@ #include "match.h" #include "prototypes.h" -/* - * find a matching integer from a member of a structure. - * Inspired by stmtch above. - */ -int -intmatch(register int value, register int *ptr, int size) -{ - register int i; - - size /= sizeof(*ptr); - for (i = 0; *ptr; i++, ptr += size) - if (value == *ptr) - return i; - return -1; -} - /* * Search for COMMAND in COMS[], return its index. * Return M_NOTFOUND if there are no matches, M_NOTUNIQUE if there are diff --git a/src/lib/subs/show.c b/src/lib/subs/show.c index 19a45884..c4e2f1cb 100644 --- a/src/lib/subs/show.c +++ b/src/lib/subs/show.c @@ -132,14 +132,16 @@ make_new_list(int tlev, int type) sort_lookup_list(); } -static s_char * +static char * lookup(int key, struct lookup *table) { - int match; + int i; - if ((match = intmatch(key, &table->key, sizeof(*table))) < 0) - return 0; - return table[match].value; + for (i = 0; table[i].value; i++) + if (key == table[i].key) + return table[i].value; + + return NULL; } void @@ -219,7 +221,7 @@ show_nuke_capab(int tlev) { struct nchrstr *np; int i, j, n; - s_char *p; + char *p; if (opt_DRNUKE) pr("%13s blst dam lbs tech res $%7s abilities\n", "", ""); @@ -342,7 +344,7 @@ show_ship_capab(int tlev) int j; int scount; int n; - s_char *p; + char *p; pr("%25s cargos & capabilities\n", ""); @@ -402,7 +404,7 @@ show_plane_capab(int tlev) int i; int pcount; int n; - s_char *p; + char *p; pr("%25s capabilities\n", ""); make_new_list(tlev, EF_PLANE); @@ -467,7 +469,7 @@ show_land_capab(int tlev) int lcount; i_type i; int j, n; - s_char *p; + char *p; pr("%25s capabilities\n", "");