register.h (1970B)
1 #pragma once 2 3 #include "nvim/ascii_defs.h" 4 #include "nvim/ex_cmds_defs.h" 5 #include "nvim/macros_defs.h" 6 #include "nvim/register_defs.h" 7 8 #include "register.h.generated.h" 9 #include "register.h.inline.generated.h" 10 11 /// @see get_yank_register 12 /// @return true when register should be inserted literally 13 /// (selection or clipboard) 14 static inline bool is_literal_register(const int regname) 15 FUNC_ATTR_CONST 16 { 17 return regname == '*' || regname == '+' || ASCII_ISALNUM(regname); 18 } 19 20 /// Convert register name into register index 21 /// 22 /// @param[in] regname Register name. 23 /// 24 /// @return Index in y_regs array or -1 if register name was not recognized. 25 static inline int op_reg_index(const int regname) 26 FUNC_ATTR_CONST 27 { 28 if (ascii_isdigit(regname)) { 29 return regname - '0'; 30 } else if (ASCII_ISLOWER(regname)) { 31 return CHAR_ORD_LOW(regname) + 10; 32 } else if (ASCII_ISUPPER(regname)) { 33 return CHAR_ORD_UP(regname) + 10; 34 } else if (regname == '-') { 35 return DELETION_REGISTER; 36 } else if (regname == '*') { 37 return STAR_REGISTER; 38 } else if (regname == '+') { 39 return PLUS_REGISTER; 40 } else { 41 return -1; 42 } 43 } 44 45 static inline bool is_append_register(int regname) 46 FUNC_ATTR_CONST 47 { 48 return ASCII_ISUPPER(regname); 49 } 50 51 /// @return the character name of the register with the given number 52 static inline int get_register_name(int num) 53 FUNC_ATTR_CONST 54 { 55 if (num == -1) { 56 return '"'; 57 } else if (num < 10) { 58 return num + '0'; 59 } else if (num == DELETION_REGISTER) { 60 return '-'; 61 } else if (num == STAR_REGISTER) { 62 return '*'; 63 } else if (num == PLUS_REGISTER) { 64 return '+'; 65 } else { 66 return num + 'a' - 10; 67 } 68 } 69 70 /// Check whether register is empty 71 static inline bool reg_empty(const yankreg_T *const reg) 72 FUNC_ATTR_PURE 73 { 74 return (reg->y_array == NULL 75 || reg->y_size == 0 76 || (reg->y_size == 1 77 && reg->y_type == kMTCharWise 78 && reg->y_array[0].size == 0)); 79 }