NAME¶
namefind - hash table for strings
ORIGIN¶
This software belongs to the ALLIANCE CAD SYSTEM developed by the ASIM team at
  
LIP6 laboratory of Université Pierre et Marie CURIE, in Paris,
  France.
 
Web : 
http://asim.lip6.fr/recherche/alliance/
 
E-mail : 
alliance-users@asim.lip6.fr
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).
BUG REPORT¶
This tool is under development at the 
ASIM department of the 
LIP6
  laboratory.
 
We need your feedback to improve documentation and tools.