(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:
parent
b8e2f4a92a
commit
747d1333cc
3 changed files with 11 additions and 30 deletions
|
@ -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 *);
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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", "");
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue