Provided by: alliance_5.0-20120515-6_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).

ASIM/LIP6                                        October 1, 1997                                     namefind(3)