[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==--