nano

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

commit 33ba6be91f6777cff0dc513764316ee813f3570e
parent 9c1c6c18ae2de1699fcdbf39c486973b86b5947f
Author: Benno Schulenberg <bensberg@telfort.nl>
Date:   Tue, 14 Dec 2021 11:34:11 +0100

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

Diffstat:
MChangeLog | 202+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
MIMPROVEMENTS | 6++++++
MNEWS | 23+++++++++++++++++++++++
MREADME | 2+-
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+-
11 files changed, 242 insertions(+), 11 deletions(-)

diff --git a/ChangeLog b/ChangeLog @@ -1,3 +1,205 @@ +Changes between v5.9 and v6.0: +------------------------------ + +Benno Schulenberg (192): + bindings: allow rebinding ^Z also on a Linux console (a VT) + bindings: allow toggling line numbers (when enabled) also in tiny version + bindings: let ^T in the tiny version invoke spell checker (when included) + browser: with --zero, do not use the bottom row for displaying filenames + build: fix compilation when configured with --disable-color + build: fix compilation when configured with --disable-nanorc + build: fix compilation when configured with --enable-tiny + build: fix compilation with --enable-tiny --enable-nanorc + build: fix compilation with --enable-tiny --enable-wrapping + build: include the YAML syntax file among the distributed files + bump version numbers and add a news item for the 6.0 release + display: clear the status bar early enough, so that --zero can show text + display: do not wipe the status bar when --zero or --minibar is active + display: ensure feedback will be cleared also on a one-row terminal + display: make sure there are at least as many text lines as help lines + display: move some code for overwriting verbatim feedback with --zero + display: redraw the screen in tiny version upon resuming from suspension + display: with --zero, redraw the bottom row instead of wiping a message + docs: add a hint about making ^L do just 'refresh' to the sample nanorc + docs: add a meta description for the HTML rendering of the manual + docs: add a suggested rebind and three suggested unbinds to the sample rc + docs: avoid large Table of Contents at top of HTML version of manual + docs: clarify that --enable options do not fully counteract --enable-tiny + docs: correct the description of the layout -- four areas, not five + docs: document the effect of --quickblank together with --zero/--minibar + docs: explain the effect of --zero / -0 / 'set zero' + docs: explain what it means when --rawsequences is needed + docs: give more examples of things that --enable-tiny excludes + docs: improve the title of the manual, away from the bare "nano" + docs: list the new color names, from 'rosy' to 'crimson' + docs: mark options -z, --suspendable, and 'set suspendable' as obsolete + docs: mention "grey" also at the other place where color names are listed + docs: mention M-Z (for toggling the interface) among the Feature Toggles + docs: mention that --zero and 'set zero' hide also the help lines + docs: move the chapter about editor basics into third position + docs: prevent a black square in the PDF after the long synopsis line + docs: reshuffle a GNU marker, to make the title clearer in search engines + docs: reword several of the descriptions in the chapter on building nano + docs: reword the beginning of the chapter on nanorc files + docs: say thanks to the Indonesian translator + feedback: give a more accurate message when the help lines won't appear + feedback: refuse the --constantshow toggle (M-C) on a one-row terminal + feedback: report an unbindable function key as an "Unknown sequence" + feedback: report the number of inserted lines also with --zero or --mini + feedback: show a relevant message for M-O when the syntax has 'tabgives' + feedback: suppress chatty messages when --zero is active + feedback: to have a status bar, suppress --zero while in the help viewer + feedback: when reporting an unbound function key, mention its number + feedback: when the user types ^Z, say they can suspend nano with ^T^Z + feedback: with --mini or --zero, suppress number of lines for new buffer + feedback: with --mini/--zero, suppress message when toggling whitespace + feedback: with --zero, drop a message in a short while, as with --minibar + files: allow inserting also when started with the --noread option + files: clear original filename when the user toggles Append or Prepend + gnulib: update to its current upstream state + help: do not show ^S when --preserve is in effect + help: ensure there is a blank line between title bar and start of text + help: group the now lone mouse toggle with the "behavioral" ones + help: remove an unneeded restriction for small terminals + help: skip the leading blank line when the terminal is very flat + help: when done, always redraw the "bottom bars", also with --zero + history: process file faster by not filtering out hypothetical duplicates + input: ensure that no more bytes are consumed than are available + justify: correctly determine whether top-of-buffer has been reached + memory: avoid a tiny leak when an option with an argument is given twice + memory: avoid leaking the filename when dottifying it on the minibar + new feature: option --zero for an interface without bars + options: make --zero imply --nohelp, and 'set zero' imply 'set nohelp' + pasting: when less than a line is pasted, allow automatic hard-wrapping + prompt: avoid resetting the history pointer when the search is cancelled + prompt: begin at bottom of history list when at secondary prompt + prompt: keep a clear answer clear also after an excursion into history + rcfile: recognize fourteen new color names, mostly for subdued shades + rcfile: remove the deprecated 'cutwordleft' and 'cutwordright' keywords + replacing: keep centering the occurrence, also after toggling help lines + replacing: keep the spotlighted occurrence in view, also with --zero + replacing: keep the spotlighting, also after toggling the help lines + search: with --zero, do not obscure an occurrence on the bottom row + search: with --zero, drop a message at the same time as the spotlight + statusbar: count words in the way that matches how Ctrl+Right moves + statusbar: overwrite a message also when using --constant with --zero + suspension: enable ^Z by default -- ignore -z option and drop M-Z toggle + suspension: leave ^Z unbound by default -- just ^T^Z will suspend nano + syntax: debian: remove file -- Debian itself will have to handle it + syntax: default: colorize comments as one of the last things + syntax: default: colorize dates, URLs, and nano's release motto + syntax: email: use a character class, as \s does not work inside brackets + syntax: gentoo: remove file -- Gentoo itself will have to handle it + syntax: nanorc: add 'execute' menu for unbind, and drop a bad constraint + syntax: nanorc: avoid colorizing #rgb codes as if they were comments + syntax: nanorc: colorize a trailing comment when it begins with non-hex + syntax: nanorc: colorize each of the fourteen new color names as valid + syntax: nanorc: improve the file-matching regex + syntax: nanorc: paint arguments of 'include' and 'extendsyntax' specially + syntax: nanorc: require whitespace before the start= and end= keywords + syntax: python: colorize backslash escapes, such as \n and \xef + syntax: ruby: colorize embedded documentation as a comment + syntax: rust: do not colorize as string the text between two strings + syntax: sql: add a few more missing keywords, like TRUE and FALSE + syntax: sql: add more missing keywords, like INNER and OUTER JOIN + syntax: sql: add some missing keywords, like ALL and ANY and OR + syntax: sql: add two missing data types -- xml and tsquery + syntax: sql: colorize as flow control only keywords that clearly are such + syntax: sql: colorize keywords regardless of case, and tweak the colors + syntax: sql: colorize only single-quoted things as strings + syntax: sql: colorize strings differently than types + syntax: sql: remove alien stuff -- it was copied mostly from ruby syntax + syntax: texinfo: be more precise in colorizing @commands + syntax: texinfo: colorize the special @-plus-punctuation commands too + syntaxes: avoid coloring "this\" as if it were a valid string + syntaxes: colorize hex more strictly by using character class [:xdigit:] + syntaxes: drop three redundant end-of-line anchors + syntaxes: undouble the backslash within bracket expressions + syntaxes: use one regex for coloring quoted strings, to avoid overlap + tabbing: also with --zero, stay one row away from the prompt bar + tweaks: add an auxiliary variable, to prepare for handling --zero + tweaks: add two spaces and two comments, and drop an internal check + tweaks: adjust two values -- help lines need at least 6 rows to be shown + tweaks: avoid a compiler warning with --enable-tiny --enable-linenumbers + tweaks: avoid redrawing the entire window when just a 'touch' will do + tweaks: condense the definitions of all the empty functions + tweaks: condense the regexes for Types in the SQL syntax + tweaks: don't redraw the help lines (if present), and normalize a brace + tweaks: drop a fragment of code that became functionless + tweaks: elevate two messages, so they get shown with --mini or --zero + tweaks: elide a variable that is confusing and has just one use case + tweaks: elide two functions that each were called just once + tweaks: elide two parameters, as they are now always the same + tweaks: exclude some hidden-interface code from the tiny version + tweaks: exclude some suspension code from the tiny version + tweaks: fix a parentheses mistake -- found by a warning from Clang + tweaks: fix a somewhat humorous typo + tweaks: fix typo, and improve description of 'set zero' in sample nanorc + tweaks: fold a special case into the general one + tweaks: fold some regexes together, and trim or improve some comments + tweaks: frob a couple of comments, and drop two, for conciseness + tweaks: improve a comment, and drop two cluttering compile conditions + tweaks: invert a condition, to get an early return instead of indentation + tweaks: just let do_wrap() set 'refresh_needed' instead of returning TRUE + tweaks: mark keystrokes consistently with @kbd in the manual + tweaks: move a translator hint to where xgettext will see it + tweaks: normalize whitespace, drop unneeded prototype, condense comment + tweaks: on one-row terminals, suppress the message for two toggles + tweaks: place the unsetting of a flag better, and rename a variable + tweaks: put three email addresses between the customary angled brackets + tweaks: reassign a copy of a string to a variable more economically + tweaks: reduce redundancy (--enable-color implies --enable-nanorc) + tweaks: remove redundant pair of parentheses, and swap two alternatives + tweaks: remove redundant parentheses, trim comments, fold some regexes + tweaks: remove two unneeded unsettings + tweaks: rename a function and its parameter, to be clearer + tweaks: rename a function, away from using an abbreviation + tweaks: rename a function, for some contrast and to get rid of a suffix + tweaks: rename a function, to describe better what it does nowadays + tweaks: rename a function, to make it make sense + tweaks: rename a variable, to be distinctive and less confusing + tweaks: rename a variable, to be easier to read and to make more sense + tweaks: rename five empty functions, to get rid of a meaningless suffix + tweaks: rename three functions, to better fit the general scheme + tweaks: rename three parameters, away from single letters + tweaks: rename two empty functions, to be more to the point + tweaks: rename two functions, to get rid of another senseless suffix + tweaks: rename two functions, to get rid of one more senseless suffix + tweaks: rename two functions, to get rid of the senseless suffix of one + tweaks: rename two more functions, to lose a senseless suffix + tweaks: rename two parameters and one variable, away from single letters + tweaks: rename two variables, away from abbreviations + tweaks: rename two variables, to fit with the names of similar ones + tweaks: replace a verbose condition with a simpler early return + tweaks: replace the obscure @* with the slightly clearer @sp + tweaks: replace two direct refreshes with two scheduled ones + tweaks: reshuffle a coloring rule, to have related ones together + tweaks: reshuffle a few lines, and rename a variable + tweaks: reshuffle a few lines, for Christmas and to group things better + tweaks: reshuffle a fragment of code to a better place + tweaks: reshuffle a line and adjust indentation after previous change + tweaks: reshuffle a line into its proper order, and improve two comments + tweaks: reshuffle some conditions, so that the ifs have similar formats + tweaks: reshuffle some conditions, to have more balanced lines + tweaks: reshuffle some lines, one for clarity, others for conciseness + tweaks: reshuffle the flag conversion into their order in the help text + tweaks: reshuffle two conditions, re-indent, and rewrap a line + tweaks: reword a paragraph, and use usual M- to depict Meta keystrokes + tweaks: rewrap an old news item, for distraction + tweaks: rewrap three old NEWS items, for esthetics, and fix a date + tweaks: shorten a comment, and drop some conditionalizing + tweaks: shorten the description of --zero in the manuals a bit + tweaks: shorten two comments, and fold two statements together + tweaks: swap two parts of specific regexes, for consistency with others + tweaks: untangle two case items, and shorten a message + tweaks: use a color closer to the rest of the string, to reduce contrast + tweaks: use a few fewer capitals, and drop an unneeded synonym + +Brad Town (2): + docs: add a description of the hexadecimal #rgb color specification + rcfile: support #rgb format for specifying colors in 256-color terminals + + Changes between v5.8 and v5.9: ------------------------------ diff --git a/IMPROVEMENTS b/IMPROVEMENTS @@ -1,6 +1,12 @@ Improvements in GNU nano ======================== +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 + from the 6x6x6 color-cube palette available on 256-color terminals. + - Fourteen new color names are available, from rosy to crimson. + Since 5.0: - A search briefly spotlights the found text, in black on yellow by default. - Option --minibar reduces the interface to a bottom bar with basic info. diff --git a/NEWS b/NEWS @@ -1,3 +1,26 @@ +2021.12.15 - GNU nano 6.0 "Humor heeft ook zijn leuke kanten" +• Option --zero hides the title bar, status bar and help lines, and + uses all rows of the terminal as editing area. The title bar and + status bar can be toggled with M-Z. +• Colors can now be specified also as three-digit hexadecimal numbers, + in the format #rgb. This picks from the 216 index colors (that most + terminals know) the color that is nearest to the given values. +• For users who dislike numbers, there are fourteen new color names: + rosy, beet, plum, sea, sky, slate, teal, sage, brown, ocher, sand, + tawny, brick, and crimson. +• Suspension is enabled by default, invokable with ^T^Z. The options + -z, --suspendable, and 'set suspendable' are obsolete and ignored. + (In case you want to be able to suspend nano with a single keystroke, + you can put 'bind ^Z suspend main' in your nanorc.) +• When automatic hard-wrapping is in effect, pasting just a few words + (without a line break) will now hard-wrap the line when needed. +• Toggling Append or Prepend clears the current filename. +• The word count as shown by M-D is now affected by option --wordbounds; + with it, nano counts words as 'wc' does; without it (the new default), + words are counted in a more human way: seeing punctuation as space. +• The YAML syntax file is now actually included in the tarball. + + 2021.10.06 - GNU nano 5.9 "El manicomio ha decidido: mañana sol!" • The extension of a filename is added to the name of a corresponding temporary file, so that spell checking a C file, for example, will 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 5.9 filename Modified | + | GNU nano 6.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], [5.9], [nano-devel@gnu.org], [nano]) +AC_INIT([GNU nano], [6.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>5.9</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>6.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 5.9" "October 2021" +.TH NANO 1 "version 6.0" "December 2021" .SH NAME nano \- Nano's ANOther editor, inspired by Pico diff --git a/doc/nano.texi b/doc/nano.texi @@ -13,8 +13,8 @@ The complete manual for the GNU nano text editor. @smallbook @set EDITION 0.6 -@set VERSION 5.9 -@set UPDATED October 2021 +@set VERSION 6.0 +@set UPDATED December 2021 @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 5.9 +@subtitle version 6.0 @author Chris Allegretta @@ -76,7 +76,7 @@ For suggesting improvements: @email{nano-devel@@gnu.org} @node Top @top -This manual documents GNU @command{nano}, version 5.9. +This manual documents GNU @command{nano}, version 6.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 5.9" "October 2021" +.TH NANORC 5 "version 6.0" "December 2021" .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 5.9" "October 2021" +.TH RNANO 1 "version 6.0" "December 2021" .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="5.9" +VERSION="6.0" ./configure -C --enable-tiny && make && ./configure -C &&