]> git.pond.sub.org Git - empserver/blobdiff - src/lib/common/stmtch.c
Update copyright notice
[empserver] / src / lib / common / stmtch.c
index 27f00501f48220953f46c39c657aa5eba7c78221..6e4ed98096ab376831a95f115e063ad143ad534d 100644 (file)
@@ -1,6 +1,6 @@
 /*
  *  Empire - A multi-player, client/server Internet based war game.
- *  Copyright (C) 1986-2006, Dave Pare, Jeff Bailey, Thomas Ruschak,
+ *  Copyright (C) 1986-2009, Dave Pare, Jeff Bailey, Thomas Ruschak,
  *                           Ken Stevens, Steve McClure
  *
  *  This program is free software; you can redistribute it and/or modify
  *  ---
  *
  *  stmtch.c: Matching operations on structures and commands
- * 
+ *
  *  Known contributors to this file:
- *     
+ *     Markus Armbruster, 2004-2008
  */
 
 #include <config.h>
 
-#include "misc.h"
 #include "match.h"
 
 /*
- * Find NEEDLE in array HAYSTACK[], return its index.
+ * Find element named NEEDLE in array HAYSTACK[], return its index.
  * Return M_NOTFOUND if there are no matches, M_NOTUNIQUE if there are
  * several.
  * Each array element has a pointer to its name stored at offset OFFS.
@@ -57,9 +56,10 @@ stmtch(char *needle, void *haystack, ptrdiff_t offs, size_t elt_size)
        case ME_MISMATCH:
            break;
        case ME_PARTIAL:
-           if (res >= 0)
-               return M_NOTUNIQUE;
-           res = i;
+           if (res == M_NOTFOUND)
+               res = i;
+           else
+               res = M_NOTUNIQUE;
            break;
        case ME_EXACT:
            return i;