(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.
This commit is contained in:
Markus Armbruster 2005-10-29 07:15:14 +00:00
parent b8e2f4a92a
commit 747d1333cc
3 changed files with 11 additions and 30 deletions

View file

@ -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, extern int msl_launch_mindam(struct emp_qelem *, coord, coord, int,
int, int, s_char *, int, int); int, int, s_char *, int, int);
/* mtch.c */ /* mtch.c */
extern int intmatch(register int, register int *, int);
extern int comtch(register s_char *, struct cmndstr *, int, int); extern int comtch(register s_char *, struct cmndstr *, int, int);
/* natarg.c */ /* natarg.c */
extern int natarg(s_char *, s_char *); extern int natarg(s_char *, s_char *);

View file

@ -30,10 +30,6 @@
* Known contributors to this file: * Known contributors to this file:
* (List 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 "misc.h"
#include "player.h" #include "player.h"
@ -41,22 +37,6 @@
#include "match.h" #include "match.h"
#include "prototypes.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. * Search for COMMAND in COMS[], return its index.
* Return M_NOTFOUND if there are no matches, M_NOTUNIQUE if there are * Return M_NOTFOUND if there are no matches, M_NOTUNIQUE if there are

View file

@ -132,14 +132,16 @@ make_new_list(int tlev, int type)
sort_lookup_list(); sort_lookup_list();
} }
static s_char * static char *
lookup(int key, struct lookup *table) lookup(int key, struct lookup *table)
{ {
int match; int i;
if ((match = intmatch(key, &table->key, sizeof(*table))) < 0) for (i = 0; table[i].value; i++)
return 0; if (key == table[i].key)
return table[match].value; return table[i].value;
return NULL;
} }
void void
@ -219,7 +221,7 @@ show_nuke_capab(int tlev)
{ {
struct nchrstr *np; struct nchrstr *np;
int i, j, n; int i, j, n;
s_char *p; char *p;
if (opt_DRNUKE) if (opt_DRNUKE)
pr("%13s blst dam lbs tech res $%7s abilities\n", "", ""); pr("%13s blst dam lbs tech res $%7s abilities\n", "", "");
@ -342,7 +344,7 @@ show_ship_capab(int tlev)
int j; int j;
int scount; int scount;
int n; int n;
s_char *p; char *p;
pr("%25s cargos & capabilities\n", ""); pr("%25s cargos & capabilities\n", "");
@ -402,7 +404,7 @@ show_plane_capab(int tlev)
int i; int i;
int pcount; int pcount;
int n; int n;
s_char *p; char *p;
pr("%25s capabilities\n", ""); pr("%25s capabilities\n", "");
make_new_list(tlev, EF_PLANE); make_new_list(tlev, EF_PLANE);
@ -467,7 +469,7 @@ show_land_capab(int tlev)
int lcount; int lcount;
i_type i; i_type i;
int j, n; int j, n;
s_char *p; char *p;
pr("%25s capabilities\n", ""); pr("%25s capabilities\n", "");