nano

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

commit 5dbd9c004362cd00a0efac2df376b3bdfb62079a
parent cd9328fbf5c4016ba5c5fbc06fe88427d9bd1b50
Author: Benno Schulenberg <bensberg@telfort.nl>
Date:   Fri, 25 Jan 2019 15:04:41 +0100

options: add -f, --finalnewline, the counterpart of --nonewlines

Diffstat:
Msrc/nano.c | 16+++++++++++++---
Msrc/nano.h | 3++-
2 files changed, 15 insertions(+), 4 deletions(-)

diff --git a/src/nano.c b/src/nano.c @@ -801,7 +801,7 @@ void usage(void) print_opt("-K", "--rawsequences", N_("Fix numeric keypad key confusion problem")); print_opt("-L", "--nonewlines", - N_("Don't add newlines to the ends of files")); + N_("Don't add an automatic newline [default]")); #ifdef ENABLED_WRAPORJUSTIFY print_opt("-M", "--trimblanks", N_("Trim tail spaces when hard-wrapping")); @@ -850,6 +850,7 @@ void usage(void) print_opt("-c", "--constantshow", N_("Constantly show cursor position")); print_opt("-d", "--rebinddelete", N_("Fix Backspace/Delete confusion problem")); + print_opt("-f", "--finalnewline", N_("Ensure that text ends with a newline")); #ifdef ENABLE_BROWSER if (!ISSET(RESTRICTED)) print_opt("-g", "--showcursor", N_("Show cursor in file browser & help text")); @@ -1979,6 +1980,7 @@ int main(int argc, char **argv) #endif {"constantshow", 0, NULL, 'c'}, {"rebinddelete", 0, NULL, 'd'}, + {"finalnewline", 0, NULL, 'f'}, #ifdef ENABLE_BROWSER {"showcursor", 0, NULL, 'g'}, #endif @@ -2084,7 +2086,7 @@ int main(int argc, char **argv) while ((optchr = getopt_long(argc, argv, - "ABC:DEFGHIKLMNOPQ:RST:UVWX:Y:Zabcdghiklmno:pr:s:tuvwxyz$", + "ABC:DEFGHIKLMNOPQ:RST:UVWX:Y:Zabcdfghiklmno:pr:s:tuvwxyz$", long_options, NULL)) != -1) { switch (optchr) { #ifndef NANO_TINY @@ -2130,7 +2132,7 @@ int main(int argc, char **argv) SET(RAW_SEQUENCES); break; case 'L': - SET(NO_NEWLINES); + UNSET(FINAL_NEWLINE); break; #ifdef ENABLED_WRAPORJUSTIFY case 'M': @@ -2208,6 +2210,9 @@ int main(int argc, char **argv) case 'd': SET(REBIND_DELETE); break; + case 'f': + SET(FINAL_NEWLINE); + break; case 'g': SET(SHOW_CURSOR); break; @@ -2402,6 +2407,11 @@ int main(int argc, char **argv) SET(NO_WRAP); #endif + if (ISSET(FINAL_NEWLINE)) + UNSET(NO_NEWLINES); + else + SET(NO_NEWLINES); + /* If the user wants bold instead of reverse video for hilited text... */ if (ISSET(BOLD_TEXT)) hilite_attribute = A_BOLD; diff --git a/src/nano.h b/src/nano.h @@ -541,7 +541,8 @@ enum AT_BLANKS, AFTER_ENDS, LET_THEM_ZAP, - BREAK_LONG_LINES + BREAK_LONG_LINES, + FINAL_NEWLINE }; /* Flags for the menus in which a given function should be present. */