nano

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

commit 972be2df040af3e0fa32c9aec60ffaae0f6675fa
parent 374cb6a7f859c0f0523a0a5c360a5e998709f809
Author: Benno Schulenberg <bensberg@telfort.nl>
Date:   Mon, 14 Nov 2022 11:44:28 +0100

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

Diffstat:
MChangeLog | 100+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
MIMPROVEMENTS | 5+++++
MNEWS | 12++++++++++++
MREADME | 2+-
Mconfigure.ac | 2+-
Mdoc/faq.html | 2+-
Mdoc/nano.1 | 2+-
Mdoc/nano.texi | 10+++++-----
Mdoc/nanorc.5 | 2+-
Mdoc/rnano.1 | 2+-
Mroll-a-release.sh | 4++--
Msyntax/default.nanorc | 4++--
12 files changed, 132 insertions(+), 15 deletions(-)

diff --git a/ChangeLog b/ChangeLog @@ -1,3 +1,103 @@ +Changes between v6.4 and v7.0: +------------------------------ + +Benno Schulenberg (94): + build: add options --disable-formatter and --disable-linter to configure + build: exclude some pieces that are not needed with --disable-nanorc + build: exclude two unneeded functions correctly from the tiny version + build: fix compilation when configured with --enable-tiny + bump version numbers and add a news item for the 7.0 release + completion: search through all open buffers for possible completions + docs: clarify the distinction between binding a function and "{function}" + docs: describe --disable-formatter and --disable-linter configure options + docs: explain how to include a double quote plus space in a nanorc regex + docs: improve the legibility of an itemized list + docs: mention in the man page how M-V can insert any Unicode code point + docs: mention that string binds may contain function names between braces + docs: replace control codes in the examples with {command} cartouches + docs: suggest a key binding for snipping trailing blanks + execute: show "Cancelled" instead of "Error" when the user hits ^C + extra: use the whole terminal for the crawl, and quicken it a bit + feedback: suppress undo/redo messages when option --zero is in effect + files: before sending data to an external command, decode LF back to NUL + files: improve the error handling when executing an external command + filtering: terminate also the sender process when the user hits ^C + filtering: when returning to a line number, ensure it is within range + gnulib: update to its current upstream state + goto: don't center the current line when the user specified a column only + help: don't show the New-Buffer toggle when in view mode + help: move the M-Del item up, so that M-PgUp and M-PgDn are paired + help: prioritize the unshifted Meta keystrokes for buffer switching + input: allocate a small keystroke buffer, and never free it + input: allocate two small character buffers too, and never free them + input: give up when the capacity of the keystroke buffer overflows + input: interpret commands of the form {functionname} inside string binds + memory: avoid a leak when a string bind specifies an unknown menu + prompt: allow rebinding also ^N, ^Q, and ^Y at the yes-no prompt + prompt: ingest queued characters before handling any subsequent function + prompt: prevent execution of inadmissible functions in view mode + prompt: return FALSE for non-editing functions also in the tiny version + prompt: toggle the help lines only for the 'nohelp' toggle + search: skip a match on the magic line, as it is a just convenience line + startup: ensure that +/string centers the match also with --linenumbers + startup: for +/string, center the found occurrence when possible + startup: quit when standard input is not a TTY (after handling arguments) + startup: report an empty search string also when there is a modifier + syntax: nanorc: colorize valid function names plus surrounding braces + tweaks: add parentheses for consistency, and reshuffle for conciseness + tweaks: allow the linter to be used in view mode, as it makes no changes + tweaks: attribute some of the features that were added in the last years + tweaks: avoid iterating over the same string twice in a row + tweaks: avoid sometimes calling a function three times in a row + tweaks: check the multiline regexes only for Delete and Backspace + tweaks: condense a comment, add two small ones, and reshuffle a line + tweaks: delete a flag that is no longer used + tweaks: determine in another way whether a shortcut is okay in view mode + tweaks: discard a bracketed paste in the browser more efficiently + tweaks: don't use a pointer when the value itself is all that is needed + tweaks: drop an unneeded check for permissibility of prompt shortcuts + tweaks: drop a parameter that is no longer used + tweaks: drop shunting of flags by calling the needed function directly + tweaks: elide a function that does not need to be a separate function + tweaks: elide an assignment by iterating with the target variable + tweaks: elide an intermediary variable that is no longer needed + tweaks: elide an unused parameter + tweaks: elide an unused return value + tweaks: elide a parameter by moving the general case one level up + tweaks: elide a variable, rename another, and reshuffle an assignment + tweaks: fold two cases together, because they basically do the same + tweaks: group the special keycodes for implanted strings together + tweaks: improve two comments, and exclude two unneeded prototypes + tweaks: make the crawl use the whole screen also in the tiny version + tweaks: make two error messages more succinct and easier to translate + tweaks: move the arrays of menu names and symbols to where they are used + tweaks: move the --magic option up, so that --zero comes last + tweaks: move to a given line number more efficiently + tweaks: move two checks plus corresponding calls to a better place + tweaks: normalize the indentation after the previous change + tweaks: reduce four variations of a message to a single common form + tweaks: rename a macro for clarity, and normalize some indentation + tweaks: rename a variable, away from an abbreviation + tweaks: rename two record elements and three parameters, for clarity + tweaks: replace sizeof(char) with 1, as that is assumed anyway + tweaks: reshuffle a declaration, and correct the wording of a comment + tweaks: reshuffle a line, to group things better + tweaks: reshuffle some code and drop some comments, for conciseness + tweaks: reshuffle some code, to not determine a shortcut twice + tweaks: reshuffle some lines, to be more readable instead of compact + tweaks: reshuffle two lines, for conciseness and in preparation + tweaks: reword and/or condense four comments + tweaks: rewrap line, improve wording, and correct typo in old news item + tweaks: rewrap some lines, drop a redundant call, and reshuffle a line + tweaks: simplify a function now that a Unicode code can be typed quicker + tweaks: simplify a pasting routine, modelling it after the injection one + tweaks: use an auxiliary variable to avoid dereferences of 'shortcut' + undo: make sure the current line is defined before it is referenced + verbatim: allow the user to finish Unicode input with <Enter> or <Space> + verbatim: do not overwrite the status bar when the code is invalid + verbatim: don't show dots during Unicode input, as they give wrong idea + + Changes between v6.3 and v6.4: ------------------------------ diff --git a/IMPROVEMENTS b/IMPROVEMENTS @@ -1,6 +1,11 @@ Improvements in GNU nano ======================== +Since 7.0: + - String binds may contain bindable function names between braces. + - Word completion looks for candidates in all open buffers. + - Unicode codes can be entered without leading zeroes. + Since 6.0: - Option --zero hides the interface and uses the whole terminal for editing. - Colors can be given also in #rgb hexadecimal, to select the nearest color diff --git a/NEWS b/NEWS @@ -1,3 +1,15 @@ +2022.11.15 - GNU nano 7.0 "Una existencia simple bajo el sol" +• String binds may contain bindable function names between braces. + For example, to move the current line down to after the next one: + bind ^D "{cut}{down}{paste}{up}" main. Of course, braced function + names may be mixed with literal text. If an existing string bind + contains a literal {, replace it with {{}. +• Unicode codes can be entered (via M-V) without leading zeroes, + by finishing short codes with <Space> or <Enter>. +• Word completion (^]) looks for candidates in all open buffers. +• No regular expression matches the final empty line any more. + + 2022.08.02 - GNU nano 6.4 "Regentag Dunkelbunt Hundertwasser" • The file browser does not crash when moving up to the root folder. • Softwrapping very long lines is done more efficiently. diff --git a/README b/README @@ -15,7 +15,7 @@ Appearance In rough ASCII graphics, this is what nano's screen looks like: ____________________________________________________________________ - | GNU nano 6.4 filename Modified | + | GNU nano 7.0 filename Modified | -------------------------------------------------------------------- | This is the text window, displaying the contents of a 'buffer', | | the contents of the file you are editing. | 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], [6.4], [nano-devel@gnu.org], [nano]) +AC_INIT([GNU nano], [7.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 @@ -92,7 +92,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>6.4</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>7.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 6.4" "August 2022" +.TH NANO 1 "version 7.0" "November 2022" .SH NAME nano \- Nano's ANOther editor, inspired by Pico diff --git a/doc/nano.texi b/doc/nano.texi @@ -12,9 +12,9 @@ The complete manual for the GNU nano text editor. @end documentdescription @smallbook -@set EDITION 0.6 -@set VERSION 6.4 -@set UPDATED August 2022 +@set EDITION 0.7 +@set VERSION 7.0 +@set UPDATED November 2022 @dircategory Editors @direntry @@ -29,7 +29,7 @@ The complete manual for the GNU nano text editor. @title GNU @command{nano} @subtitle a small and friendly text editor -@subtitle version 6.4 +@subtitle version 7.0 @author Chris Allegretta @@ -79,7 +79,7 @@ For suggesting improvements: @email{nano-devel@@gnu.org} @node Top @top -This manual documents GNU @command{nano}, version 6.4. +This manual documents GNU @command{nano}, version 7.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 6.4" "August 2022" +.TH NANORC 5 "version 7.0" "November 2022" .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 6.4" "August 2022" +.TH RNANO 1 "version 7.0" "November 2022" .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="6.4" +VERSION="7.0" ./configure -C --enable-tiny && make && ./configure -C && @@ -20,7 +20,7 @@ gpg -a -b nano-$VERSION.tar.xz && gpg --verify nano-$VERSION.tar.gz.asc && gpg --verify nano-$VERSION.tar.xz.asc && -git tag -u A0ACE884 -a v$VERSION -m "the nano $VERSION release" && +git tag -u B8E1961F -a v$VERSION -m "the nano $VERSION release" && make pdf && rm -rf doc/nano.t2p && scp doc/nano.pdf bens@wh0rd.org:nano.pdf && diff --git a/syntax/default.nanorc b/syntax/default.nanorc @@ -8,8 +8,8 @@ comment "#" color ,red " + +" # Nano's release motto, then name plus version. -color italic,lime "\<[Nn]ano [1-6]\.[0-9][-.[:alnum:]]* "[^"]+"" -color brightred "\<(GNU )?[Nn]ano [1-6]\.[0-9][-.[:alnum:]]*\>" +color italic,lime "\<[Nn]ano [1-7]\.[0-9][-.[:alnum:]]* "[^"]+"" +color brightred "\<(GNU )?[Nn]ano [1-7]\.[0-9][-.[:alnum:]]*\>" # Dates color latte "\<[12][0-9]{3}\.(0[1-9]|1[012])\.(0[1-9]|[12][0-9]|3[01])\>"