Provided by: alliance_5.0-20110203-4_amd64 bug

NAME

       namefind - hash table for strings

SYNOPSYS

       #include "mut.h"
       char ∗namefind(inputname)
       char ∗inputname;

PARAMETER

       inputname           Pointer to a string of characters

DESCRIPTION

       The namefind function search the mbk dictionnary of names.  If the string has already been
       inserted in the dictionnary, then a pointer  to  this  string  is  return,  else  namefind
       returns NULL.
       The  case  of the letters do not matter. All names are changed to lower case before beeing
       searched in the symbol table. This is needed because most of the file format do not  check
       case.
       namefind is used by all mbk utility function using names, so its use should be needed only
       when directly filling or modifing the structure, or when having  to  compare  an  external
       string to mbk internal ones. This should speed up string comparisons.
       One  shall never modify the contains of a string pointed to by a result of namefind, since
       all the field that points to this name would have there values modified, and that there is
       no  chance  that  the new hash code will be the same as the old one, so pointer comparison
       would be meaningless. All string used by namefind are constants string, and therefore must
       be left alone.

RETURN VALUE

       namefind  returns  a  string  pointer  if the inputname is already in the hash table, else
       NULL.

EXAMPLE

       #include "mut.h"
       #include "mlo.h"
       lofig_list ∗find_fig(name)
       char ∗name;
       {
       lofig_list ∗p;
          name = namefind(name);
          if (name == NULL)
              return NULL;
          for (p = HEAD_LOFIG; p; p = p->NEXT)
             if (p->NAME == name) /∗ pointer equality ∗/
                return p;
          return NULL;
       }

DIAGNOSTICS

       namefind can be used only after a call to mbkenv(3).

SEE ALSO

       mbk(1) namealloc(3).