From ffc7e95486dffe836d6c5a7d9477a986d4db4d21 Mon Sep 17 00:00:00 2001 From: "jan.nijtmans" Date: Fri, 26 Jan 2024 13:40:47 +0000 Subject: Fix [16e25e1402]: tcl_startOfPreviousWord cannot handle "end-1" --- library/word.tcl | 2 +- tests/word.test | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/library/word.tcl b/library/word.tcl index 0c8e01c..a993918 100644 --- a/library/word.tcl +++ b/library/word.tcl @@ -147,7 +147,7 @@ proc tcl_startOfPreviousWord {str start} { variable ::tcl::WordBreakRE set word {-1 -1} if {$start > 0} { - regexp -indices -- $WordBreakRE(previous) [string range $str 0 $start-1] \ + regexp -indices -- $WordBreakRE(previous) [string range [string range $str 0 $start] 0 end-1] \ result word } return [lindex $word 0] diff --git a/tests/word.test b/tests/word.test index 453a635..c141aba 100644 --- a/tests/word.test +++ b/tests/word.test @@ -64,7 +64,7 @@ test word-2.6 {tcl_startOfPreviousWord} -body { test word-2.7 {tcl_startOfPreviousWord} -body { tcl_startOfPreviousWord "ab cd" end } -result 3 -test word-2.8 {tcl_startOfPreviousWord, bug [16e25e1402]} -constraints knownBug -body { +test word-2.8 {tcl_startOfPreviousWord, bug [16e25e1402]} -body { tcl_startOfPreviousWord "ab cd" end-1 } -result 0 -- cgit v0.12 From ca170ba542c781a2505f9d1eb72f9971c90ce7a3 Mon Sep 17 00:00:00 2001 From: "jan.nijtmans" Date: Sat, 27 Jan 2024 12:09:52 +0000 Subject: More testcases --- tests/word.test | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/tests/word.test b/tests/word.test index de5c985..effcd20 100644 --- a/tests/word.test +++ b/tests/word.test @@ -39,6 +39,9 @@ test word-1.7 {tcl_endOfWord} -body { test word-1.8 {tcl_endOfWord} -body { tcl_endOfWord "ab cd" end-1 } -result -1 +test word-1.9 {tcl_endOfWord} -body { + tcl_endOfWord "ab cd" {} +} -result 2 test word-2.0 {tcl_startOfPreviousWord} -body { tcl_startOfPreviousWord "ab cd" -1 @@ -67,6 +70,9 @@ test word-2.7 {tcl_startOfPreviousWord} -body { test word-2.8 {tcl_startOfPreviousWord, bug [16e25e1402]} -body { tcl_startOfPreviousWord "ab cd" end-1 } -result 0 +test word-2.9 {tcl_startOfPreviousWord} -body { + tcl_startOfPreviousWord "ab cd" {} +} -result -1 test word-3.0 {tcl_startOfNextWord} -body { tcl_startOfNextWord "ab cd" -1 @@ -95,6 +101,9 @@ test word-3.7 {tcl_startOfNextWord} -body { test word-3.8 {tcl_startOfNextWord} -body { tcl_startOfNextWord "ab cd" end-1 } -result -1 +test word-3.9 {tcl_startOfNextWord} -body { + tcl_startOfNextWord "ab cd" {} +} -result 3 test word-4.0 {tcl_wordBreakBefore} -body { tcl_wordBreakBefore "ab cd" -1 @@ -123,6 +132,9 @@ test word-4.7 {tcl_wordBreakBefore} -body { test word-4.8 {tcl_wordBreakBefore} -body { tcl_startOfNextWord "ab cd" end-1 } -result -1 +test word-4.9 {tcl_wordBreakBefore} -body { + tcl_wordBreakBefore "ab cd" {} +} -result -1 test word-5.0 {tcl_wordBreakAfter} -body { tcl_wordBreakAfter "ab cd" -1 @@ -151,6 +163,9 @@ test word-5.7 {tcl_wordBreakAfter} -body { test word-5.8 {tcl_wordBreakAfter} -body { tcl_wordBreakAfter "ab cd" end-1 } -result -1 +test word-5.9 {tcl_wordBreakAfter} -body { + tcl_wordBreakAfter "ab cd" {} +} -result 2 test word-6.0 {tcl_startOfPreviousWord} -body { tcl_startOfPreviousWord a b c d -- cgit v0.12