mawww / kakoune

mawww's experiment for a better code editor
http://kakoune.org
The Unlicense
9.7k stars 705 forks source link

[BUG][CRASH] regex is broken #5194

Closed QiBaobin closed 1 week ago

QiBaobin commented 1 week ago

Version of Kakoune

master branch

Reproducer

make debug=yes start the kak, it crashes

Outcome

Fatal error: assert failed "vm.exec("fooquxbarbaz")" at src/regex_impl.cc:1227 [Debug Infos] pid: 16425 callstack: 0 kak.debug 0x000000010ede03a8 _ZN7Kakoune9BacktraceC2Ev + 40 1 kak.debug 0x000000010ede03d5 _ZN7Kakoune9BacktraceC1Ev + 21 2 kak.debug 0x000000010f1a292a _ZN7Kakoune16on_assert_failedEPKc + 58 3 kak.debug 0x000000010f23f347 _ZNK7Kakoune3$_3clEv + 1527 4 kak.debug 0x000000010f23ed41 _ZN7Kakoune3$_38__invokeEv + 17 5 kak.debug 0x000000010efe5f34 _ZN7Kakoune8UnitTest13run_all_testsEv + 36 6 kak.debug 0x000000010ecb199d _ZN7Kakoune10run_serverENS_10StringViewES0_S0_S0_NS_8OptionalINS_11BufferCoordEEENS_11ServerFlagsENS_6UITypeENS_10DebugFlagsENS_9ArrayViewIKS0_EE + 1533 7 kak.debug 0x000000010ecb9a22 main + 16530 8 dyld 0x00007ff8135fa366 start + 1942

Expectations

No crash and regex works like before.

Additional information

it seems that this commit c4684d0d849798bf7543131ce51158cd90cce82e introduced the issue. it's OK when I switch to the commit before it.

If use make instead of make debug=yes, it doesn't crash, it show below information in the debug instead, and some buffer's filetype is set to a wrong value, like '.kt' file uses filetype 'makefile' instead of 'kotlin'.

error running hook WinSetOption(filetype=)/: 4:5: 'evaluate-commands': option not found: '_static_words'. Use declare-option first error running hook WinSetOption(filetype=)/: 4:5: 'hook': invalid group name '-trim-indent' error running hook WinSetOption(filetype=)/: 4:5: 'hook': invalid group name '-trim-indent'

mawww commented 1 week ago

80fcfebca8c62ace6cf2af9487784486af07d2d5 fixed it