nano

nano with my custom patches
git clone git://bsandro.tech/nano
Log | Files | Refs | README | LICENSE

commit fa406949ec5a49de68fba06c6c02f3fac9d2a335
parent 70859f4a5bb198d6b660a53e066b26e357806c4b
Author: Chris Allegretta <chrisa@asty.org>
Date:   Sun, 13 Jul 2008 16:44:19 +0000

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

Diffstat:
Mdoc/nanorc.sample.in | 3+++
Msrc/global.c | 2++
Msrc/rcfile.c | 2+-
Msrc/text.c | 3++-
4 files changed, 8 insertions(+), 2 deletions(-)

diff --git a/doc/nanorc.sample.in b/doc/nanorc.sample.in @@ -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" diff --git a/src/global.c b/src/global.c @@ -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")) { diff --git a/src/rcfile.c b/src/rcfile.c @@ -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; diff --git a/src/text.c b/src/text.c @@ -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;