[ANNOUNCE] nano-4.6 is released
Benno Schulenberg <[email protected]> Fri, 29 Nov 2019 11:52:24 +0100
| Newsgroups | gmane.editors.nano.announce |
|---|---|
| Message-ID | <88116fff-b6c1-751b-1e26-c2bf48b3d81d__30186.4083319501$1575027470$gmane$org@telfort.nl> |
This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--===============0966243882061133709==
Content-Type: multipart/signed; micalg=pgp-sha512;
protocol="application/pgp-signature";
boundary="jE6CGzEm7q1xNB87yWvWMli3CfhmazcRK"
This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--jE6CGzEm7q1xNB87yWvWMli3CfhmazcRK
Content-Type: multipart/mixed; boundary="jFAPz5HCo4VMhdO4lRUDZsebiC7RNfVMg"
--jFAPz5HCo4VMhdO4lRUDZsebiC7RNfVMg
Content-Type: text/plain; charset=utf-8
Content-Language: en-US
Content-Transfer-Encoding: quoted-printable
2019.11.29 - GNU nano 4.6 "And don't you eat that yellow snow"
=E2=80=A2 The 'formatter' command has returned, bound by default to M-F.
It allows running a syntax-specific command on the contents of
the buffer.
=E2=80=A2 ^T will try to run 'hunspell' before 'spell', because it checks=
spellling for the locale's language and understands UTF-8.
=E2=80=A2 Multiple errors or warnings on startup will no longer slow nano=
down but will be indicated on the status bar with trailing dots.
GNU nano is a simple and easy-to-use editor for on the terminal.
https://nano-editor.org/
https://nano-editor.org/manual.html
A concise overview of nano's shortcut keystrokes:
https://nano-editor.org/cheatsheet.html
The tarball and its signature are here:
https://nano-editor.org/dist/latest/nano-4.6.tar.xz
https://nano-editor.org/dist/latest/nano-4.6.tar.xz.asc
Specific bugs that were addressed in this release:
https://savannah.gnu.org/bugs/?55365 (restore 'formatter' command [re=
quest])
https://savannah.gnu.org/bugs/?56524 (unneeded pause on history errors=
)
https://savannah.gnu.org/bugs/?56991 (resizing could misdisplay the te=
xt)
https://savannah.gnu.org/bugs/?56995 (could not rebind 'exit' in help)=
https://savannah.gnu.org/bugs/?56997 ('extendsyntax' failed for 'heade=
r')
https://savannah.gnu.org/bugs/?57015 (untrue report of "Modified")
https://savannah.gnu.org/bugs/?57039 (some undos could needlessly scro=
ll)
https://savannah.gnu.org/bugs/?57048 (opening unwritable files was slo=
w)
https://savannah.gnu.org/bugs/?57066 (puzzling error message upon prep=
end)
https://savannah.gnu.org/bugs/?57116 (some linter error message wasn't=
red)
https://savannah.gnu.org/bugs/?57280 (menu 'all' did not include brows=
er)
https://savannah.gnu.org/bugs/?57295 (buffer text was not reshown afte=
r help)
https://savannah.gnu.org/bugs/?57296 ('spell' is not always installabl=
e)
https://savannah.gnu.org/bugs/?57302 (^/ could not be rebound)
Changes between v4.5 and v4.6:
------------------------------
Jeroen Roovers (1):
syntax: gentoo: highlight the BDEPEND variable as well
Benno Schulenberg (130):
bindings: allow to rebind ^/, even though it is synonymous with ^_
bindings: don't hard-bind ^H in the help viewer or the file browser=
bindings: the 'all' keyword should encompass the browser menu too
bindings: the 'all' keyword should include the browser menu always
build: fix compilation for --enable-tiny --enable-histories
build: fix compilation when configured with --disable-color
build: slightly speed up the compilation of the tiny version
bump version numbers and add a news item for the 4.6 release
chars: add a faster version of the character-parsing function
commands: rename 'fixer' to 'formatter', to be less misleading
cutting: do nothing when trying to chop a word leftward at start of=
file
display: do refresh the edit window when exiting from the help view=
er
docs: add a note saying that rebinding ^M or ^I is not advisable
docs: add the M-F and M-N keystrokes to the cheatsheet
docs: adjust the compilation instructions to two-digit version numb=
ers
docs: correct the description of the 'spell' menu
docs: document the 'fixer' command, a per-syntax content arranger
docs: mention that color rules are applied in the order they are li=
sted
docs: mention that 'hunspell' is now the first default spelling pro=
gram
docs: mention that the 'nopauses' option is obsolete
docs: remove some excessive detail from the sample nanorc file
docs: remove the note about the formatter having been removed
feedback: say it when spell check or manipulation did not change an=
ything
files: distinguish between read error and write error when prependi=
ng
files: don't mention the name of the temp file when reading goes wr=
ong
files: when opening a file for copying, it should NOT be created
formatter: accept the formatted result also upon a nonzero exit sta=
tus
formatter: don't let output from the program pollute the screen
gnulib: update to its current upstream state
history: don't wait when there is something wrong with the history =
files
linter: report it as an error when running the linting program fail=
s
po: update translations and regenerate POT file and PO files
rcfile: allow binding also F17...F24
rcfile: process extensions to file-matching commands straightaway
restored feature: a per-syntax 'fixer' command that processes the b=
uffer
softwrap: when switching to another buffer, re-align the starting c=
olumn
speller: prefer 'hunspell' over 'spell', because it can handle UTF-=
8
speller: when 'spell' is not found, try running 'hunspell -l' inste=
ad
statusbar: show only the first error message, with dots to indicate=
more
syntax: c: recognize some C++ header files by their Emacs modeline
syntax: default: don't colorize stuff between two pairs of brackets=
syntax: html: add a formatter command, making use of 'tidy'
syntax: html: colorize only full attributes, and colorize strings l=
ater
syntax: javascript: colorize also special values 'null' and 'undefi=
ned'
syntax: javascript: colorize the boolean values 'true' and 'false' =
too
syntax: nanorc: colorize all arguments of 'fixer' and 'linter' as v=
alid
syntax: nanorc: colorize in bright red everything that is invalid
syntax: nanorc: colorize only lowercase keywords as valid
syntax: nanorc: colorize the 'fixer' command as valid
syntax: ruby: colorize also lowercase global/instance variables
syntaxes: put the 'linter' and 'formatter' commands on a separate l=
ine
tweaks: add a helper function without the ubiquitous NULL argument
tweaks: add a local variable, for clarity, to not preuse another on=
e
tweaks: add some "fall-through" comments, and reshuffle some breaks=
tweaks: add two translator hints
tweaks: adjust the indentation after the previous change
tweaks: adjust the indentation after the previous change
tweaks: adjust the indentation after the previous change, and anoth=
er
tweaks: adjust two comments, to better fit the actual functions
tweaks: avoid setting and resetting a variable when there is no nee=
d
tweaks: avoid three unneeded calls of umask() in the normal case
tweaks: baptize the release
tweaks: be explicit about which program complained
tweaks: check the return value of copy_file() also after its other =
uses
tweaks: close the unused reading ends of two more output pipes
tweaks: condense a fragment of code by making use of a helper funct=
ion
tweaks: condense or improve some comments
tweaks: condense two comments, and rename two parameters
tweaks: condense two comments, and rewrap a line
tweaks: correct a comment, and retype a variable
tweaks: die on an impossible condition -- to be removed later
tweaks: don't do in the parent something that only the child needs
tweaks: don't wrap calls of statusline() that slightly overshoot 80=
cols
tweaks: drop the unneeded closing of descriptors when exiting anywa=
y
tweaks: elide a duplicate opening of the existing file when prepend=
ing
tweaks: elide a function call for the plain ASCII case
tweaks: elide another two calls of umask(), and rename two variable=
s
tweaks: elide an unneeded and leaky function
tweaks: elide an unneeded check when making a backup
tweaks: elide a variable, and add a condition to elide an assignmen=
t
tweaks: elide a variable that is the same as another
tweaks: exclude two fragments of code from the tiny version
tweaks: fuse two regexes into one
tweaks: group the closing of descriptors together, for compactness
tweaks: group the closing of two descriptors, and reword two commen=
ts
tweaks: harmonize a message with another
tweaks: improve some comments, and trim some repetitive ones
tweaks: make a function do a check so its calls don't need to
tweaks: mark two strings for translation
tweaks: move a call of umask() closer to where it is relevant
tweaks: move two functions to after the one that they make use of
tweaks: normalize the indentation after the previous change
tweaks: order two functions more sensibly
tweaks: pass an empty string as an answer instead of a NULL pointer=
tweaks: pass an empty string for copying instead of a non-existent =
one
tweaks: pass any special undo/redo messages to the add_undo() funct=
ion
tweaks: remove a pointless updating of the title bar
tweaks: remove a redundant check for an existing emergency file
tweaks: remove the superfluous closing of a file descriptor
tweaks: remove two pointless re-inclusion guards
tweaks: remove two superfluous conditions when prepending
tweaks: rename a function and add a parameter, so it becomes more g=
eneral
tweaks: rename a function, and elide a parameter that is always NUL=
L
tweaks: rename a function and elide its first parameter
tweaks: rename a local variable, to not shadow another
tweaks: rename a variable, to be a bit more fitting
tweaks: rename a variable, to be distinct and visible
tweaks: rename three variables, and reshuffle some lines
tweaks: rename three variables, to be consistent with other linestr=
ucts
tweaks: rename three variables, to be more descriptive
tweaks: rename three variables, to match others elsewhere
tweaks: rename two parameters, for contrast and to match others
tweaks: rename two parameters plus a variable, to match others
tweaks: rename two variables, and add a third, for more contrast
tweaks: reshuffle a few declarations, and reduce the scope of one
tweaks: reshuffle a fragment of code into two alternatives
tweaks: reshuffle an 'if' to avoid a negation, and improve a commen=
t
tweaks: reshuffle some declarations, and rename a variable
tweaks: reword an undo/redo string that was overlooked during the r=
ename
tweaks: silence a warning when configured with --enable-tiny
tweaks: simplify the opening of files when prepending
tweaks: slightly reword some fragments in the manual's rebinding se=
ction
tweaks: use a better variable name for the argument of an option
tweaks: use a literal NULL instead of a variable that is NULL
tweaks: use a simpler positive/negative check for after copy_file()=
tweaks: use a string-copy function that checks for out-of-memory
tweaks: use the given string instead of the found match, for clarit=
y
undo: don't try to copy a string that doesn't exist
undo: put the cursor back on the original row for a full-buffer ope=
ration
utils: don't accept NULL for the string to be copied
--=20
Benno
--jFAPz5HCo4VMhdO4lRUDZsebiC7RNfVMg--
--jE6CGzEm7q1xNB87yWvWMli3CfhmazcRK
Content-Type: application/pgp-signature; name="signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="signature.asc"
-----BEGIN PGP SIGNATURE-----
iQIzBAEBCgAdFiEEv9AJBh5TUFKtDfIVDSjU0qCs6IQFAl3g+HEACgkQDSjU0qCs
6ISIyA//QHe91cci5elQ+xaq9cFpt3k2uMsw8Ywo6gXIoVPx7A79XnWrqRIgKnKa
BGtmKGroMkEOTm+ea/AtY6nZlEsUn1HR0NLLits2GZqVOGFJYDkBlNiFEwAHZpRJ
iC0koenJznNqXV6aayrP5Zk0ca4autxvNBEGVrGATm8Q7Vmi/yR9vc9I7hU2SZsS
WnUWiaYfO9dytH2iD+QhuS+pfqVoJFFCw+mTucUAtS2K4f8LkDP6uFcwI98mdef5
tSVuPcl5sYhXq90VKz6zhRCDCTNUNFW6kmwX3qcbnzNlCR+6XywcplGfF2IaV6Kg
NuOaxBFrd1lml/0xqmgfS7m8TqjDIgluTCh80w2OmT49ygmPPteDl2jXUe8RIZ6e
zs2YygsjNwe0rPpsEE08WrYOzXL64kclgOtKzHcxIi6O9n4yeIK8VTYIoiVMjwC1
0VceQ8rxTcUD1jCBgGLfrPKt9yJbcIuru8cwUwqp5hZkLEICPS5Hq/XitexsWSXJ
WkwQwEh5qHOt64OBTrQFVqMoV5Mdg9AOIPsKXx2hEUP5tXpESoXZ2yleTcwsLBv+
j4hk6pZjepP9T+YC+Tq+BuX3m4+B2HIya75IOkSu9GXjAoJxjH2uR2FePFlt54PB
JjMammkQ1Eczitz+dWsIHLCNJVjPT8rCm6ioUFfAgVoR7O9ogZo=
=pZA9
-----END PGP SIGNATURE-----
--jE6CGzEm7q1xNB87yWvWMli3CfhmazcRK--
--===============0966243882061133709==
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: base64
Content-Disposition: inline
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW5mby1uYW5v
IG1haWxpbmcgbGlzdApJbmZvLW5hbm9AZ251Lm9yZwpodHRwczovL2xpc3RzLmdudS5vcmcvbWFp
bG1hbi9saXN0aW5mby9pbmZvLW5hbm8K
--===============0966243882061133709==--