tweaks: move two functions to before the ones that call them
parent
c1ca578853
commit
bc6645f753
90
src/global.c
90
src/global.c
|
@ -366,6 +366,51 @@ void add_to_funcs(void (*func)(void), int menus, const char *desc,
|
||||||
#endif
|
#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. */
|
/* Add a key combo to the linked list of shortcuts. */
|
||||||
void add_to_sclist(int menus, const char *scstring, const int keycode,
|
void add_to_sclist(int menus, const char *scstring, const int keycode,
|
||||||
void (*func)(void), int toggle)
|
void (*func)(void), int toggle)
|
||||||
|
@ -513,51 +558,6 @@ functionptrtype interpret(int *keycode)
|
||||||
}
|
}
|
||||||
#endif /* ENABLE_BROWSER || ENABLE_HELP */
|
#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. */
|
/* These two tags are used elsewhere too, so they are global. */
|
||||||
/* TRANSLATORS: Try to keep the next two strings at most 10 characters. */
|
/* TRANSLATORS: Try to keep the next two strings at most 10 characters. */
|
||||||
const char *exit_tag = N_("Exit");
|
const char *exit_tag = N_("Exit");
|
||||||
|
|
26
src/text.c
26
src/text.c
|
@ -1439,19 +1439,6 @@ size_t indent_length(const char *line)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef ENABLE_JUSTIFY
|
#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"
|
/* 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. */
|
* of a line is the largest initial substring matching the quoting regex. */
|
||||||
size_t quote_length(const char *line)
|
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,
|
/* 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,
|
* 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
|
* and remove all blanks from the end of the line. Leave the first skip
|
||||||
|
|
Loading…
Reference in New Issue