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.

GNU nano is a simple and easy-to-use editor for on the terminal.

A concise overview of nano's shortcut keystrokes:

The tarball and its signature are here:

Running the attached little script will show all colors and their codes.

Specific issues that were addressed in this release:
  https://savannah.gnu.org/bugs/?56445  (add support for more colors [wish])
  https://savannah.gnu.org/bugs/?61243  (clear filename when appending [wish])
  https://savannah.gnu.org/bugs/?61308  (deleted answer was resurrected)
  https://savannah.gnu.org/bugs/?61316  (history could start in the middle)

  https://savannah.gnu.org/bugs/?61317  (with --preserve, ^S was still shown)
  https://savannah.gnu.org/bugs/?61331  (small memory leak for double options)
  https://savannah.gnu.org/bugs/?61334  (memory leak when dots on minibar)
  https://savannah.gnu.org/bugs/?61344  (clunky table of contents in manual)

  https://savannah.gnu.org/bugs/?61347  (email syntax miscolored final esses)
  https://savannah.gnu.org/bugs/?61353  (pasting words should hard-wrap [wish])
  https://savannah.gnu.org/bugs/?61361  (miscolored Rust code between strings)
  https://savannah.gnu.org/bugs/?61367  (M-D word count mismatched Ctrl+Right)

  https://savannah.gnu.org/bugs/?61372  (unhelpful "Suspension not enabled")
  https://savannah.gnu.org/bugs/?61381  (syntax for SQL contained aliens)
  https://savannah.gnu.org/bugs/?61387  (mixed quotes could miscolor things)
  https://savannah.gnu.org/bugs/?61389  ("this\" was colored as valid string)

  https://savannah.gnu.org/bugs/?61391  (yaml.nanorc was missing in tarball)
  https://savannah.gnu.org/bugs/?61397  (toggling help lost focus)
  https://savannah.gnu.org/bugs/?61398  (toggling help lost the spotlight)
  https://savannah.gnu.org/bugs/?61419  (some unbind was colored as invalid)

  https://savannah.gnu.org/bugs/?61420  (some binds were colored as invalid)
  https://savannah.gnu.org/bugs/?61438  (a full justification could segfault)
  https://savannah.gnu.org/bugs/?61441  (--enable-linenumbers did not give M-N)
  https://savannah.gnu.org/bugs/?61445  (M-C blanked screen on tiny terminal)

  https://savannah.gnu.org/bugs/?61458  (--noread disallowed inserting files)
  https://savannah.gnu.org/bugs/?61460  (could not spell check in tiny version)
  https://savannah.gnu.org/bugs/?61487  ('\xčć' was colored as valid hex)
  https://savannah.gnu.org/bugs/?61496  (misleading feedback from M-O)

  https://savannah.gnu.org/bugs/?61509  (--minibar gave no feedback for insert)
  https://savannah.gnu.org/bugs/?61573  (rebinding ^Z failed on Linux console)
  https://savannah.gnu.org/bugs/?61574  (poor feedback for Ctrl+Shift+Fx)

Changes between v5.9 and v6.0:

Brad Town (2):
      rcfile: support #rgb format for specifying colors in 256-color terminals
      docs: add a description of the hexadecimal #rgb color specification

Benno Schulenberg (193):
      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
      po: update translations and regenerate POT file and PO files
      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


#!/usr/bin/env python3

# Print the 216 color codes, each in its corresponding color.

values = [ 0, 4, 8, 0xa, 0xc, 0xe ]

thecodes = [ "#%1x%1x%1x" % (r, g, b)
             for r in values
             for g in values
             for b in values ]

for (index, code) in enumerate(thecodes, start=16):
    sequence = ("\033[38;5;%sm%s\033[0m") % (index, code)
    separator = '\n' if index % 6 == 3 else ' '
    print (sequence, separator, end='')

Attachment: OpenPGP_signature
Description: OpenPGP digital signature

If you have a working or partly working program that you'd like
to offer to the GNU project as a GNU package,
see https://www.gnu.org/help/evaluation.html.

Reply via email to