- Changed header comments to say "version 2" instead of "version
1" as the COPYING file is actually version 2 of the GPL (bug
noticed by Jordi Mallach).
+ - Backported do_prev_word() from 1.1. Command is Meta-Space.
+ Added #ifndef NANO_SMALL around both functions, as they
+ aren't needed for nano-tiny.
- cut.c:
do_cut_text()
- Backported 1.1 fixes for just doing edit_update when we cut
return do_enter(current);
}
+#ifndef NANO_SMALL
void do_next_word(void)
{
filestruct *fileptr, *old;
update_line(current, current_x);
}
}
+/* the same thing for backwards */
+void do_prev_word(void)
+{
+ filestruct *fileptr, *old;
+ int i;
+
+ if (current == NULL)
+ return;
+
+ old = current;
+ i = current_x;
+ for (fileptr = current; fileptr != NULL; fileptr = fileptr->prev) {
+ if (fileptr == current) {
+ while (isalnum((int) fileptr->data[i])
+ && i != 0)
+ i--;
+
+ if (i == 0) {
+ if (fileptr->prev != NULL)
+ i = strlen(fileptr->prev->data);
+ else if (fileptr == fileage && filebot != NULL) {
+ current_x = 0;
+ return;
+ }
+ continue;
+ }
+ }
+
+ while (!isalnum((int) fileptr->data[i]) && i != 0)
+ i--;
+
+ if (i > 0) {
+ i--;
+
+ while (isalnum((int) fileptr->data[i]) && i != 0)
+ i--;
+
+ if (!isalnum((int) fileptr->data[i]))
+ i++;
+
+ if (i != 0 || i != current_x)
+ break;
+
+ }
+ if (fileptr->prev != NULL)
+ i = strlen(fileptr->prev->data);
+ else if (fileptr == fileage && filebot != NULL) {
+ current_x = 0;
+ return;
+ }
+ }
+ if (fileptr == NULL)
+ current = fileage;
+ else
+ current = fileptr;
+
+ current_x = i;
+ placewewant = xplustabs();
+
+ if (current->lineno <= edittop->lineno)
+ edit_update(current, CENTER);
+ else {
+ /* If we've jumped lines, refresh the old line. We can't just use
+ * current->prev here, because we may have skipped over some blank
+ * lines, in which case the previous line is the wrong one.
+ */
+ if (current != old)
+ update_line(old, 0);
+
+ update_line(current, current_x);
+ }
+
+}
+#endif /* NANO_SMALL */
#ifndef DISABLE_WRAPPING
void do_wrap(filestruct * inptr, char input_char)
modify_control_seq = 1;
keyhandled = 1;
break;
+#ifndef NANO_SMALL
+ case ' ':
+ /* If control-space is next word, Alt-space should be previous word */
+ do_prev_word();
+ keyhandled = 1;
+ break;
+#endif
case 91:
switch (kbinput = wgetch(edit)) {
case '1': /* Alt-[-1-[0-5,7-9] = F1-F8 in X at least */
break;
#endif
#endif
+
case 0: /* Erg */
+#ifndef NANO_SMALL
do_next_word();
break;
-
+#endif
case 331: /* Stuff that we don't want to do squat */
case -1:
case 29: /* Ctrl-] */