core: command (proc) names may now contained embedded nulls
commit5d44077dc5e785c490707f57a420fb92ff99015f
authorSteve Bennett <steveb@workware.net.au>
Fri, 5 Jun 2020 01:51:19 +0000 (5 11:51 +1000)
committerSteve Bennett <steveb@workware.net.au>
Fri, 5 Jun 2020 11:48:01 +0000 (5 21:48 +1000)
tree560aa66f38cc1a6b340cff81489de6e5f5084e41
parent7dbb01f6ca673f3b46231215695c848ffbee3989
core: command (proc) names may now contained embedded nulls

The hash table used to store commands now uses Jim_Obj keys rather
than allocated char *, so embedded nulls are supported.

This means that some API function such as Jim_RenameCommand()
now take Jim_Obj * rather than const char *, however Jim_CreateCommand()
is retained with const char * for convenience and the new Jim_CreateCommandObj()
is added.

This is generally a performance win as the existing Jim_Obj can be used
as the key.

Signed-off-by: Steve Bennett <steveb@workware.net.au>
jim-aio.c
jim-interp.c
jim.c
jim.h
jim_tcl.txt
tests/alias.test
tests/applyns.test