summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorsbron <sbron@tclcode.com>2023-03-20 10:35:49 (GMT)
committersbron <sbron@tclcode.com>2023-03-20 10:35:49 (GMT)
commitd506153e3da3be7340e7242424d74a23342d8428 (patch)
treed2523bc55ed644904f2cc738ba3b211e8bc9b18c
parentc9fa73560e09fd8645deaee8706d15a6f0d8c80c (diff)
downloadtk-d506153e3da3be7340e7242424d74a23342d8428.zip
tk-d506153e3da3be7340e7242424d74a23342d8428.tar.gz
tk-d506153e3da3be7340e7242424d74a23342d8428.tar.bz2
Fix error message formatting and add a test for the error scenario.
-rw-r--r--generic/tkMenu.c2
-rw-r--r--tests/menu.test10
2 files changed, 11 insertions, 1 deletions
diff --git a/generic/tkMenu.c b/generic/tkMenu.c
index 69ef6da..1d607ff 100644
--- a/generic/tkMenu.c
+++ b/generic/tkMenu.c
@@ -2421,7 +2421,7 @@ MenuAddOrInsert(
idPtr = objv[offs];
if (Tcl_FindHashEntry(&menuPtr->items, Tcl_GetString(idPtr))) {
Tcl_SetObjResult(interp, Tcl_ObjPrintf(
- "Entry %s already exists", Tcl_GetString(idPtr)));
+ "entry \"%s\" already exists", Tcl_GetString(idPtr)));
Tcl_SetErrorCode(interp, "TK", "MENU", "ENTRY_EXISTS", NULL);
return TCL_ERROR;
}
diff --git a/tests/menu.test b/tests/menu.test
index e330417..a114269 100644
--- a/tests/menu.test
+++ b/tests/menu.test
@@ -4134,6 +4134,16 @@ test menu-40.12 {identifiers - delete by id} -setup {
} -cleanup {
destroy .m
} -result {e001 e002 cmd9}
+test menu-40.12 {identifiers - duplicate} -setup {
+ destroy .m
+} -body {
+ menu .m
+ .m add command foo -label 1
+ .m add command bar -label 2
+ .m add command foo -label 3
+} -cleanup {
+ destroy .m
+} -returnCodes error -result {entry "foo" already exists}
# cleanup
imageFinish