Thanks for both answers!
> The can't begin with an upper case is a X windows legacy.
I am taking the windows names from a database whose content should
be as general as possible. The names could also contain non
alphabetical, but human readable characters, including "." and
"$" that may be a problem.
Perhaps the best is to encode these names before making it widget
names. The real name of the widget is at this moment irrelevant for me.
Perhaps the following as encoding:
proc w {name} {return "_[binary encode base64 $name]"}
Do someone have a better proposal for an injective function?
I see the restriction "not upper case" is quite arbitrary:
% entry .45
.45
% entry .+
.+
% entry ./
./
% entry ._
._
% entry .ä
.ä
% entry .Ä
.Ä
% entry .A
window name starts with an upper-case letter: "A"
Thanks
Rodrigo