nano

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

commit 3e4edb2a5a37e8eabc9eb7eafad94c3ad3a81068
parent 92ad431be450d35f6c5c31fb361d19f560d2659f
Author: Benno Schulenberg <bensberg@telfort.nl>
Date:   Sun, 24 Mar 2019 11:47:45 +0100

bump version numbers and add a news item for the 4.0 release

Diffstat:
MChangeLog | 235+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
MIMPROVEMENTS | 9++++++++-
MNEWS | 25+++++++++++++++++++++++++
Mconfigure.ac | 2+-
Mdoc/faq.html | 2+-
Mdoc/nano.1 | 2+-
Mdoc/nano.texi | 8++++----
Mdoc/nanorc.5 | 2+-
Mdoc/rnano.1 | 2+-
Mroll-a-release.sh | 2+-
10 files changed, 278 insertions(+), 11 deletions(-)

diff --git a/ChangeLog b/ChangeLog @@ -1,3 +1,238 @@ +Changes between v3.2 and v4.0: +------------------------------ + +Benno Schulenberg (190): + bindings: change the action of <Alt+Up>/<Alt+Down> to 'scroll linewise' + bindings: hard-bind ASCII code 0x08 (BS) to the backspace function + bindings: make the normal scrolling keystrokes work also in help viewer + bindings: provide usable shortcuts for prevword/nextword in tiny version + bindings: rename 'cutwordleft' to 'chopwordleft', and similar for right + browser, help: make <Bsp> page up also when terminfo mismatches terminal + browser: say "Close" instead of "Exit" for the ^X shortcut + browser: show the ^G item again in the help lines + build: eradicate the --disable-wrapping-as-root configure option + build: fix compilation when configured with --disable-utf8 + build: use wget over https (instead of plain rsync) to fetch PO files + build: verify that 'pkg.m4' is available when building from git + bump version numbers and add a news item for the 4.0 release + copyright: update the years for significantly changed files + copyright: update the years for the FSF + copyright: update the years for the FSF in the documentation too + cutting: cover the corner cases where cut commands do not cut anything + cutting: give feedback when otherwise nothing happens + cutting: when ^K does not actually cut anything, do not add an undo item + display: account for horizontal scrolling when drawing the guide stripe + display: account for zero-width characters when reserving space for '>' + display: change the "$" continuation character to ">" and "<" + display: dot the stripe when it's in the last column, to defeat a VTE bug + display: ensure that spotlighted text is not treated as a prompt answer + display: highlight the ">"/"<" continuation characters in reverse video + display: represent half of a double-width character with "[" and "]" + display: scroll horizontally one column earlier + display: show "[" for half of two-column character also when softwrapping + display: show it in title bar when starting up in restricted mode + display: use non-breaking space instead of dot for VTE-bug workaround + docs: add notes to draw attention to the changed defaults + docs: adjust and extend the Pico-compatibility section in the manual + docs: adjust for the enhancement of the default quoting regex + docs: correct the descriptions of 'speller' and 'linter' functions + docs: deprecate the use of morespace, smooth, nonewlines, and nowrap + docs: describe breaklonglines, emptyline, finalnewline, jumpyscrolling + docs: describe the four new options (-b, -f, -j, -e) + docs: describe the new options -J, --guidestripe, and 'set stripecolor' + docs: harmonize the style of bindable-function descriptions + docs: mention nano's major features directly instead of referring + docs: mention that 'cutwordleft' is bound to <Shift+Ctrl+Delete> + docs: mention that --morespace and --smooth are obsolete and ignored + docs: mention that 'quotestr' enables the rewrapping of comment blocks + docs: mention three features in their proper place + docs: remove from the FAQ some items that are no longer relevant + docs: remove the mentioning of --disable-wrapping-as-root from the FAQ + docs: reword and reshuffle the description of --rawsequences + docs: say that --rebinddelete can correct both <Backspace> and <Delete> + docs: stop implying that nano wants to be fully compatible with Pico + docs: stop saying that --fill switches on automatic hard-wrapping + docs: suggest a setting for 'stripecolor' in the sample nanorc + docs: update the links in the FAQ to the mailing-list info pages + feedback: complete the removal of some superfluous words + feedback: make two error messages better match the option + feedback: remove some superfluous words from Undid/Redid messages + files: retain a Shift-selected region when switching between buffers + gnulib: update to its current upstream state + help, docs: say "Delete" when things don't go into the cutbuffer + help: don't advertise ^S and ^Q when --preserve is used + help: don't list the obsoleted -O and -S options in the --help output + help: don't list the unbound <Alt+Up> and <Alt+Down> in the tiny version + help: in the tiny version, don't list an option that is the default + help: reword the description of ^U to avoid the impression of "Undo" + help: reword the tags for deleting a word left and right + justify: correctly detect when we've reached end of buffer + justify: extend the quoting regex, to cover more types of comments + justify: move the check for a bad quoting regex to a better place + menus: don't show ^S and ^Q in the help lines in the tiny version + menus: move the paragraph-jumping functions from Search to Goto-Line + menus: put the ^T toggle in Search in the same position as in Goto-Line + menus: remove the ^Y and ^V shortcuts from the Search menus + new feature: option --guidestripe that shows a vertical guiding bar + options: actually rename --rebindkeypad to --rawsequences (-K) + options: add -b, --breaklonglines, the counterpart of --nowrap + options: add -e, --emptyline, the counterpart of --morespace + options: add -f, --finalnewline, the counterpart of --nonewlines + options: add -j, --jumpyscrolling, the counterpart of --smooth + options: disable hard-wrapping and automatic newlines by default + options: let --fill no longer imply automatic hard-wrapping + options: make -d (--rebinddelete) work without -K (--rebindkeypad) + options: make --rawsequences disable --mouse, to prevent entering junk + options: rename long version of -K from --rebindkeypad to --rawsequences + options: stop recognizing and ignoring -b, -e, -f, -j, and -q + options: stop recognizing and mentioning --quiet and 'set quiet' + options: warn when option -O or -S is given, and ignore them + prompt: trim a double-width character at the screen's edge + rcfile: add 'stripecolor' for changing the color of the guiding stripe + rcfile: add the options that correspond to -b, -f, -j, and -e + rcfile, docs: remove deprecated forms of two options and five bindables + rcfile: don't report an error when the globbing pattern matches nothing + rcfile: reject an attempt to bind ^[ + rcfile: when a keystroke is rebound, don't bother unbinding it + rcfile: when an old flag is unset, set the corresponding new flag + rcfile: when rebound, DO unbind a keystroke from its earlier function + startup: check again for a Linux console after reading all files + startup: check that a backup directory is valid also when backups are off + startup: improve two error messages by mentioning the invalid operand + syntax: nanorc: stop coloring 'unset fill ...' as if it were valid + syntax: tcl: colorize comments normally, not with a background hue + text: turn the mark off when justifying, to not confuse an undo + tweaks: add a consistency check plus a corresponding warning + tweaks: add an alias for a string variable, so the code makes more sense + tweaks: add deprecation comments to the four superseded options + tweaks: add two comments, and reduce the scope of another variable + tweaks: adjust indentation after previous change, and rename a parameter + tweaks: adjust the indentation after the previous change + tweaks: avoid parsing the same character twice + tweaks: calculate the length of a completion word in a more direct way + tweaks: change do_para_end() to not step beyond end of paragraph + tweaks: condense a comment, and drop two others + tweaks: condense a couple of comments and rewrap a few lines + tweaks: condense a handful of comments + tweaks: condense and correct a comment + tweaks: condense and improve a couple of comments + tweaks: condense and improve a handful of comments, and rewrap two lines + tweaks: condense the logic of find_paragraph() + tweaks: condense two regexes in the Tcl syntax, and add a comment + tweaks: correct a comment typo, and trim a few other comments + tweaks: don't bother executing two functions that are empty + tweaks: don't bother special-casing non-UTF8 when checking for a blank + tweaks: don't bother trying to draw characters beyond the screen's edge + tweaks: don't bother zeroing the x position when doing a full justify + tweaks: don't pass a pointer when a boolean is expected + tweaks: elide a function that is called just once + tweaks: elide an unneeded intermediate variable + tweaks: elide a one-line function that is used just twice + tweaks: elide a parameter -- do the NULL checks in the caller + tweaks: elide a parameter that is always TRUE + tweaks: elide a tiny function by making a variable global + tweaks: elide a variable that is a copy of another + tweaks: elide two unneeded intermediate variables + tweaks: escape hyphens that must be hard hyphens in the man pages + tweaks: exclude the guide-stripe code from the tiny version + tweaks: hard-bind ASCII DEL in a slightly more economical way + tweaks: improve a comment, and add an intermediate variable for clarity + tweaks: improve a comment, to better match the changed code + tweaks: improve and condense some comments, and remove an unneeded one + tweaks: make an assignment only when the option is valid, like elsewhere + tweaks: move declaration of variable that does not need to be global + tweaks: move the character/word-deletion functions to a better location + tweaks: move the check for beginning-of-paragraph to a better place + tweaks: move the checks for git and gettext to a far earlier point + tweaks: reduce a bunch of repetitious comments to their essence + tweaks: reduce the scope of a variable, and rename it + tweaks: reduce the scope of two variables, and rename one of them + tweaks: reduce two parameters to a single one by summing them + tweaks: refer to the magic line as "magic line", not as "magicline" + tweaks: remove a superfluous check for a special case + tweaks: remove a superfluous incrementing and decrementing of a variable + tweaks: remove a variable that is no longer used + tweaks: remove two tag definitions that are no longer needed + tweaks: rename a function for aptness, and two variables for shortness + tweaks: rename a function, to be simpler and more accurate + tweaks: rename and invert a function, to avoid double negatives + tweaks: rename an overlooked variable from a single letter to a word + tweaks: rename a parameter plus a variable, and reshuffle an assignment + tweaks: rename a struct element, to make sense + tweaks: rename a symbol, to match its corresponding option + tweaks: rename a type, to make more sense + tweaks: rename a variable, because it also serves as "last line" + tweaks: rename a variable, elide another, and adjust two comments + tweaks: rename a variable, to be more distinct + tweaks: rename four functions, to make more sense + tweaks: rename some variables from a single letter to meaningful word + tweaks: rename some variables, to match others that have the same task + tweaks: rename three functions and two symbols, to match the new wording + tweaks: rename three variables, and reshuffle two declarations + tweaks: rename two parameters to be more descriptive + tweaks: rename two variables, to be less confusing + tweaks: rename two variables, to be more descriptive + tweaks: rename two variables, to indicate better what they mean + tweaks: renumber some FAQ items, to compensate for the deleted ones + tweaks: reorder some ifs, to reduce the average number of comparisons + tweaks: reshuffle a bit of code, to have the exit point near the end + tweaks: reshuffle a few lines, and condense some comments + tweaks: reshuffle and frob a couple of comments, and reindent two lines + tweaks: reshuffle some code, to require two fewer ifs + tweaks: reword the description of the disadvantages of Pico + tweaks: rewrap a line and improve a few comments + tweaks: schedule a call of edit_refresh() instead calling it directly + tweaks: slightly indent warnings and errors during the configure phase + tweaks: slightly reword, for esthetics of the resulting Info document + tweaks: split a variable into two, as they have different roles + tweaks: switch from checking MORE_SPACE to checking EMPTY_LINE + tweaks: switch from checking SMOOTH_SCROLL to checking JUMPY_SCROLLING + tweaks: switch from referencing NO_NEWLINES to referencing FINAL_NEWLINE + tweaks: switch from referencing NO_WRAP to referencing BREAK_LONG_LINES + tweaks: word some comments more concisely + undo: set the correct file size for a redo of a character deletion + utils: retire the fixbounds() function -- it is no longer needed + +Brand Huntsman (1): + history: use an unfreed 'position_history' to avoid a possible crash + +David Lawrence Ramsey (34): + display: correctly trim an overshooting character from a prompt answer + display: correct the logic for making room for the ">" character + display: properly handle double-width characters when spotlighting + display: properly trim double-width characters at the edit window's edge + display: show the guide stripe for double-width/multi-byte characters + docs: remove references to not being able to undo justifications + input: properly handle <Escape>s followed by a shifted Meta+letter + justify: handle the leading part when justifying a marked region + justify: initialize a variable before making use of its value + justify: put a mid-line marked region onto separate lines + justify: when justifying a marked region, strip whitespace after the lead + moving: make the generic paragraph movement functions work on any buffer + new feature: marked text gets justified into a single, new paragraph + options: exit on a bad quoting regex, instead of crashing later + text: hook the new justify mechanism up to the undo system + text: make do_justify() use the cutbuffer + text: make find_paragraph() work on any buffer + text: make justify_format() work on any buffer + text: make justify_paragraph() work on any buffer + text: prepare to make find_paragraph() work on any buffer + text: properly check again for no paragraphs after the current line + text: remove the old unjustify mechanism, to prepare for the new justify + tweaks: adapt find_paragraph()/justify_paragraph() for multiple quotes + tweaks: adjust indentation after the previous commit + tweaks: adjust some indentation after the previous change + tweaks: normalize the indentation, and remove unneeded braces + tweaks: remove unnecessary variable initializations + tweaks: rename a variable, to prepare for its new role + tweaks: split justify_paragraph() into three separate functions + tweaks: swap the names of the variables 'wrap_at' and 'fill' + tweaks: use proper variable types in the word-completion functions + undo: after undoing a cut, don't remove the magicline if we're on it + undo: set and check 'xflags' in a bitwise manner + undo: when undoing a cut, remove also the magicline if it added one + + Changes between v3.1 and v3.2: ------------------------------ diff --git a/IMPROVEMENTS b/IMPROVEMENTS @@ -1,6 +1,14 @@ Improvements in GNU nano ======================== +Since 4.0: + - Automatic hard-wrapping is no longer the default. + - Addition of --guidestripe to draw a helpful vertical bar. + - Meta-Up and Meta-Down scroll the screen linewise. + - Continuation is shown with a highlighted ">" instead of a plain "$". + - A marked region gets justified into a single, separate paragraph. + - Any number of justifications can be undone. + Since 3.0: - Addition of --zap to make <Del> and <Bsp> obliterate marked text. - <Ctrl+Delete> wipes next word and <Shift+Ctrl+Delete> preceding word. @@ -23,7 +31,6 @@ Since 2.9.0: for the history files (of search strings and cursor positions). Since 2.8.0: - - Meta-Up/Meta-Down will search the previous/next occurrence. - ^U pastes the first line of the cutbuffer at a prompt. - Softwrapping can be done at whitespace (with --soft --atblanks). - The ^G help texts have become searchable (with ^W and M-W). diff --git a/NEWS b/NEWS @@ -1,3 +1,28 @@ +2019.03.24 - GNU nano 4.0 "Thy Rope of Sands" +• An overlong line is no longer automatically hard-wrapped. +• Smooth scrolling (one line at a time) has become the default. +• A newline character is no longer automatically added at end of buffer. +• The line below the title bar is by default part of the editing space. +• Option --breaklonglines (-b) turns automatic hard-wrapping back on. +• Option --jumpyscrolling (-j) gives the chunky, half-screen scrolling. +• Option --finalnewline (-f) brings back the automatic newline at EOF. +• Option --emptyline (-e) leaves the line below the title bar unused. +• <Alt+Up> and <Alt+Down> now do a linewise scroll instead of a findnext. +• Any number of justifications can be undone (like all other operations). +• When marked text is justified, it becomes a single, separate paragraph. +• Option --guidestripe=<number> draws a vertical bar at the given column. +• Option --fill=<number> no longer turns on automatic hard-wrapping. +• When a line continues offscreen, it now ends with a highlighted ">". +• The halfs of a split two-column character are shown as "[" and "]". +• A line now scrolls horizontally one column earlier. +• The bindable functions 'cutwordleft' and 'cutwordright' were renamed + to 'chopwordleft' and 'chopwordright' as they don't use the cutbuffer. +• The paragraph-jumping functions were moved from Search to Go-to-Line. +• Option --rebinddelete is able to compensate for more misbindings. +• Options --morespace and --smooth are obsolete and thus ignored. +• The --disable-wrapping-as-root configure option was removed. + + 2018.11.11 - GNU nano 3.2 "Het kromme hout" changes the default binding for the linter to M-B so that the spell checker (^T) can always be used, and changes (when linting) the text in the diff --git a/configure.ac b/configure.ac @@ -16,7 +16,7 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see https://www.gnu.org/licenses/. -AC_INIT([GNU nano], [3.2], [nano-devel@gnu.org], [nano]) +AC_INIT([GNU nano], [4.0], [nano-devel@gnu.org], [nano]) AC_CONFIG_SRCDIR([src/nano.c]) AC_CANONICAL_HOST AM_INIT_AUTOMAKE([1.14]) diff --git a/doc/faq.html b/doc/faq.html @@ -85,7 +85,7 @@ <h3><a name="1.3"></a>1.3. Why the name change from TIP?</h3> <blockquote><p>On January 10, 2000, TIP was officially renamed to nano because of a namespace conflict with another program called 'tip'. The original 'tip' program &quot;establishes a full duplex terminal connection to a remote host&quot;, and was included with many older Unix systems (and newer ones like Solaris). The conflict was not noticed at first because there is no 'tip' utility included with most GNU/Linux distributions (where nano was developed).</p></blockquote> <h3><a name="1.4"></a>1.4. What is the current version of nano?</h3> -<blockquote><p>The current version of nano <i>should</i> be <b>3.2</b>. Of course, you should always check the <a href="https://nano-editor.org/">nano homepage</a> to see what the latest and greatest version is.</p></blockquote> +<blockquote><p>The current version of nano <i>should</i> be <b>4.0</b>. Of course, you should always check the <a href="https://nano-editor.org/">nano homepage</a> to see what the latest and greatest version is.</p></blockquote> <h3><a name="1.5"></a>1.5. I want to read the man page without having to download the program!</h3> <blockquote><p>Jeez, demanding, aren't we? Okay, look <a href="https://nano-editor.org/dist/latest/nano.1.html">here</a>.</p></blockquote> <hr width="100%"> diff --git a/doc/nano.1 b/doc/nano.1 @@ -16,7 +16,7 @@ .\" Documentation License along with this program. If not, see .\" <https://www.gnu.org/licenses/>. .\" -.TH NANO 1 "version 3.2" "November 2018" +.TH NANO 1 "version 4.0" "March 2019" .SH NAME nano \- Nano's ANOther editor, inspired by Pico diff --git a/doc/nano.texi b/doc/nano.texi @@ -8,8 +8,8 @@ @smallbook @set EDITION 0.5 -@set VERSION 3.2 -@set UPDATED November 2018 +@set VERSION 4.0 +@set UPDATED March 2019 @dircategory Editors @direntry @@ -23,7 +23,7 @@ @titlepage @title GNU @command{nano} @subtitle a small and friendly text editor -@subtitle version 3.2 +@subtitle version 4.0 @author Chris Allegretta @page @@ -63,7 +63,7 @@ e-mail: @email{chrisa@@asty.org}@* @node Top @top -This manual documents the GNU @command{nano} editor, version 3.2. +This manual documents the GNU @command{nano} editor, version 4.0. @menu * Introduction:: diff --git a/doc/nanorc.5 b/doc/nanorc.5 @@ -16,7 +16,7 @@ .\" Documentation License along with this program. If not, see .\" <https://www.gnu.org/licenses/>. .\" -.TH NANORC 5 "version 3.2" "November 2018" +.TH NANORC 5 "version 4.0" "March 2019" .SH NAME nanorc \- GNU nano's configuration file diff --git a/doc/rnano.1 b/doc/rnano.1 @@ -16,7 +16,7 @@ .\" Documentation License along with this program. If not, see .\" <https://www.gnu.org/licenses/>. .\" -.TH RNANO 1 "version 3.2" "November 2018" +.TH RNANO 1 "version 4.0" "March 2019" .SH NAME rnano \- a restricted nano diff --git a/roll-a-release.sh b/roll-a-release.sh @@ -1,6 +1,6 @@ #!/bin/bash -VERSION="3.2" +VERSION="4.0" ./configure -C --enable-tiny && make && ./configure -C --disable-wrapping-as-root &&