Allow backspace to be bound to keys in .nanorc

Allow kdel to be rebound
Add note about rebinding kdel to backspace for those using OSX or PuTTY to connect to remote Linux machines in nanorc.sample.in

When undoing text deletes, move current_x to proper location



git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@4281 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
This commit is contained in:
Chris Allegretta 2008-07-13 16:44:19 +00:00
parent 70859f4a5b
commit fa406949ec
4 changed files with 8 additions and 2 deletions

View File

@ -222,6 +222,9 @@
# bind M-A casesens search
# bind ^S research main
## Set this if your backspace key sends delete most of the time (2.1.3+)
# bind kdel backspace all
## Nanorc files
# include "@PKGDATADIR@/nanorc.nanorc"

View File

@ -1446,6 +1446,8 @@ sc *strtosc(int menu, char *input)
s->scfunc = do_enter;
else if (!strcasecmp(input, "delete"))
s->scfunc = do_delete;
else if (!strcasecmp(input, "backspace"))
s->scfunc = do_backspace;
else if (!strcasecmp(input, "refresh"))
s->scfunc = total_refresh;
else if (!strcasecmp(input, "casesens")) {

View File

@ -380,7 +380,7 @@ void parse_keybinding(char *ptr)
for (i = 0; i < strlen(keycopy); i++)
keycopy[i] = toupper(keycopy[i]);
if (keycopy[0] != 'M' && keycopy[0] != '^' && keycopy[0] != 'F') {
if (keycopy[0] != 'M' && keycopy[0] != '^' && keycopy[0] != 'F' && keycopy[0] != 'K') {
rcfile_error(
N_("keybindings must begin with \"^\", \"M\", or \"F\"\n"));
return;

View File

@ -393,6 +393,7 @@ void do_undo(void)
fprintf(stderr, "Undo running for type %d\n", u->type);
#endif
openfile->current_x = u->begin;
switch(u->type) {
case ADD:
action = _("text add");
@ -413,6 +414,7 @@ void do_undo(void)
strcpy(&data[u->begin + strlen(u->strdata)], &f->data[u->begin]);
free(f->data);
f->data = data;
openfile->current_x += strlen(u->strdata);
break;
case SPLIT:
action = _("line split");
@ -442,7 +444,6 @@ void do_undo(void)
}
openfile->current = f;
openfile->current_x = u->begin;
edit_refresh();
statusbar(_("Undid action (%s)"), action);
openfile->current_undo = openfile->current_undo->next;