@@ -18,29 +18,39 @@ void __cdecl edit_text_fix_selection(edit_text* edit)
1818 int16 text_len = int16 (strlen (edit->buffer ));
1919
2020 if (edit->insertion_point_index <= 0 )
21+ {
2122 edit->insertion_point_index = 0 ;
23+ }
2224
2325 int16 text_len11 = text_len;
2426 if (edit->insertion_point_index < text_len)
27+ {
2528 text_len11 = edit->insertion_point_index ;
29+ }
2630
2731 uns16 selection_start_index = edit->selection_start_index ;
2832 bool v8 = edit->selection_start_index <= NONE;
2933 edit->insertion_point_index = text_len;
3034
3135 int16 v5 = NONE;
3236 if (!v8)
37+ {
3338 v5 = selection_start_index;
39+ }
3440 if (v5 < text_len)
3541 {
3642 text_len = NONE;
3743 if (selection_start_index > NONE)
44+ {
3845 text_len = selection_start_index;
46+ }
3947 }
4048
4149 edit->selection_start_index = text_len;
4250 if (text_len11 == text_len)
51+ {
4352 edit->selection_start_index = NONE;
53+ }
4454}
4555
4656void __cdecl edit_text_selection_reset (edit_text* edit)
@@ -58,13 +68,15 @@ uns8 __cdecl edit_text_get_selection_indices(edit_text* edit, int16* start_index
5868
5969 edit_text_fix_selection (edit);
6070
61- if (edit-> selection_start_index == NONE)
62- return 0 ;
63-
64- *start_index = (edit->selection_start_index <= edit->insertion_point_index ) ? edit->selection_start_index : edit->insertion_point_index ;
65- *end_index = (edit->selection_start_index <= edit->insertion_point_index ) ? edit->insertion_point_index : edit->selection_start_index ;
71+ uns8 selection_valid = 0 ;
72+ if (edit-> selection_start_index != NONE)
73+ {
74+ *start_index = (edit->selection_start_index <= edit->insertion_point_index ) ? edit->selection_start_index : edit->insertion_point_index ;
75+ *end_index = (edit->selection_start_index <= edit->insertion_point_index ) ? edit->insertion_point_index : edit->selection_start_index ;
6676
67- return 1 ;
77+ selection_valid = 1 ;
78+ }
79+ return selection_valid;
6880}
6981
7082void __cdecl edit_text_handle_key (edit_text* edit, const s_key_state* key)
0 commit comments