@@ -2233,6 +2233,53 @@ def test_em_kill_region_with_kill_ring
22332233 assert_line ( 'def hoge' )
22342234 end
22352235
2236+ def test_ed_search_prev_next_history_in_multibyte
2237+ Reline ::HISTORY . concat ( [
2238+ "def hoge\n 67890\n 12345\n end" , # old
2239+ "def aiu\n 0xDEADBEEF\n end" ,
2240+ "def foo\n 12345\n end" # new
2241+ ] )
2242+ @line_editor . multiline_on
2243+ input_keys ( ' 123' )
2244+ # The ed_search_prev_history doesn't have default binding
2245+ @line_editor . __send__ ( :ed_search_prev_history , "\C -p" . ord )
2246+ assert_whole_lines ( [ 'def foo' , ' 12345' , 'end' ] )
2247+ assert_line_index ( 1 )
2248+ assert_whole_lines ( [ 'def foo' , ' 12345' , 'end' ] )
2249+ assert_byte_pointer_size ( ' 123' )
2250+ assert_cursor ( 5 )
2251+ assert_cursor_max ( 7 )
2252+ assert_line ( ' 12345' )
2253+ @line_editor . __send__ ( :ed_search_prev_history , "\C -p" . ord )
2254+ assert_line_index ( 2 )
2255+ assert_whole_lines ( [ 'def hoge' , ' 67890' , ' 12345' , 'end' ] )
2256+ assert_byte_pointer_size ( ' 123' )
2257+ assert_cursor ( 5 )
2258+ assert_cursor_max ( 7 )
2259+ assert_line ( ' 12345' )
2260+ @line_editor . __send__ ( :ed_search_prev_history , "\C -p" . ord )
2261+ assert_line_index ( 2 )
2262+ assert_whole_lines ( [ 'def hoge' , ' 67890' , ' 12345' , 'end' ] )
2263+ assert_byte_pointer_size ( ' 123' )
2264+ assert_cursor ( 5 )
2265+ assert_cursor_max ( 7 )
2266+ assert_line ( ' 12345' )
2267+ @line_editor . __send__ ( :ed_search_next_history , "\C -n" . ord )
2268+ assert_line_index ( 1 )
2269+ assert_whole_lines ( [ 'def foo' , ' 12345' , 'end' ] )
2270+ assert_byte_pointer_size ( ' 123' )
2271+ assert_cursor ( 5 )
2272+ assert_cursor_max ( 7 )
2273+ assert_line ( ' 12345' )
2274+ @line_editor . __send__ ( :ed_search_next_history , "\C -n" . ord )
2275+ assert_line_index ( 1 )
2276+ assert_whole_lines ( [ 'def foo' , ' 12345' , 'end' ] )
2277+ assert_byte_pointer_size ( ' 123' )
2278+ assert_cursor ( 5 )
2279+ assert_cursor_max ( 7 )
2280+ assert_line ( ' 12345' )
2281+ end
2282+
22362283=begin # TODO: move KeyStroke instance from Reline to LineEditor
22372284 def test_key_delete
22382285 input_keys('ab')
0 commit comments