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:
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. */