Skip site navigation (1)Skip section navigation (2)

  
 
  

home | help
NAMEALLOC(3)		      MBK UTILITY FUNCTIONS		    NAMEALLOC(3)

NAME
     namealloc - hash table for strings

SYNOPSIS
     #include "mut.h"
     char *namealloc(inputname)
     char *inputname;

PARAMETER
     inputname		 Pointer to a string of characters

DESCRIPTION
     The namealloc function creates a dictionary of names in mbk.  It warranties
     equality  on  characters string if the pointers to these strings are equal,
     at strcmp(3) meaning. This means also that there is a single memory address
     for a given string.
     The case of the letters do not matter. All names are changed to lower  case
     before being introduced in the symbol table. This is needed because most of
     the file format do not check case.
     namealloc	is  used  by  all  mbk	utility function using names, so its use
     should be needed only when directly filling or modifying 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
     namealloc, 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 namealloc are constants string, and therefore must	be  left
     alone.

RETURN VALUE
     namealloc	returns  a  string  pointer.  If the inputname is already in the
     hash table, then its internal pointer is returned, else a new entry is cre-
     ated, and then the new pointer returned.

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

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

SEE ALSO
     mbk(1).

ASIM/LIP6			 October 1, 1997		    NAMEALLOC(3)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=namealloc&sektion=3&manpath=FreeBSD+Ports+15.1.quarterly>

home | help