From 4f7885d3768a84582efcd239f221a0ebedd70435 Mon Sep 17 00:00:00 2001 From: fvogel Date: Sun, 28 May 2023 17:43:29 +0000 Subject: Add (currently failing) tests demonstrating bug [a418aafa76]: Bogus @x,y indices are accepted for menu entries --- tests/menu.test | 46 +++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 45 insertions(+), 1 deletion(-) diff --git a/tests/menu.test b/tests/menu.test index 152d2f4..f206a9e 100644 --- a/tests/menu.test +++ b/tests/menu.test @@ -3471,8 +3471,52 @@ test menu-22.5 {GetIndexFromCoords: mapped wide window} -setup { } -cleanup { deleteWindows } -result 0 +test menu-22.6 {GetIndexFromCoords: syntax error in @x,y indices} -setup { + deleteWindows +} -body { + menu .m + .m add command -label "First entry" + .m add command -label "Second entry" + .m add command -label "Last entry" + .m index @4bogus +} -cleanup { + deleteWindows +} -returnCodes error -result {bad menu entry index "@4bogus"} +test menu-22.7 {GetIndexFromCoords: syntax error in @x,y indices} -setup { + deleteWindows +} -body { + menu .m + .m add command -label "First entry" + .m add command -label "Second entry" + .m add command -label "Last entry" + .m index @10,4bogus +} -cleanup { + deleteWindows +} -returnCodes error -result {bad menu entry index "@10,4bogus"} +test menu-22.8 {GetIndexFromCoords: syntax error in @x,y indices} -setup { + deleteWindows +} -body { + menu .m + .m add command -label "First entry" + .m add command -label "Second entry" + .m add command -label "Last entry" + .m index @10,bogus +} -cleanup { + deleteWindows +} -returnCodes error -result {bad menu entry index "@10,bogus"} +test menu-22.9 {GetIndexFromCoords: index type pecedence} -setup { + deleteWindows +} -body { + menu .m -tearoff 0 + .m add command -label "First entry" + .m add command -label "@42nd street" + .m add command -label "Last entry" + .m index "@42nd*" ; # shall be interpreted as a pattern, not as @42 +} -cleanup { + deleteWindows +} -result {1} -test menu-22.6 {tk_popup on separator entry} -setup { +test menu-22.10 {tk_popup on separator entry} -setup { deleteWindows } -constraints {x11} -body { menu .m1 -- cgit v0.12 From d784654c95274c471e4319ed0d7e42adaceac453 Mon Sep 17 00:00:00 2001 From: fvogel Date: Sun, 28 May 2023 17:44:45 +0000 Subject: Fix [a418aafa76]: Bogus @x,y indices are accepted for menu entries. Testcases added in the previous commit do pass now. --- generic/tkMenu.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/generic/tkMenu.c b/generic/tkMenu.c index b4c6473..fbf4e33 100644 --- a/generic/tkMenu.c +++ b/generic/tkMenu.c @@ -2956,10 +2956,13 @@ GetIndexFromCoords( x = y; p = end + 1; y = strtol(p, &end, 0); - if (end == p) { + if ((end == p) || (*end != '\0')) { goto error; } } else { + if (*end != '\0') { + goto error; + } x = borderwidth; } -- cgit v0.12