Handle Ctrl-key combination. */
| 719 | |
| 720 | /** Handle Ctrl-key combination. */ |
| 721 | static void key_handle_ctrl(kbd_event_t const *ev) |
| 722 | { |
| 723 | spt_t pt; |
| 724 | switch (ev->key) { |
| 725 | case KC_Q: |
| 726 | ui_quit(edit.ui); |
| 727 | break; |
| 728 | case KC_S: |
| 729 | if (doc.file_name != NULL) |
| 730 | file_save(doc.file_name); |
| 731 | else |
| 732 | file_save_as(); |
| 733 | break; |
| 734 | case KC_E: |
| 735 | file_save_as(); |
| 736 | break; |
| 737 | case KC_C: |
| 738 | selection_copy(); |
| 739 | break; |
| 740 | case KC_V: |
| 741 | edit_paste(); |
| 742 | break; |
| 743 | case KC_X: |
| 744 | edit_cut(); |
| 745 | break; |
| 746 | case KC_A: |
| 747 | selection_sel_all(); |
| 748 | break; |
| 749 | case KC_RIGHT: |
| 750 | caret_move_word_right(false); |
| 751 | break; |
| 752 | case KC_LEFT: |
| 753 | caret_move_word_left(false); |
| 754 | break; |
| 755 | case KC_L: |
| 756 | caret_go_to_line_ask(); |
| 757 | break; |
| 758 | case KC_F: |
| 759 | search_prompt(false); |
| 760 | break; |
| 761 | case KC_N: |
| 762 | search_repeat(); |
| 763 | break; |
| 764 | case KC_HOME: |
| 765 | pt_get_sof(&pt); |
| 766 | caret_move(pt, false, true); |
| 767 | break; |
| 768 | case KC_END: |
| 769 | pt_get_eof(&pt); |
| 770 | caret_move(pt, false, true); |
| 771 | break; |
| 772 | default: |
| 773 | break; |
| 774 | } |
| 775 | } |
| 776 | |
| 777 | static void key_handle_shift_ctrl(kbd_event_t const *ev) |
| 778 | { |
no test coverage detected