diff --git a/src/global.c b/src/global.c index 201b53f0..6c9a981c 100644 --- a/src/global.c +++ b/src/global.c @@ -366,6 +366,51 @@ void add_to_funcs(void (*func)(void), int menus, const char *desc, #endif } +/* Parse the given keystring and return the corresponding keycode, + * or return -1 when the string is invalid. */ +int keycode_from_string(const char *keystring) +{ + if (keystring[0] == '^') { + if (keystring[2] == '\0') { + if (keystring[1] == '/') + return 31; + if (keystring[1] <= '_') + return keystring[1] - 64; + if (keystring[1] == '`') + return 0; + else + return -1; + } else if (strcasecmp(keystring, "^Space") == 0) + return 0; + else + return -1; + } else if (keystring[0] == 'M') { + if (keystring[1] == '-' && keystring[3] == '\0') + return tolower((unsigned char)keystring[2]); + if (strcasecmp(keystring, "M-Space") == 0) + return (int)' '; + else + return -1; +#ifdef ENABLE_NANORC + } else if (strncasecmp(keystring, "Sh-M-", 5) == 0 && + 'a' <= (keystring[5] | 0x20) && (keystring[5] | 0x20) <= 'z' && + keystring[6] == '\0') { + shifted_metas = TRUE; + return (keystring[5] & 0x5F); +#endif + } else if (keystring[0] == 'F') { + int fn = atoi(&keystring[1]); + if (fn < 1 || fn > 24) + return -1; + return KEY_F0 + fn; + } else if (strcasecmp(keystring, "Ins") == 0) + return KEY_IC; + else if (strcasecmp(keystring, "Del") == 0) + return KEY_DC; + else + return -1; +} + /* Add a key combo to the linked list of shortcuts. */ void add_to_sclist(int menus, const char *scstring, const int keycode, void (*func)(void), int toggle) @@ -513,51 +558,6 @@ functionptrtype interpret(int *keycode) } #endif /* ENABLE_BROWSER || ENABLE_HELP */ -/* Parse the given keystring and return the corresponding keycode, - * or return -1 when the string is invalid. */ -int keycode_from_string(const char *keystring) -{ - if (keystring[0] == '^') { - if (keystring[2] == '\0') { - if (keystring[1] == '/') - return 31; - if (keystring[1] <= '_') - return keystring[1] - 64; - if (keystring[1] == '`') - return 0; - else - return -1; - } else if (strcasecmp(keystring, "^Space") == 0) - return 0; - else - return -1; - } else if (keystring[0] == 'M') { - if (keystring[1] == '-' && keystring[3] == '\0') - return tolower((unsigned char)keystring[2]); - if (strcasecmp(keystring, "M-Space") == 0) - return (int)' '; - else - return -1; -#ifdef ENABLE_NANORC - } else if (strncasecmp(keystring, "Sh-M-", 5) == 0 && - 'a' <= (keystring[5] | 0x20) && (keystring[5] | 0x20) <= 'z' && - keystring[6] == '\0') { - shifted_metas = TRUE; - return (keystring[5] & 0x5F); -#endif - } else if (keystring[0] == 'F') { - int fn = atoi(&keystring[1]); - if (fn < 1 || fn > 24) - return -1; - return KEY_F0 + fn; - } else if (strcasecmp(keystring, "Ins") == 0) - return KEY_IC; - else if (strcasecmp(keystring, "Del") == 0) - return KEY_DC; - else - return -1; -} - /* These two tags are used elsewhere too, so they are global. */ /* TRANSLATORS: Try to keep the next two strings at most 10 characters. */ const char *exit_tag = N_("Exit"); diff --git a/src/text.c b/src/text.c index f90e9503..b219281e 100644 --- a/src/text.c +++ b/src/text.c @@ -1439,19 +1439,6 @@ size_t indent_length(const char *line) #endif #ifdef ENABLE_JUSTIFY -/* Copy a character from one place to another. */ -void copy_character(char **from, char **to) -{ - int charlen = char_length(*from); - - if (*from == *to) { - *from += charlen; - *to += charlen; - } else - while (--charlen >= 0) - *((*to)++) = *((*from)++); -} - /* Return the length of the quote part of the given line. The "quote part" * of a line is the largest initial substring matching the quoting regex. */ size_t quote_length(const char *line) @@ -1575,6 +1562,19 @@ void concat_paragraph(linestruct *line, size_t count) } } +/* Copy a character from one place to another. */ +void copy_character(char **from, char **to) +{ + int charlen = char_length(*from); + + if (*from == *to) { + *from += charlen; + *to += charlen; + } else + while (--charlen >= 0) + *((*to)++) = *((*from)++); +} + /* In the given line, replace any series of blanks with a single space, * but keep two spaces (if there are two) after any closing punctuation, * and remove all blanks from the end of the line. Leave the first skip