123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 |
- #ifndef SYNONYM_SOURCE
- #define SYNONYM_SOURCE
- #include <string.h>
- #include "../tools/types.h"
- char const * synonym (char const * term, const struct _term_ list [], size_t size)
- {
- size_t lower = 0;
- size_t upper = size;
- while (lower < upper)
- {
- size_t index = (lower + upper) >> 1;
- signed order = strcmp (term, list [index].term);
- if (order < 0)
- {
- upper = index - 0;
- continue;
- }
- if (order > 0)
- {
- lower = index + 1;
- continue;
- }
- return (list [index].text);
- }
- return (term);
- }
- #endif
|