diff --git a/ChangeLog b/ChangeLog index 0928bbec..60d664fd 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,238 @@ +Changes between v3.2 and v4.0: +------------------------------ + +Benno Schulenberg (190): + bindings: change the action of / 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 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 + 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 and + 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 and 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 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 index 96a7d7f9..0074fc6c 100644 --- 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 and obliterate marked text. - wipes next word and 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 index cb730a87..9becd9c5 100644 --- 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. +• and 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= draws a vertical bar at the given column. +• Option --fill= 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 index 5e73feaf..78923598 100644 --- 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 index 6ef71a5c..ee86c6f8 100644 --- a/doc/faq.html +++ b/doc/faq.html @@ -85,7 +85,7 @@

1.3. Why the name change from TIP?

On January 10, 2000, TIP was officially renamed to nano because of a namespace conflict with another program called 'tip'. The original 'tip' program "establishes a full duplex terminal connection to a remote host", 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).

1.4. What is the current version of nano?

-

The current version of nano should be 3.2. Of course, you should always check the nano homepage to see what the latest and greatest version is.

+

The current version of nano should be 4.0. Of course, you should always check the nano homepage to see what the latest and greatest version is.

1.5. I want to read the man page without having to download the program!

Jeez, demanding, aren't we? Okay, look here.


diff --git a/doc/nano.1 b/doc/nano.1 index 4a0a07b9..c35928a9 100644 --- a/doc/nano.1 +++ b/doc/nano.1 @@ -16,7 +16,7 @@ .\" Documentation License along with this program. If not, see .\" . .\" -.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 index 26dac6e5..fc719851 100644 --- 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 index 28cff25b..743db54e 100644 --- a/doc/nanorc.5 +++ b/doc/nanorc.5 @@ -16,7 +16,7 @@ .\" Documentation License along with this program. If not, see .\" . .\" -.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 index d4df7f71..70cc0485 100644 --- a/doc/rnano.1 +++ b/doc/rnano.1 @@ -16,7 +16,7 @@ .\" Documentation License along with this program. If not, see .\" . .\" -.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 index 8cb84358..5a966eb4 100755 --- 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 &&