nano

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

commit f2ae08ab19ca8f9810b1cfb25255d3acf902faf6
parent 325d774393a1bb001b2f0da6d960b400f5784754
Author: Benno Schulenberg <bensberg@telfort.nl>
Date:   Fri,  7 Feb 2020 10:42:06 +0100

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

Diffstat:
MChangeLog | 176+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
MIMPROVEMENTS | 4++++
MNEWS | 13+++++++++++++
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, 203 insertions(+), 10 deletions(-)

diff --git a/ChangeLog b/ChangeLog @@ -1,3 +1,179 @@ +Changes between v4.7 and v4.8: +------------------------------ + +Benno Schulenberg (166): + bindings: allow to bind shifted Meta+letter combinations with Sh-M-X + bindings: allow to rebind also ^`, although it is synonymous with ^Space + bindings: do not show the Full-Justify keystroke when in View mode + bindings: force the first letter in a key name to uppercase + build: exclude bracketed pasting from the tiny version + build: exclude option '-g' when configured without browser and help + build: exclude the escape sequences for F13...F16 from the tiny version + build: fix compilation for --enable-{tiny,help,multibuffer} + build: restrict the use of --with-slang to together with --enable-tiny + bump version numbers and add a news item for the 4.8 release + copyright: update the years for significantly changed files + copyright: update the years for the FSF + display: adjust line and column count upon a resize also when using Slang + display: clear the help lines before a briefly shown warning + display: don't let a message write over the second help line + display: ensure the guiding stripe can be shown when not softwrapping + display: exclude a bit of feedback from the tiny version + display: show the cursor during suspension also when built with Slang + display: skip zero-width characters on a Linux console, to avoid a mess + docs: add a FAQ item about a self-compiled nano not reading /etc/nanorc + docs: document the new -f/--rcfile option + docs: document the new Sh-M-X format for binding <Shift+Meta+letter> + docs: for the alternative bindings, rebind ^C only in the main menu + docs: improve the description of which rc-files are read during startup + docs: mention in the FAQ that auto-indentation is suppressed when pasting + docs: mention that -D/--boldtext gets overridden by some nanorc options + docs: put the three new behaviors in a bulletted list, to catch the eye + docs: stop saying that 'set fill' enables hard-wrapping -- it does not + docs: use more generally available arrows in the cheatsheet + feedback: ask a clearer question when a valid lock file is encountered + feedback: report Ctrl+Alt keystrokes as unbindable + feedback: restore a message that can occur in help viewer or file browser + files: alert the user afterward when an overwritten file is being edited + files: revert the previous commit, as the extra warning is annoying + files: warn doubly when the user is about to overwrite an existing file + files: write a lock file also for a new file and when the name changed + gnulib: update to its current upstream state + help: don't waste the last column in the help viewer on narrow terminals + help: increase the minimum help-text width from 24 to 32 columns + help: prevent double spaces from protruding across the right edge + help: when a key description wraps, indent its wrapped part + input: consume and ignore the raw escape sequences for F17 to F24 + input: correct the escape sequence for PageUp/PageDown on Eterm/Urxvt + input: Ctrl+arrow is "Esc O x" on Eterm, as on rxvt -- not "Esc o x" + input: discard partial sequences that Slang produces for F17 to F24 + input: do not auto-indent when something is pasted into nano from outside + input: don't discard the first keystroke after a resize when using Slang + input: filter out Ctrl+Meta keystrokes, as they can never be shortcuts + input: ignore bracketed pastes in help viewer and file browser + input: ignore modifiers on a VT while executing a macro or a string bind + input: prevent unintentional marking of text for shifted Meta keystrokes + input: read in an external paste in one go, to allow undoing with one M-U + input: recognize the raw escape sequences for F13 to F16 on xterm too + locking: accept a minimal amount of data, enough for PID plus username + locking: avoid crashing when there is a problem writing the lock file + locking: check two magic bytes, to verify that it is a lock file + locking: do not write a lock file when in view mode + locking: when a lock file is unreadable, open the file itself anyway + locking: when finding a lock file at startup, quit when user cancels + new feature: allow specifying a custom nanorc file on the command line + pasting: retain the mark's position when it was set at the cursor + prompt: for a Yes-No-All, accept the first character of an external paste + rcfile: do set the meta flag for plain <Meta+ASCII> combinations + rcfile: require "bright", "start=", and "end=" to be in lowercase too + rcfile: unbind keys by their key code instead of by their key string + softwrap: suppress the guiding stripe on unaffected chunks + speller: avoid messing up the screen when an unknown locale is used + suspension: put in an extra terminal-initialization call for Slang + syntax: nanohelp, nanorc: colorize the Sh-M-X format as a valid key name + syntax: nanorc: colorize all-lowercase Meta key binds as valid too + tweaks: add a little change that was overlooked in the previous commit + tweaks: add an error message for something that should never occur + tweaks: adjust or reword a few items in the FAQ + tweaks: adjust the indentation after the previous change + tweaks: allocate the lock data only when ready to write them + tweaks: avoid analyzing the key string when the target key code is known + tweaks: avoid determining the key code from the key string twice + tweaks: avoid fiddling with the keybuffer when it's not needed + tweaks: comment fully, so that all handled escape sequences are findable + tweaks: condense a fragment of code + tweaks: condense five more fragments of repetitious code + tweaks: condense three comments to one, and do the masking more directly + tweaks: condense three fragments of repetitious code + tweaks: condense two comments, and reshuffle an #endif + tweaks: correct a comment + tweaks: correct a couple of comments about escape sequences + tweaks: correct the description of what nano writes into the lock file + tweaks: delete some fragments of code that have become irrelevant + tweaks: do not leak a file descriptor when fdopen() fails + tweaks: don't bother including Haiku escape sequences in the tiny version + tweaks: don't enable bracketed pasting when not handling such pastes + tweaks: drop a message that will never be seen + tweaks: drop an unneeded call of keypad() -- we never read from topwin + tweaks: drop a pointless suffix from two function names + tweaks: elide a function that has become too small for its two calls + tweaks: elide a helper function, in preparation for an improvement + tweaks: elide an 'if', by moving the relevant code to a better place + tweaks: elide a small function, as it's in fact needed just once + tweaks: elide a somewhat costly call by remembering some state + tweaks: elide a variable, and rename its sister + tweaks: elide three checks of a shortcut's meta flag + tweaks: ensure that editor name and user name are NUL terminated + tweaks: exclude an unneeded fragment of code from the tiny version + tweaks: exclude two unneeded fragments of code from the tiny version + tweaks: free two strings as soon as they are no longer needed + tweaks: frob a couple of indentations and white lines + tweaks: fuse two nearly identical functions into a single one + tweaks: gather four calls that are always done together into a function + tweaks: harmonize the amount of lock data that we read and write + tweaks: improve a comment by indirectly referring to the ncurses docs + tweaks: in comments, reword "titlebar" and "statusbar" to two words each + tweaks: initialize three booleans straightaway, when they are declared + tweaks: initialize three more booleans straightaway, at declaration + tweaks: judge from the key code itself whether it is a Meta keystroke + tweaks: make a couple of comments more precise + tweaks: move a function to after the one that it calls + tweaks: move a function to be before the ones that call it + tweaks: move a function to before the one that calls it + tweaks: move a function to related ones, and after one that it calls + tweaks: move a function to right before the one that calls it + tweaks: move another function to after the one that it calls + tweaks: move another function to before the one that calls it + tweaks: move another function, to group the deleting ones together + tweaks: move three functions to the file where they are mainly used + tweaks: rearrange a few global variables, to group things better + tweaks: recompute the wrapping point just once + tweaks: reduce the scope of a variable, and reshuffle a declaration + tweaks: reduce the scope of two constants and of four variables + tweaks: reformat a comment, and resuffle a line to match byte order + tweaks: remove a feedback message that is never shown + tweaks: remove a redundant call, as there is nothing to free there + tweaks: remove a superfluous check + tweaks: remove some superfluous conditions for rewriting a lock file + tweaks: remove the now-unneeded code related to bracketed pasting + tweaks: remove the now-unused meta flag from 'keystruct' + tweaks: remove two superfluous assignments, and rename a variable + tweaks: rename a function and its parameter, to be more fitting + tweaks: rename a function, to be a bit more expressive + tweaks: rename a function, to make it not contain the name of another + tweaks: rename a parameter and invert its logic, and correct a comment + tweaks: rename five variables, away from a single letter + tweaks: rename two functions, to make more sense + tweaks: rename two parameters, to be more general and to sound shorter + tweaks: rename two variables, to make more sense + tweaks: renumber some FAQ items in preparation for adding another + tweaks: reorder two symbols + tweaks: reshuffle some assignments for a return value + tweaks: reshuffle some declarations + tweaks: reshuffle some declarations, and expand a few variable names + tweaks: reshuffle some lines, to avoid tallying the menus when not needed + tweaks: reshuffle some lines, to group all ignored keystrokes together + tweaks: reshuffle three lines, to make the grouping tighther + tweaks: reshuffle two lines, to do the linking first, then the content + tweaks: reword two comments, and rewrap another + tweaks: rewrap a comment and a line, and reshuffle a fragment of code + tweaks: rewrap two lines, for consistency with similar lines + tweaks: rewrite the same file name into the lock file as the first time + tweaks: slightly condense a function by conflating case + tweaks: stop recognizing escape sequences for a key without meaning + tweaks: suggest a few more alternative key bindings and unbindings + tweaks: take just one shot at reading the lock file, and correct a type + tweaks: trim some excessive error checking and key-name frobbing + tweaks: tumble three conditions, for consistency in comparisons + tweaks: unabbreviate "argument" in the documentation + tweaks: use a simple subtraction instead of a function call + usage: improve the description of --restricted and --quickblank + +Brand Huntsman (2): + input: beep when invalid key is pressed at yesno prompt or in linter menu + input: recognize the start and stop sequences of a bracketed paste + + Changes between v4.6 and v4.7: ------------------------------ diff --git a/IMPROVEMENTS b/IMPROVEMENTS @@ -2,6 +2,10 @@ Improvements in GNU nano ======================== Since 4.0: + - Pasting from outside into nano suppresses auto-indentation. + - Such an external paste can be undone with a single M-U. + - Shift+Meta+letter key combos can be bound with 'bind Sh-M-letter ...'. + - A custom nanorc file may be specified with -f / --rcfile. - What the <Tab> key produces can be specified per syntax with 'tabgives'. - The ability to perform a search at startup with +/string or +?string. - Comment characters are copied when automatic hard-wrapping occurs. diff --git a/NEWS b/NEWS @@ -1,3 +1,16 @@ +2020.02.07 - GNU nano 4.8 "Jaška" +• When something is pasted into nano, auto-indentation is suppressed, + and the paste can be undone as a whole with a single M-U. +• When a lock file is encountered during startup, pressing ^C/Cancel + quits nano. (Pressing 'No' just skips the file and continues.) +• Shift+Meta+letter key combos can be bound with 'bind Sh-M-letter'. + Making any such binding dismisses the default behavior of ignoring + Shift for all Meta+letter keystrokes. +• The configuration option --with-slang (to be avoided when possible) + can now be used only together with --enable-tiny. +• A custom nanorc file can be specified on the command line, with + -f filename or --rcfile=filename. + 2019.12.23 - GNU nano 4.7 "Havikskruid" • A <Tab> will indent a marked region only when mark and cursor are on different lines. 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], [4.7], [nano-devel@gnu.org], [nano]) +AC_INIT([GNU nano], [4.8], [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 @@ -89,7 +89,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>4.7</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.8</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 4.7" "December 2019" +.TH NANO 1 "version 4.8" "February 2020" .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 4.7 -@set UPDATED December 2019 +@set VERSION 4.8 +@set UPDATED February 2020 @dircategory Editors @direntry @@ -23,7 +23,7 @@ @titlepage @title GNU @command{nano} @subtitle a small and friendly text editor -@subtitle version 4.7 +@subtitle version 4.8 @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 4.7. +This manual documents the GNU @command{nano} editor, version 4.8. @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 4.7" "December 2019" +.TH NANORC 5 "version 4.8" "February 2020" .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 4.7" "December 2019" +.TH RNANO 1 "version 4.8" "February 2020" .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="4.7" +VERSION="4.8" ./configure -C --enable-tiny && make && ./configure -C &&