# Copyright (c) 1990 The Regents of the University of California.
# Copyright (c) 1994-1996 Sun Microsystems, Inc.
# See the file "license.terms" for information on usage and redistribution
# of this file, and for a DISCLAIMER OF ALL WARRANTIES.
#
#
=head1 NAME
Tk_GetUid, Tk_Uid - convert from string to unique identifier
=for category C Programming
=head1 SYNOPSIS
B<#include E<lt>tk.hE<gt>>
B<#typedef char *Tk_Uid>
Tk_Uid
B<Tk_GetUid>(I<string>)
=head1 ARGUMENTS
=over 4
=item char *string (in)
String for which the corresponding unique identifier is
desired.
=back
=head1 DESCRIPTION
B<Tk_GetUid> returns the unique identifier corresponding
to I<string>.
Unique identifiers are similar to atoms in Lisp, and are used
in Tk to speed up comparisons and
searches. A unique identifier (type Tk_Uid) is a string pointer
and may be used anywhere that a variable of type ``char *''
could be used. However, there is guaranteed to be exactly
one unique identifier for any given string value. If B<Tk_GetUid>
is called twice, once with string I<a> and once with string
I<b>, and if I<a> and I<b> have the same string value
(strcmp(a, b) == 0), then B<Tk_GetUid> will return exactly
the same Tk_Uid value for each call (Tk_GetUid(a) == Tk_GetUid(b)).
This means that variables of type
Tk_Uid may be compared directly (x == y) without having to call
B<strcmp>.
In addition, the return value from B<Tk_GetUid> will have the
same string value as its argument (strcmp(Tk_GetUid(a), a) == 0).
=head1 KEYWORDS
atom, unique identifier