Tcl Source Code

Artifact [b3f958f339]
Login

Artifact b3f958f3399f5311104214c54d046a7a0671c061:

Ticket change [b3f958f339] - New ticket [a122627849] procedure 'parray' doesn't check for an array. by anonymous 2013-11-22 13:45:46.
D 2013-11-22T13:45:46.997
J assignee nobody
J closer nobody
J cmimetype text/html
J comment There's\sa\sbug\sin\sthe\sbuilt-in\s'parray'\sprocedure\sof\sTcl\s8.4.\r\n<br\s/>\r\nThe\s'parray'\sprocedure\scheck\sif\sthe\svariable\sis\san\sarray,\sand\sif\sit\sis\snot,\sthen\sit\stries\sto\sprint\sit's\scontent\sinstead\sof\sit's\sname.\r\n\r\n\s\r\n\r\nCode\sexample:\r\n<pre>\r\nproc\sarray_to_list\s{arr_VarName}\s{\r\n\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\supvar\s$arr_VarName\sarr\r\n\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\sif\s[array\sexists\sarr]\s{\r\n\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\sset\stmp\s[array\sget\sarr]\r\n\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\sparray\sarr\r\n\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\sunset\sarr\r\n\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\sparray\sarr\r\n\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\sarray\sset\sarr\s[array\sget\stmp]\r\n\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\sreturn\s1\r\n\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s}\r\n\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\sreturn\s0\r\n}\r\n\r\nset\sb(a)\s"5"\r\nset\sb(c)\s"asdas"\r\nset\sb(dd)\s"al94i"\r\n\r\nif\s[array_to_list\sb]\s{\r\n\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\sputs\s$b\r\n}\selse\s{\r\n\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\sputs\s"BAAAAAAA"\r\n}\r\n</pre>\r\n\r\nOutput\sexample:\r\n<pre>\r\narr(a)\s\s=\s5\r\narr(c)\s\s=\sasdas\r\narr(dd)\s=\sal94i\r\n\r\n"arr"\sisn't\san\sarray\r\n\s\s\s\swhile\sexecuting\r\n"error\s"\\"$a\\"\sisn't\san\sarray""\r\n\s\s\s\s(procedure\s"parray"\sline\s4)\r\n\s\s\s\sinvoked\sfrom\swithin\r\n"parray\sarr"\r\n\s\s\s\sinvoked\sfrom\swithin\r\n"if\s[array\sexists\sarr]\s{\r\n\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\sset\stmp\s[array\sget\sarr]\r\n\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\sparray\sarr\r\n\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\sunset\sarr\r\n\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\sparray\sarr\r\n\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\sarray\sset\sarr\s[array\sget\stmp]\r\n\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\sreturn\s1\r\n\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s}"\r\n\s\s\s\s(procedure\s"array_to_list"\sline\s3)\r\n\s\s\s\sinvoked\sfrom\swithin\r\n"array_to_list\sb"\r\n\s\s\s\sinvoked\sfrom\swithin\r\n"if\s[array_to_list\sb]\s{\r\n\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\sputs\s$b\r\n}\selse\s{\r\n\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\sputs\s"BAAAAAAA"\r\n}"\r\n\s\s\s\s(file\s".\\test.tcl"\sline\s22)\r\n</pre>\r\n\r\nThe\sline\s"error\s"\\"$a\\"\sisn't\san\sarray""\shas\sthe\serror,\swhich\sis\srelevant\sto\sthe\ssecond\s'parray\sarr'\sline\sthat\sis\sin\sthe\s'array_to_list'\sprocedure.\r\n<br\s/>\r\nActiveState\sActiveTcl\s<br\s/>8.4.20.0.297203\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\sJun\s05,\s2013
J foundin 8.4
J is_private 0
J login anonymous
J priority 5\sMedium
J private_contact 5d6a65d81064024e292e94471bcec5cccc966f90
J resolution None
J severity Minor
J status Open
J submitter anonymous
J subsystem -\sNew\sBuiltin\sCommands
J title procedure\s'parray'\sdoesn't\scheck\sfor\san\sarray
J type Bug
K a122627849570b9175e6a2359560d1204733a854
U anonymous
Z 6875c2caf9800421e03e7500bd2e7aec