Changes between v7.1 and v7.2:
------------------------------

Benno Schulenberg (11):
      bindings: let ^/ toggle between the 'search' and 'gotoline' menus
      bump version numbers and add a news item for the 7.2 release
      copyright: update the years for the FSF
      docs: give ^K and ^U some useful function in the alternative bindings
      docs: put the binding of ^Y after its unbinding, for it to be effective
      gnulib: update to its current upstream state
      input: disallow bracketed pastes when in view mode
      syntax: html: colorize specially the other two emphasizing tags too
      tweaks: avoid warnings when compiling with -Wpedantic
      tweaks: rewrap an old news item
      tweaks: separate a special thanks from the preceding ones


Changes between v7.0 and v7.1:
------------------------------

Benno Schulenberg (8):
      build: fix compilation when configured with --disable-comment
      bump version numbers and add a news item for the 7.1 release
      copyright: update the last year for significantly changed files
      docs: say thanks to the Albanian translator
      rcfile: report an error when an included file does not exist
      text: upon Enter, eat only lefthand blanks, not any other characters
      tweaks: avoid passing NULL to access()
      tweaks: wrap overlong lines in the Tcl syntax, to make them manageable


Changes between v6.4 and v7.0:
------------------------------

Benno Schulenberg (94):
      build: add options --disable-formatter and --disable-linter to configure
      build: exclude some pieces that are not needed with --disable-nanorc
      build: exclude two unneeded functions correctly from the tiny version
      build: fix compilation when configured with --enable-tiny
      bump version numbers and add a news item for the 7.0 release
      completion: search through all open buffers for possible completions
      docs: clarify the distinction between binding a function and "{function}"
      docs: describe --disable-formatter and --disable-linter configure options
      docs: explain how to include a double quote plus space in a nanorc regex
      docs: improve the legibility of an itemized list
      docs: mention in the man page how M-V can insert any Unicode code point
      docs: mention that string binds may contain function names between braces
      docs: replace control codes in the examples with {command} cartouches
      docs: suggest a key binding for snipping trailing blanks
      execute: show "Cancelled" instead of "Error" when the user hits ^C
      extra: use the whole terminal for the crawl, and quicken it a bit
      feedback: suppress undo/redo messages when option --zero is in effect
      files: before sending data to an external command, decode LF back to NUL
      files: improve the error handling when executing an external command
      filtering: terminate also the sender process when the user hits ^C
      filtering: when returning to a line number, ensure it is within range
      gnulib: update to its current upstream state
      goto: don't center the current line when the user specified a column only
      help: don't show the New-Buffer toggle when in view mode
      help: move the M-Del item up, so that M-PgUp and M-PgDn are paired
      help: prioritize the unshifted Meta keystrokes for buffer switching
      input: allocate a small keystroke buffer, and never free it
      input: allocate two small character buffers too, and never free them
      input: give up when the capacity of the keystroke buffer overflows
      input: interpret commands of the form {functionname} inside string binds
      memory: avoid a leak when a string bind specifies an unknown menu
      prompt: allow rebinding also ^N, ^Q, and ^Y at the yes-no prompt
      prompt: ingest queued characters before handling any subsequent function
      prompt: prevent execution of inadmissible functions in view mode
      prompt: return FALSE for non-editing functions also in the tiny version
      prompt: toggle the help lines only for the 'nohelp' toggle
      search: skip a match on the magic line, as it is a just convenience line
      startup: ensure that +/string centers the match also with --linenumbers
      startup: for +/string, center the found occurrence when possible
      startup: quit when standard input is not a TTY (after handling arguments)
      startup: report an empty search string also when there is a modifier
      syntax: nanorc: colorize valid function names plus surrounding braces
      tweaks: add parentheses for consistency, and reshuffle for conciseness
      tweaks: allow the linter to be used in view mode, as it makes no changes
      tweaks: attribute some of the features that were added in the last years
      tweaks: avoid iterating over the same string twice in a row
      tweaks: avoid sometimes calling a function three times in a row
      tweaks: check the multiline regexes only for Delete and Backspace
      tweaks: condense a comment, add two small ones, and reshuffle a line
      tweaks: delete a flag that is no longer used
      tweaks: determine in another way whether a shortcut is okay in view mode
      tweaks: discard a bracketed paste in the browser more efficiently
      tweaks: don't use a pointer when the value itself is all that is needed
      tweaks: drop an unneeded check for permissibility of prompt shortcuts
      tweaks: drop a parameter that is no longer used
      tweaks: drop shunting of flags by calling the needed function directly
      tweaks: elide a function that does not need to be a separate function
      tweaks: elide an assignment by iterating with the target variable
      tweaks: elide an intermediary variable that is no longer needed
      tweaks: elide an unused parameter
      tweaks: elide an unused return value
      tweaks: elide a parameter by moving the general case one level up
      tweaks: elide a variable, rename another, and reshuffle an assignment
      tweaks: fold two cases together, because they basically do the same
      tweaks: group the special keycodes for implanted strings together
      tweaks: improve two comments, and exclude two unneeded prototypes
      tweaks: make the crawl use the whole screen also in the tiny version
      tweaks: make two error messages more succinct and easier to translate
      tweaks: move the arrays of menu names and symbols to where they are used
      tweaks: move the --magic option up, so that --zero comes last
      tweaks: move to a given line number more efficiently
      tweaks: move two checks plus corresponding calls to a better place
      tweaks: normalize the indentation after the previous change
      tweaks: reduce four variations of a message to a single common form
      tweaks: rename a macro for clarity, and normalize some indentation
      tweaks: rename a variable, away from an abbreviation
      tweaks: rename two record elements and three parameters, for clarity
      tweaks: replace sizeof(char) with 1, as that is assumed anyway
      tweaks: reshuffle a declaration, and correct the wording of a comment
      tweaks: reshuffle a line, to group things better
      tweaks: reshuffle some code and drop some comments, for conciseness
      tweaks: reshuffle some code, to not determine a shortcut twice
      tweaks: reshuffle some lines, to be more readable instead of compact
      tweaks: reshuffle two lines, for conciseness and in preparation
      tweaks: reword and/or condense four comments
      tweaks: rewrap line, improve wording, and correct typo in old news item
      tweaks: rewrap some lines, drop a redundant call, and reshuffle a line
      tweaks: simplify a function now that a Unicode code can be typed quicker
      tweaks: simplify a pasting routine, modelling it after the injection one
      tweaks: use an auxiliary variable to avoid dereferences of 'shortcut'
      undo: make sure the current line is defined before it is referenced
      verbatim: allow the user to finish Unicode input with <Enter> or <Space>
      verbatim: do not overwrite the status bar when the code is invalid
      verbatim: don't show dots during Unicode input, as they give wrong idea


Changes between v6.3 and v6.4:
------------------------------

Benno Schulenberg (24):
      bump version numbers and add a news item for the 6.4 release
      display: remember text and column positions when softwrapping a line
      docs: concisely describe how the linter behaves
      docs: remove the two notices about the changed defaults
      docs: rename README.GIT to README.hacking, so it's clearer what is meant
      docs: stop mentioning the obsoleted keywords that were removed
      files: designate the root directory with a simple "/", not with "//"
      formatter: instead of leaving curses, use full_refresh() to wipe messages
      gnulib: update to its current upstream state
      help: reshuffle two shortcuts so that more help-line items are paired
      options: stop accepting -z, as --suspendable has been dropped too
      rcfile: remove five obsolete or deprecated keywords
      syntax: default: do not colorize a square or angle bracket after a URL
      syntax: perl: add missing keywords, and reduce the length of some lines
      syntax: python: mention an alternative linter in a comment
      tweaks: add a missing word to a news item
      tweaks: add a translator hint
      tweaks: improve a comment, and reshuffle two functions plus some lines
      tweaks: put each regex on separate line, to better show many keywords
      tweaks: rename a variable, to not be the same as a function name
      tweaks: rename two variables, to not contain the name of another
      tweaks: reshuffle a description and rewrap another
      tweaks: reshuffle a few lines, to group things better
      version: condense the copyright message, to not dominate the output

LIU Hao (1):
      build: ignore errors from `git describe`


Changes between v6.2 and v6.3:
------------------------------

Benno Schulenberg (41):
      build: add the --disable-maintainer-mode option to ./configure
      build: fix compilation for --enable-{tiny,nanorc,color}
      build: fix compilation when configured with --disable-color
      build: remove an obsolete check -- the dependent code was deleted
      bump version numbers and add a news item for the 6.3 release
      display: suppress spotlight yellow and error red when NO_COLOR is set
      docs: add an example binding for copying text to the system clipboard
      execute: clear an anchor only when the whole buffer gets filtered
      execute: don't crash when an empty buffer is piped through a command
      execute: stay on the same line number when filtering the whole buffer
      feedback: show extra warning when writing failed due to "No space left"
      files: do not change to a higher directory when the working one is gone
      files: show a warning when the working directory is gone (when used)
      files: when the working directory exists, still check its accessibility
      filtering: close all output descriptors, so that 'xsel' will terminate
      formatting: change cursor position only after saving it in the undo item
      gnulib: pull in the workaround for a build problem on NetBSD
      gnulib: update to its current upstream state
      justify: stay at the same line number when doing a full justification
      painting: colorize text also after an unterminated start match
      painting: look for another start match only after the actual end match
      painting: recalculate the multidata when making large strides or changes
      painting: stop coloring an extremely long line after 2000 bytes
      painting: tighten the check for a lacking end match on a colored line
      syntax: xml: colorize /> properly, and colorize prolog tags differently
      syntax: xml: colorize user-defined entities differently
      tweaks: avoid a function call when two plain assignments will do
      tweaks: change the indentation of a list, to match other indentations
      tweaks: don't leave an orphaned temporary file behind when writing fails
      tweaks: elide an unneeded call of strlen()
      tweaks: exclude the extra truncation warning from the tiny version
      tweaks: make the triggering of the recalculation of multidata less eager
      tweaks: move the saving and restoring of flags to where it is needed
      tweaks: normalize the indentation after the previous change
      tweaks: prevent the adding of an unwanted newline in a different way
      tweaks: remove redundant braces, and add two translator hints
      tweaks: remove some stray spaces before a comma
      tweaks: simplify a bit of code, eliding two labels and three gotos
      tweaks: simplify a fragment of code, and fold two lines together
      tweaks: trim a few comments, rename a function, and reshuffle some code
      verbatim: with --zero, keep cursor in viewport when it was on bottom row

Mike Frysinger (1):
      general: fix building for Windows


Changes between v6.1 and v6.2:
------------------------------

Benno Schulenberg (14):
      bump version numbers and add a news item for the 6.2 release
      display: suppress the bottom-bar wiping only when the user is editing
      linter: adjust the parsing to accommodate for a modern 'pyflakes'
      syntaxes: fold a couple of regexes together, and improve a few comments
      tweaks: change the type of a variable, to avoid a compiler warning
      tweaks: consistently backslash-escape the dash in M-letter keystrokes
      tweaks: rename a misnamed variable
      tweaks: rename a variable, reshuffle five lines, and snip two comments
      tweaks: rename a variable, to be more correct, and adjust two comments
      tweaks: rename a variable, to be more fitting
      tweaks: rename two more variables, and drop unneeded initializations
      tweaks: rename two variables (to get rid of a prefix), and elide a third
      tweaks: store a result, to avoid calling a function twice
      tweaks: use an intermediate variable, to avoid using one for two purposes


Changes between v6.0 and v6.1:
------------------------------

Benno Schulenberg (37):
      build: fix compilation when configured with --enable-tiny
      build: prevent autopoint from overwriting a newer M4 file from gnulib
      bump version numbers and add a news item for the 6.1 release
      copyright: update the last year for significantly changed files
      copyright: update the years for the FSF
      docs: mention bindable function 'zero', for toggling the interface bars
      docs: mention 'set guidestripe' and 'set unix' in the sample nanorc
      docs: remove obsolete Ctrl+Z from the cheatsheet; mention Alt+X instead
      files: let ^C cancel the exiting when the file on disk was changed
      gnulib: update to its current upstream state
      help: make the description of <Tab> more accurate
      help: update the description of M-D, to match the actual order of counts
      input: instead of moving waiting keycodes, just increment a pointer
      input: suppress any spotlighting when there are more keycodes waiting
      menus: don't show M-6 in the help lines of any prompt
      prompt: allow the user to copy the answer to the cutbuffer (with M-6)
      prompt: let ^K erase text after cursor (if any), otherwise whole answer
      tweaks: add some feedback to the autogen.sh script, to ease the wait
      tweaks: add some small, clarifying comments
      tweaks: adjust a translator hint, to fit the order in the POT file
      tweaks: drop foreign M-U and M-R from among the sample CUA bindings
      tweaks: remove a redundant check -- add a different one for symmetry
      tweaks: remove two redundant checks
      tweaks: rename a function and its two parameters, for clarity
      tweaks: rename a function and reshuffle its call
      tweaks: rename a function, to not contain the name of a variable
      tweaks: rename another variable, to better fit in with its sisters
      tweaks: rename a variable and a parameter, to be more descriptive
      tweaks: rename a variable, away from an abbreviation
      tweaks: rename a variable, for clarity and contrast
      tweaks: rename a variable, to make it clearer it refers to a window
      tweaks: rename two variables, and elide a near-enough duplicate
      tweaks: reshuffle some sample bindings, to group them differently
      tweaks: reword two comments, and rename a variable (away from an abbrev)
      tweaks: stop asking the terminal for its new size -- let ncurses do it
      tweaks: use some symbolic names instead of unclear numeric values
      tweaks: when discarding keycodes, don't bother parsing them


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:
------------------------------

Benno Schulenberg (88):
      browser: make the keystrokes ^W^Y and ^W^V work again
      build: ensure that mkstemps() is available by importing the gnulib module
      build: help Haiku find the header files that define mkstemps()
      bump version numbers and add a news item for the 5.9 release
      copyright: update to the current year for significantly changed files
      cutting: copy anchors into the cutbuffer, so that undo can restore them
      docs: add a paragraph at the start of the README about what nano is
      docs: add a simulated "screenshot" of nano to the README
      docs: add some details to the bug-reporting paragraph in the README
      docs: correct the descriptions of how to invoke the spell checker
      docs: don't use "light" after "bold", as the latter often implies "light"
      docs: improve the description of the spotlighting of a search match
      docs: improve the description of the 'tabstospaces' option
      docs: improve the descriptions of several bindable functions
      docs: improve the recipe in the FAQ for dealing with Alt+Up on a console
      docs: indent the paragraphs in the FAQ that list commands to be typed
      docs: list the default color combo for 'spotlightcolor' in sample nanorc
      docs: mention how to properly colorize all types in nano's source code
      docs: mention in the README which licenses cover nano's code and docs
      docs: move the notice in the main man page, to try and catch other eyes
      docs: refer to the FAQ when <Alt+Up> does nothing on a Linux console
      docs: replace a non-problem in the FAQ with something possibly useful
      docs: spell "filename" as a single word, like in most other occurrences
      feedback: use a smaller diamond to represent an anchor, to not overflow
      feedback: when not in curses mode, just skip displaying any message
      feedback: when not in curses mode, write error messages to the terminal
      files: add the original file's suffix to the name of a temporary file
      files: check for a fifo only when it is an existing file
      files: check the result of fdopen(), to avoid a possible crash
      files: do not call fsync() on a fifo, to avoid a spurious error message
      files: exclude the call of fsync() from the tiny version
      files: give the user time to absorb a warning about someone else editing
      files: making a backup of a fifo makes no sense, so do not try that
      files: prepending to a fifo makes no sense, so do not try that
      files: when the buffer is nameless, include the PID in name of dump file
      files: when there is a slash after the dot, then there is no extension
      files: write a lock file also for a freshly saved buffer
      general: prevent die() from getting recursed into
      gnulib: update to its current upstream state
      help: make the keystrokes ^W^Y and ^W^V work again
      history: emit a warning when file cannot be made private  [coverity]
      input: give up on the input stream only after millions of errors
      memory: free any allocated strings, also in the emergency code path
      po: delete the ancient PO files for Indonesian and Nynorsk
      po: permit the Indonesian PO file to come back -- there was a big update
      shutdown: when dying, do not install/restore a handler for Ctrl+C
      startup: if TERM is unset, try falling back to VT220 instead of failing
      syntax: nanorc: recognize also the template of the sample nanorc file
      syntax: rust: update the license to GPL3 or newer
      syntax: yaml: allow any character in tags except whitespace
      syntax: yaml: allow double colon in key & do not colorize unspaced colon
      syntax: yaml: allow slash and period in key names
      syntax: yaml: colorize backslash-escaped characters as valid or invalid
      syntax: yaml: colorize the question mark of complex mappings too
      syntax: yaml: colorize the two known directives
      syntax: yaml: new file -- coloring rules for YAML files
      tweaks: add Schiermonnikoog to the list of friendly islands
      tweaks: adjust a description of 'showcursor', to match the other ones
      tweaks: adjust three parameters -- two were mistaken, one superfluous
      tweaks: correct two typos and a spello  [codespell]
      tweaks: fix a typo
      tweaks: fold two lines into two others, for conciseness
      tweaks: harmonize the indentations in the FAQ somewhat
      tweaks: in comments, say "buffer" instead of "file" where appropriate
      tweaks: instead of "one" use "you", like in the rest of the man page
      tweaks: remove a redundant feedback message
      tweaks: rename a defined type, to fit within the general pattern
      tweaks: rename a function, to be more fitting
      tweaks: rename a parameter and invert its logic
      tweaks: rename a parameter, to fit better what it is used for
      tweaks: rename a variable and flip its logic, to avoid two negations
      tweaks: rename a variable, away form an abbreviation
      tweaks: rename a variable, to be more grammatical
      tweaks: rename a variable, to be more visible and to match others
      tweaks: rename a variable, to make more sense
      tweaks: rename three variables, to follow the general scheme
      tweaks: reshuffle a few lines, for esthetics and to elide an #ifdef
      tweaks: reshuffle a few lines to avoid an #ifdef and unbalanced braces
      tweaks: reshuffle a fragment of code, to prepare for the next change
      tweaks: reshuffle some code to elide a variable, and improve a comment
      tweaks: reshuffle some lines and adjust some indentation
      tweaks: reshuffle some lines to elide a variable
      tweaks: restore a quote that was accidentally deleted four months ago
      tweaks: rewrap three lines, for esthetics
      tweaks: slightly reword or rewrap some comments in the sample nanorc
      tweaks: try chmodding a dump file only when it was actually written
      tweaks: use five symbolic names, to make eight function calls clearer
      usage: improve the description of the --positionlog option

David Michael (2):
      syntax: gentoo: highlight additional EAPI 7/8 variables
      syntax: gentoo: remove some obsolete keywords and add some new ones

Hussam al-Homsi (3):
      docs: correct the default value of the errorcolor option
      syntax: perl, ruby: remove arbitrary highlighting of here documents
      tweaks: change 'return ++var;' to 'return var + 1;'


Changes between v5.7 and v5.8:
------------------------------

Benno Schulenberg (53):
      bindings: show either "^/" or "^-" in the help lines, instead of "^_"
      bump version numbers and add a news item for the 5.8 release
      display: when a message gets overwritten, note that it is cleared
      docs: add a relevant item to the news for the 4.3 release
      docs: add example bindings for uppercasing and lowercasing a word
      docs: improve the contact info and some line spacing in the PDF
      docs: make ^E access the Execute menu in the example CUA bindings
      docs: mention that "grey"/"gray" may be used as a synonym of "lightblack"
      docs: mention the new 'set minicolor' option
      docs: say thanks to the Icelandic and Slovak translators
      feedback: ensure that the reporting of DOS/Mac format is truthful
      gnulib: update to its current upstream state
      help: use smaller triangles for the arrows
      linter: block the resizing signal while reading output from the linter
      linter: strip filename and line plus column number from the message
      memory: move the correct number of bytes, and not one too many
      memory: prevent a leak when copying the leading quoting to the next line
      minibar: stay out of sight when the terminal has just one row
      options: accept 'set minicolor' for setting the color of the minibar
      rcfile: allow using "grey" or "gray" as a synonym for "lightblack"
      rcfile: do not allow color name "normal" to have a prefix
      replacing: report the number of replacements also on a one-row terminal
      search: automatically drop the spotlighting after a few moments
      search: show "This is the only occurrence" also on a one-row terminal
      startup: allow using a bare "+" to mean put-cursor-on-last-line
      startup: do not accept stray characters after a "+" on the command line
      startup: skip drawing edit window when having message on one-row terminal
      startup: suppress "Search Wrapped" when using +? to search from EOF
      statusbar: ensure that "No further matches" does not get overwritten
      statusbar: on a one-row terminal, drop light messages after a few moments
      statusbar: suppress --constantshow when the terminal has just one row
      statusbar: suppress the cursor when the terminal has just one row
      syntax: nanohelp: avoid colorizing M-) in (M-) and M-" in "M-"
      syntax: nanorc: colorize "light" as valid only for the eight basic colors
      syntax: nanorc: colorize literal control codes, to make them stand out
      syntax: php: colorize the full short tag for echo (<?=)
      tweaks: avoid the subtraction of two size_t variables becoming negative
      tweaks: condense and correct a comment, and move another
      tweaks: condense some code by putting all color names in a single array
      tweaks: drop an assignment that is already part of the called function
      tweaks: frob some whitespace, and rewrap a line
      tweaks: improve a comment, remove unneeded braces, reshuffle some lines
      tweaks: normalize the indentation after the previous change
      tweaks: prevent two more size_t subtractions from going negative
      tweaks: redraw only the affected line instead of doing a full refresh
      tweaks: remove a check that has become superfluous
      tweaks: remove a check that is not needed
      tweaks: rename a variable, for contrast with the function name
      tweaks: rename two functions, to get rid of an ugly _void suffix
      tweaks: reshuffle the coloring of color names, to remove some duplication
      tweaks: use a symbol instead of a hard-coded number
      tweaks: use two symbolic names instead of TRUE and FALSE, for clarity
      wrapping: when copying the quoting part, adjust the file size accordingly

Hussam al-Homsi (1):
      bindings: allow copying text (with M-6) also when in view mode


Changes between v5.6.1 and v5.7:
--------------------------------

Benno Schulenberg (62):
      build: drop the check for two functions that we don't use any more
      build: fix compilation for --enable-tiny plus --enable-multibuffer
      build: fix compilation when configured with --disable-multibuffer
      build: fix compilation when configured with --enable-tiny
      bump version numbers and add a news item for the 5.7 release
      chars: implement mblen() ourselves, for efficiency
      chars: implement mbtowc() ourselves, for more efficiency
      chars: work around a UTF-8 bug in glibc, to display invalid codes right
      chars: work around the wrong private-use-character widths on OpenBSD
      display: avoid determining twice from and until where to draw each row
      display: make the output of --constantshow less jittery
      editing: prevent the pointer for the top row from becoming dangling
      feedback: upon first switch to a buffer, show its error message (if any)
      files: always register the format, also when the file is unwritable
      files: create a new buffer earlier, so that error messages can be stored
      files: when Mac format has been detected, stay with it
      gnulib: pull in the fix for a build problem on older Debian
      gnulib: update to its current upstream state
      indicator: adjust the size to the number of visible lines, not chunks
      input: accept Unicode codes for non-characters as valid, since they are
      memory: do not allocate space for multidata when it's already allocated
      memory: fix an off-by-one error to free also the last line in a group
      memory: prevent a use-after-free when the user respects a lock file
      oops: that doesn't work -- you can't break out of two for loops at once
      options: retire the obsolete 'smooth', 'morespace', and 'nopauses'
      softwrap: avoid time-consuming computations, to burden large files less
      startup: do not crash when trying to open a device or directory
      startup: do not store an error message in the record of another buffer
      startup: save the compiled file-matching regexes, to avoid recompiling
      startup: show the helpful message only when ^G has not been rebound
      syntax: c: colorize also labels that contain digits, and uncolorize colon
      syntax: po: improve the coloring of format specifiers
      syntaxes: replace [[:space:]] with [[:blank:]] to exclude carriage return
      tweaks: adjust and improve one comment, and frob another
      tweaks: adjust two comments, and reshuffle two fragments
      tweaks: avoid a warning on newer compilers, by writing an extra byte
      tweaks: avoid calling extra_chunks_in() when not softwrapping
      tweaks: avoid converting a file name for more than will fit on screen
      tweaks: avoid parsing a multibyte character twice
      tweaks: condense three comments, drop another, and rewrap a line
      tweaks: drop unneeded braces and adjust indentation after previous change
      tweaks: elide a call of strlen() for every row
      tweaks: elide a function that is now basically just two lines
      tweaks: elide an unneeded resetting NULL call to wctomb()
      tweaks: elide a small function that is used just once
      tweaks: elide the pointless is_valid_unicode() function
      tweaks: elide two more instances of useless character copying
      tweaks: improve a couple of comments
      tweaks: morph a function into what it is actually used for
      tweaks: normalize the indentation after an earlier change
      tweaks: put the most likely condition first, for a quicker return
      tweaks: reduce the maximum character length from six bytes to four
      tweaks: remove a misplaced (and nested) #ifdef
      tweaks: rename a variable, away from an abbreviation
      tweaks: rename a variable, for contrast with another
      tweaks: reshuffle a comment, and put the main extension first
      tweaks: reshuffle a fragment of code, to prepare for the next change
      tweaks: reshuffle two conditions, to have the most unlikely one first
      tweaks: set the file format only when unset, so it doesn't need saving
      tweaks: shorten a comment and trim an #ifdef
      tweaks: simplify two fragments of code
      tweaks: simplify two fragments of code, eliding useless character copying

Hussam al-Homsi (1):
      syntax: c: make the highlighting of '#include <...>' more compliant

Mike Frysinger (1):
      syntax: tcl: support Expect scripts too


Changes between v5.6 and v5.6.1:
--------------------------------

Benno Schulenberg (4):
      bump version numbers and add a news item for the 5.6.1 release
      options: rename 'highlightcolor' to the more distinct 'spotlightcolor'
      search: correctly colorize a match also when softwrapping is active
      tweaks: rename a symbol, to better match the corresponding option


Changes between v5.5 and v5.6:
------------------------------

Benno Schulenberg (52):
      build: avoid a warning about duplicate symbol when building from tarball
      build: detect a build from git also when building out of tree
      build: include a workaround only for versions of ncurses that need it
      bump version numbers and add a news item for the 5.6 release
      color: do not look for another 'end' match after already finding one
      color: give highlighted text its own color, to not look like marked text
      color: recompile the file-probing regexes a little faster with REG_NOSUB
      color: use bright yellow to highlight a search match
      color: use inverse video for highlighting when there are no colors
      debug: add timing instruments to cache precalculation and screen refresh
      display: for a large paste or insertion, recalculate the multiline cache
      docs: correct the description of --quickblank for the changed base value
      docs: correct the formatting of a comment in the sample nanorc
      docs: correct the word order for Alt+D in the cheat sheet -- it changed
      docs: mention the new 'set highlightcolor' option
      docs: remove all mentions of --markmatch and 'set markmatch'
      docs: say that --minibar is modified by --constantshow and --stateflags
      feedback: make Full Justify show a message also when using --minibar
      gnulib: update to its current upstream state
      minibar: show a message a little longer when --quickblank isn't used
      minibar: show cursor position + character code only with --constantshow
      minibar: show the state flags only when --stateflags is used
      minibar: suppress the toggling feedback for M-C, but show it for M-Y/M-P
      options: remove --markmatch and 'set markmatch', as the behavior is gone
      painting: always do backtracking for the first row of the screen
      painting: trigger a refresh when a second start match appears on a line
      painting: trigger fewer unneeded full-screen refreshes
      painting: when finding an end match, set its multidata right away
      scrolling: keep centering after large paste, also when line numbers widen
      search: just highlight the found occurrence, instead of marking it
      search: make highlighting the standard, non-changeable behavior
      tweaks: avoid the vague possibility of advancing beyond end-of-line
      tweaks: be slightly more efficient in marking lines as WOULDBE
      tweaks: call wattron()/wattroff() only when actually painting something
      tweaks: correct a comment, improve another, and trim some verbosity
      tweaks: don't bother comparing virgin multidata with current situation
      tweaks: don't bother initializing freshly allocated multidata
      tweaks: don't bother wiping the multidata before recomputing it
      tweaks: elide a function that is now just one line
      tweaks: frob a condition, to be more concise, and reshuffle another
      tweaks: frob some comments, and adjust indentation after previous change
      tweaks: frob some comments, and reshuffle two fragments of code
      tweaks: frob two fragments of code, to be more readable
      tweaks: make a skipping condition more precise
      tweaks: remove an old fix that was made superfluous by a recent fix
      tweaks: remove a strangely placed warning
      tweaks: rename six symbols, to be more straightforward
      tweaks: reshuffle some code, and reduce the scope of a variable
      tweaks: reshuffle three conditions into a better order
      tweaks: rewrap and reindent a few lines
      tweaks: rewrap two lines, for esthetics
      tweaks: stop evaluating a rule when the match is offscreen to the right


Changes between v5.4 and v5.5:
------------------------------

Benno Schulenberg (84):
      build: fix compilation for --enable-{tiny,help,multibuffer}
      build: fix compilation when configured with --disable-utf8
      build: fix compilation when configured with --enable-tiny
      build: remove the '--with-slang' configure option
      bump version numbers and add a news item for the 5.5 release
      chars: short-circuit determining the width of characters under U+0300
      chars: speed up the handling of invalid UTF-8 starter bytes
      copyright: update the years for the FSF
      display: add code for showing minimal state-information bar at the bottom
      display: do not show the state flags in the help viewer or file browser
      docs: explain the effect of --minibar / -_ / 'set minibar'
      docs: explain the purpose of --markmatch / -^ / 'set markmatch'
      docs: insert links to the mailing-list archives into the README
      docs: mention in NEWS that some workarounds were removed
      docs: mention the new 'set promptcolor' option
      docs: remove all mentions of Slang
      feedback: differentiate between remarks, mistakes, and information
      feedback: wipe the status bar by default after 20 keystrokes
      files: when truncating a file name, give an indication of this
      general: remove support for Slang
      gnulib: update to its current upstream state
      input: intercept ^Z also when --minibar is active
      input: interpret a keystroke as Meta only when an earlier escape was solo
      memory: avoid leaking the speller or linter command string, when invoked
      minibar: add an [x/y] "counter" when multiple files are open
      minibar: add a percentage that shows how far the cursor is into the file
      minibar: allow the number-of-lines to overrule also the state flags
      minibar: allow the number-of-lines to overrule location + character code
      minibar: drop the side spaces before suppressing the state flags
      minibar: represent bytes as 0xNN and valid Unicode code points as U+NNNN
      minibar: show the info bar again some 0.8 seconds after a message
      minibar: show the line count in the bar (at startup and when saving)
      minibar: show Unicode codes when in a UTF-8 locale
      minibar: suppress some elements when there is no room to show them
      minibar: when the next character has zero width, show its code too
      minibar: when the overnext character has zero width too, show its code
      mouse: do not offset the shortcuts by 'margin' when using --linenumbers
      oops: use the correct condition for checking the last line will change
      options: accept 'set promptcolor' for setting the color of the prompt bar
      options: add --markmatch and -^ for activating the select-match behavior
      options: add --minibar and -_ for activating basic state-information bar
      prompt: restore a workaround for a cursor misplacement bug in ncurses
      prompt: suppress the ">" character always when exactly at the right edge
      rcfile: rename 'nowrap' toggle to 'breaklonglines', to match the option
      search: set the mark at the end of a found match so it gets highlighted
      search: suppress the cursor when highlighting a match
      speller: do an internal spell check when --speller is an empty string
      speller: strip leading whitespace from command, to avoid a sneaky crash
      syntax: go: add author and license line
      syntax: nanorc: colorize 'bookstyle' as a valid option
      syntax: nanorc: colorize 'set promptcolor' as valid
      syntax: sh: recognize shebangs with any shell after 'env', not just 'sh'
      tweaks: adjust the indentation after the previous change
      tweaks: avoid compilation warnings on 32-bit machine plus newer compiler
      tweaks: avoid computing the cursor column twice, and the "page" too
      tweaks: avoid hitting negative values when using size_t
      tweaks: change an intermediate variable to a better one
      tweaks: clean up after the previous change
      tweaks: condense the description of how to report a bug
      tweaks: correct a translator hint
      tweaks: correct two comments after the previous changes
      tweaks: do not change the pointer, but move the content of the string
      tweaks: drop a small optimization for invalid UTF-8 starter bytes
      tweaks: elide a variable, by using a reallocation instead
      tweaks: fold some conditions into bitwise masks, for efficiency
      tweaks: fold two similar and three identical cases together
      tweaks: move 'set indicator' to its alphabetical place in the manual
      tweaks: move the displaying of the state letters into a separate function
      tweaks: push back the deprecation of the 'set nowrap' option
      tweaks: put the new options in a consistent order in the code
      tweaks: reduce the scope of a static variable
      tweaks: remove some #ifdefs that were there only for Slang
      tweaks: rename a variable, to be similar to its sister
      tweaks: reshuffle a condition, to probably avoid an unneeded calculation
      tweaks: reshuffle an option, to have two related ones grouped together
      tweaks: reshuffle some lines, to group things better
      tweaks: reshuffle some lines, to have most #includes near the beginning
      tweaks: reshuffle some more lines, to have most #defines together
      tweaks: reshuffle two lines, and rename a variable to a plain word
      tweaks: reword the description of an option
      tweaks: simplify a bit of logic
      tweaks: use a boolean instead of an enumeration of two values
      undo: remove the added magic line when a replacement caused one
      weeding: remove some obsolete information from the README

OIX (1):
      mouse: update title bar (the M flag) when the click is on the cursor


Changes between v5.3 and v5.4:
------------------------------

Benno Schulenberg (31):
      bindings: accept b for scrolling back up in help viewer and file browser
      build: exclude a workaround for VTE/Konsole when using a recent ncurses
      build: include a workaround for VTE only when using an older libvte
      bump version numbers and add a news item for the 5.4 release
      copyright: update to the current year for significantly changed files
      docs: adjust for the changed name of the header-file package on Debian
      docs: use standard-compliant HTML entities for the four arrows
      feedback: abort when user tries to open multiple files in tiny version
      gnulib: update to its current upstream state
      help: allow the penultimate item extra space when the number is uneven
      help: show all valid help items also in the Write-Out menu
      linting: avoid putting the cursor beyond the end of the line
      moving: skip combining characters and other zero-width characters
      options: do not spew out the help text when an option is not recognized
      prompt: skip over combining characters also when editing a search string
      rcfile: stop accepting 'set view' in a nanorc file, and undocument it
      statusbar: properly pluralize the line+word+character count report
      tweaks: avoid copying an option's argument when there is no need
      tweaks: normalize the formatting after the previous two changes
      tweaks: rename two variables and improve two comments
      tweaks: rename two variables, one for contrast, another for visibility
      tweaks: reshuffle a fragment of code, for clarity
      tweaks: reshuffle a line, elide two braces, and adjust the indentation
      tweaks: reshuffle three lines and elide braces after the previous change
      tweaks: slightly shorten a loop, to place the actual action outside of it
      tweaks: use the standard symbols for the three standard file descriptors
      utils: die when trying to allocate zero bytes
      weeding: remove another unneeded workaround for VTE
      weeding: remove a workaround for early versions of ncurses-6.0
      weeding: remove a workaround for versions of ncurses before 5.9
      weeding: remove a workaround for VTE that is not needed


Changes between v5.2 and v5.3:
------------------------------

Arturo Borrero González (1):
      syntax: nftables: include author and license lines

Benno Schulenberg (92):
      browser: make M-W/M-Q functional right after startup, if there is history
      browser: sort names that differ only in case with uppercase first
      browser: wipe the status bar before searching again with M-W or M-Q
      build: abort the update script if a PO file contains a control character
      build: avoid two compiler warnings when gnulib has been ripped out
      build: do not accept --enable-libmagic when not having color support
      build: do not let Slang translate escape sequences to key codes
      build: exclude bunches of raw escape sequences from the tiny version
      build: exclude --emptyline, --jumpyscrolling, and --noread from tiny nano
      build: exclude excessive version information from the tiny version
      build: exclude option --tabsize (-T) from the tiny version
      build: exclude reading a file from standard input from the tiny version
      build: exclude the three --help column headers from the tiny version
      build: include some raw sequences for the graphical Debian installer
      build: stop using an obsolete macro, and use 'void' for signal handlers
      build: to verify wide curses, probe for a function that cannot be a macro
      bump version numbers and add a news item for the 5.3 release
      chars: reduce searching time with roughly 85 percent for plain ASCII
      display: do not unnecessarily wipe the status bar
      display: do not wipe the status bar when the terminal has just one row
      display: force the cursor to reappear after a message (when using Slang)
      display: force the cursor to reappear in a better way (when using Slang)
      display: skip a special-case refresh when a message was written
      docs: add a link to the website also to the info manual
      docs: add the customary (1) after the name of command-line programs
      docs: condense the descriptions of cutting and pasting
      docs: explain the purpose of -! / --magic / 'set magic'
      docs: explain the 'set scrollercolor' option, for coloring the indicator
      docs: explain what the options --stateflags (-%) and 'set stateflags' do
      docs: improve two wordings in the sample nanorc
      docs: mention that syntax definitions are available in /usr/share/nano/
      feedback: don't give a hint for <Bsp>, and not after an Alt+key was used
      feedback: in the tiny version, let M-H show the helpful hint too
      feedback: make an "Unbound key" message disappear on the next keystroke
      feedback: show a helpful message for ^G even when there is no help
      feedback: show helpful message for the first ^H at the top of the file
      gnulib: update to its current upstream state
      help: do not leave the cursor on the status bar after a search
      help: do not show "^G Help" in the tiny version when there is no help
      help: ensure the help lines are always drawn, also when using Slang
      help: in the tiny version, show Prev/Next Word before Backward/Forward
      help: nicely pair menu items also when built with just --disable-help
      new feature: option --stateflags to show some states in top-right corner
      options: add -? as a synonym of -h (--help), but leave it undocumented
      options: move --stateflags (-%) and --magic (-!) to the end of the list
      options: require --magic or 'set magic' to enable the use of libmagic
      rcfile: add 'set scrollercolor', for changing the color of the indicator
      suspension: do not enter an invalid byte upon resume (when using Slang)
      suspension: properly resume from an external SIGSTOP
      suspension: resume properly from an external SIGSTOP (when using Slang)
      suspension: switch off flow control at the right moment (for Slang)
      syntaxes: add author and license lines to four of the files
      syntax: nanorc: stop coloring 'morespace' and 'smooth' as valid
      syntax: nanorc: stop coloring 'nopauses' and 'nowrap' as valid
      syntax: nanorc: stop coloring 'quiet' and 'backwards' and 'finalnewline'
      syntax: po: do not leave the occasional tab with a red background color
      syntax: po: highlight embedded control codes that shouldn't be there
      syntax: sh: recognize some shell scripts by their Emacs modeline
      tweaks: add a hint for translators
      tweaks: add some comments to the C syntax, and sort some keywords
      tweaks: adjust some whitespace in the docs, and improve a comment
      tweaks: avoid a compiler warning when compiling with more than -O1
      tweaks: condense a bit of code
      tweaks: condense a bit of code after the previous change
      tweaks: drop the unneeded saving and restoring of a global variable
      tweaks: dummy commit, to add some info about the previous one
      tweaks: elide a one-line function, after reducing it to a single call
      tweaks: fold one function into another, to elide an unneeded return value
      tweaks: harmonize the spelling of a compound word, and rewrap a section
      tweaks: harmonize the style of error messages and warnings in ./configure
      tweaks: make two of the changes that 'autoupdate' suggests
      tweaks: move three functions, to before the ones that call them
      tweaks: move two more functions, to before the ones that call them
      tweaks: move two more functions, to before the one that calls them
      tweaks: normalize the indentation after the previous change
      tweaks: remove an inconsistent newline from the end of an error message
      tweaks: remove an unused element from 'funcstruct', saving 8 more bytes
      tweaks: remove mistaken escape sequences for function keys on xterm
      tweaks: remove two stray comments and two lines that were commented out
      tweaks: rename another variable, away from being misnamed
      tweaks: rename four variables, reshuffle them, and correct one type
      tweaks: rename two elements of history struct, away from abbreviations
      tweaks: rename two variables, to be more distinct
      tweaks: replace two more occurrences of 'AC_TRY_RUN' with 'AC_RUN_IFELSE'
      tweaks: reshuffle a condition, to elide a blank string
      tweaks: reshuffle some lines after the previous change
      tweaks: reshuffle some lines and adjust indentation after previous change
      tweaks: reshuffle two lines and a function name, for a consistent order
      tweaks: rewrap nine more old NEWS items, for balanced line lengths
      tweaks: rewrap three NEWS items, for more balanced line lengths
      tweaks: stop 'autoupdate' from failing with "end of file in string"
      version: remove URL and email address from the --version output

Hussam al-Homsi (5):
      syntax: c: colorize also one-character constants, and the null directive
      syntax: c: colorize also the keywords that start with an underscore
      syntax: c: colorize also the 'restrict' keyword, and the #line directive
      tweaks: reorder a member of 'funcstruct', to save 8 bytes of padding
      tweaks: stop casting the return of malloc() and friends

Ryan Westlund (1):
      syntax: markdown: add author and license line


Changes between v5.1 and v5.2:
------------------------------

Benno Schulenberg (30):
      build: stop distributing the README.GIT file
      build: stop mentioning Slang in two ./configure messages
      bump version numbers and add a news item for the 5.2 release
      display: restore the ability to resize the screen while searching
      docs: add a cross-reference from 'findbracket' to 'set matchbrackets'
      docs: adjust description of ^T in cheatsheet, and mention M-Bsp
      docs: mention in the FAQ how to change the escape sequences of urxvt
      docs: reshuffle the section about the file browser to a better place
      gnulib: back away from a commit that causes trouble when using clang
      gnulib: update to its current upstream state
      history: do not interpret a failing stat() as an error
      input: allow also a Meta keystroke to abort a Search command
      input: dawdle after an ESC also when --rawsequences is used
      input: discard any multibyte character when <Alt> is being held
      input: do not enter invalid bytes when holding down both Alt keys
      input: hold on to a shift-selected region when an unbound key is struck
      rcfile: make sure that "bright"/"light" are prefixes, not separate words
      replacing: do not try to wipe nonexistent multidata, to avoid crashing
      search: poll the input stream directly, not nano's own keystroke buffer
      search: retain the current answer when something is toggled
      tweaks: adjust a comment, and reshuffle the setting of a boolean
      tweaks: condense two declarations
      tweaks: condense two fragments of code, for compactness
      tweaks: elide an unneeded variable
      tweaks: improve three comments and an indentation
      tweaks: move the keyboard-checking code to the end of the search loop
      tweaks: remove a variable and two functions that have become redundant
      tweaks: rename a variable, to not seem to refer to the scrollbar
      tweaks: reshuffle four declarations, and rename two variables
      verbatim: reserve enough space for the result also in non-UTF-8 locales


Changes between v5.0 and v5.1:
------------------------------

Benno Schulenberg (55):
      anchor: in a UTF-8 locale, show an anchor as a diamond, for visibility
      anchor: show an anchor also when the line is horizontally scrolled
      bindings: make <Alt+Backspace> delete a word backwards, like in Bash
      build: fix compilation for --enable-tiny --enable-nanorc --enable-color
      build: fix compilation when configured with --enable-tiny
      build: stop distributing the two old Changelogs
      bump version numbers and add a news item for the 5.1 release
      display: show the cursor position also right after the screen is resized
      docs: fix a closing tag in the FAQ  [tidy]
      docs: mention that anchors are visible when line numbers are shown
      feedback: add the reason to the error message when forking fails
      feedback: use three dots to indicate processing, like everywhere else
      feedback: when creating a pipe fails, report also the reason
      files: do not try writing to the status bar while not in curses mode
      formatter: force the mark off, to not crash by accessing empty cutbuffer
      gnulib: update to its current upstream state
      help: list again the keystroke for toggling the help lines (M-X)
      input: understand M-Bsp also when terminfo does not match the terminal
      moving: make <Ctrl+Up> go to the top when above the cursor all is blank
      rcfile: allow to bind M-[  (even though it is an escape-sequence starter)
      softwrap: initialize the 'extrarows' value for the magic line correctly
      speller: give proper feedback when the user tries to check emptiness
      speller: give startup feedback (relevant when running on a Linux console)
      speller: re-enter curses mode before trying to report an error
      syntax: css: differentiate pseudo-classes (now cyan) from comments (blue)
      syntax: default: colorize also "GNU nano 5.x"
      tweaks: adjust the indentation after the previous change
      tweaks: adjust the indentation after the previous change
      tweaks: avoid a maybe-uninitialized-variable warning from gcc
      tweaks: elide an unneeded variable, by transforming the key code directly
      tweaks: elide two variables that are no longer needed, and update comment
      tweaks: exclude old and mistaken "Esc O" sequences from the tiny version
      tweaks: make a few more direct returns, and reshuffle another bit of code
      tweaks: make a misplaced call of statusline() more obvious by crashing
      tweaks: normalize the indentation after the previous change
      tweaks: normalize the indentation, and regroup two lines
      tweaks: optimize for byte-range characters, and shorten some comments
      tweaks: parse the escape-sequence bytes without copying them first
      tweaks: pass first byte of sequence directly to the decoding function
      tweaks: print error message directly instead of passing it to the caller
      tweaks: read keycodes from the keystroke buffer without copying them
      tweaks: remove an unneeded beep, and reshuffle the lines for compactness
      tweaks: reshuffle a few lines, to condense the code, and improve comment
      tweaks: reshuffle four lines, for esthetics
      tweaks: reshuffle some fragments, to make the next change easier
      tweaks: reshuffle the zeroing of a counter, to allow some direct returns
      tweaks: simplify two functions, as they now return always NULL
      tweaks: split a function into two, one for "Esc O" and one for "Esc ["
      tweaks: stop using a 'switch' when there are just three possibilities
      verbatim: discard entire keystroke when it's not valid for Unicode Input
      verbatim: do not report "Invalid code" when a Unicode character is typed
      verbatim: do not report "Invalid code" when the terminal is resized
      verbatim: insert the full code sequence when <Alt+Backspace> is pressed
      verbatim: pause a little after an ESC, to not miss a succeeding code
      verbatim: report and ignore an invalid keystroke for Unicode input

Michalis Kokologiannakis (2):
      build: avoid compilation warnings by using memcpy() instead of strncpy()
      files: ignore only EPERM when fchmod() or fchown() fails


Changes between v4.9 and v5.0:
------------------------------

Andreas K. Foerster (1):
      syntax: ada: new file -- coloring rules for Ada 2012 files

Benno Schulenberg (374):
      anchor: do not let a full justification transfer an anchor to the top
      anchor: do not let piping and spelling transfer an anchor to the top
      anchor: during full justification preserve anchors as during single ones
      backup: do not understand ^C as "Yes" when asking whether to continue
      backup: when rereading the original file fails, ask the user what to do
      bindings: add mistakenly removed M-J (Full Justify) back to the main menu
      bindings: add ^Z (Suspend) to the "Execute Command" menu
      bindings: allow toggling the help lines at several prompts and in browser
      bindings: allow typing digits on the numeric keypad by holding Shift
      bindings: make ^L (Refresh) work at all the prompts too
      bindings: make ^T invoke the "Execute Command" menu, and ^T^T the Speller
      bindings: remove the Full-Justify function from the Search menu
      bindings: stop <Alt+operator> on the keypad from entering spurious letter
      bindings: stop supporting <Esc> <Esc> <numeric slash> without NumLock
      build: allow compilation to succeed on curses without italic support
      build: do not let --disable-speller exclude also the formatter code
      build: fix compilation for --enable-tiny --enable-color --enable-nanorc
      build: fix compilation when configured with --disable-color
      build: fix compilation when configured with --disable-speller
      build: fix compilation when configured with --enable-tiny
      build: fix compilation when configured with --enable-tiny
      build: fix miscompilation for --enable-{tiny,color,nanorc}
      build: fix the Makefile after two header files were renamed
      build: make a deeper clone of gnulib (when building from git)
      build: make ./configure report which global nanorc file will be used
      build: replace the non-standard backslash escape "\e" with "\x1B"
      build: stop distributing a nano.spec file
      build: use a more dependable method for detecting a build from git
      bump version numbers and add a news item for the 5.0 release
      color: avoid allocating emptiness when there are no multiline regexes
      color: when syntax coloring is toggled back on, calculate multiline data
      colors: move purple one step away from magenta, and use a darker mauve
      copying: change the implementation, away from cutting plus copying back
      copying: do not forget to update the screen when M-6 is pressed
      copying: when using M-6, copy the final line in the buffer just once
      copying: with --nonewlines, don't add a final newline to the cutbuffer
      counting: count words and characters without partitioning the file
      counting: count words correctly also when --wordchars is used
      cutting: change the implementation of cutting to not use partitioning
      cutting: overhaul the pasting routine, to not make use of partitioning
      display: avoid an additional redrawing when redrawing the screen
      display: blank the status bar for a copy operation, like for cut & paste
      display: do not try to draw content when there is no open buffer yet
      display: reposition the cursor after an error message also in a help text
      docs: complete the renaming of 'tempfile' to 'saveonexit'
      docs: copy the 4.9.1 news item from the release branch
      docs: copy the 4.9.2 news item from the release branch
      docs: copy the 4.9.3 news item from the release branch
      docs: document the --indicator (-q) and 'set indicator' options
      docs: document the new -O/--bookstyle and 'set bookstyle' options
      docs: explain how anchors work, and document their bindable functions
      docs: improve some descriptions concerning the file browser
      docs: in the sample nanorc file, refer instead of duplicating
      docs: mention that doing a full-buffer operation wipes away all anchors
      docs: mention that M-X toggle is special, because available in most menus
      docs: mention that the dedicated cursor-moving keys are not rebindable
      docs: mention the nine new color names, and "bold" plus "italic"
      docs: note Marco as the original author of the bookmarking code
      docs: reduce the TODO file to a reference to the bug tracker on Savannah
      docs: stop mentioning that --wordchars overrides --wordbounds
      docs: use 'bold' and 'light' instead of 'bright' in the sample nanorc
      feedback: beep also at a prompt when receiving an unknown escape sequence
      feedback: do not list "." and ".." as possible <Tab><Tab> completions
      feedback: indicate an anchor with a "+" in the line-number margin
      feedback: show a message also when trying to copy an empty region
      feedback: show the cursor position also at startup in an empty buffer
      feedback: skip wiping the prompt bar when the shortcut printed a message
      files: also when creating a backup fails, ask the user whether to proceed
      files: ask the user whether to proceed every time a backup fails
      files: before prompting, show also the reason why the backup failed
      files: disallow tabbing when in restricted mode
      files: do not append but truncate when allowing insecure backups
      files: do not let a stray CR in a DOS file trigger Mac format
      files: do not make a failsafe backup when in restricted mode
      files: give a more precise warning when deleting an existing backup fails
      files: ignore errors when calling chmod() on a backup file
      files: ignore errors when calling chown() on a backup file
      files: ignore errors when calling futimens() on a backup file
      files: list possible completions after just one <Tab> instead of two
      files: make a backup only when requested, not an unrequested failsafe one
      files: make better use of the last row when there are many completions
      files: make filtering of the entire buffer into a new buffer work again
      files: never report a file as being of mixed format
      files: reinitialize the palette only when the syntax actually changed
      files: remove two superfluous calls for shielding temp files from others
      files: show a warning when writing a backup fails, before prompting
      files: show possible tab completions near the bottom of the edit window
      files: take into account that also closing a backup file can fail
      files: trigger the Easter egg only when "zzy" is typed at the prompt
      files: warn the root user when all the write bits are missing
      files: write out a marked region without partitioning the buffer
      general: make five tools accessible through the "Execute Command" menu
      general: rename "bookmark" to "anchor", to sound less permanent
      gnulib: update to its current upstream state
      help: describe what has been added to the "Execute Command" menu
      help: pair the items in the two bottom lines better in the tiny version
      help: put the two toggles first in the "Execute Command" menu
      history: don't send error messages to the screen; store them in the queue
      history: take into account that closing a file can fail
      history: take into account that statting a file can fail too
      indicator: recompute the extra rows also for cut/paste/split/join
      indicator: recompute the extra rows also when justifying and resizing
      indicator: rework how the "scrollbar" is computed when softwrapping
      input: interpret an escape sequence only when it starts with "[" or "O"
      input: reset the counters when a three-digit sequence is not completed
      input: stop recognizing the raw escape sequences for F13 to F16
      locking: ignore the insecure-backup flag when creating a lock file
      locking: prevent a symlink attack by not opening an existing lock file
      memory: plug a leak, by freeing the cutbuffer after a bracketed paste
      menus: remove unneeded words and shortenings from key labels
      new feature: a position-plus-portion indicator on the right-hand side
      oops -- restore an accidentally changed file
      options: add --indicator and -q for switching on the scroll-bar thing
      options: add -O/--bookstyle to make leading whitespace mean new paragraph
      options: let --afterends affect also the deleting of words (Ctrl+Delete)
      options: make -S the short synonym of --softwrap
      options: rename --tempfile to --saveonexit, to be far clearer
      options: stop recognizing the obsolete --morespace and --smooth
      prompt: at Yes-No, do not treat a screen resize as an invalid keystroke
      rcfile: accept prefix "light" to make a color brighter without bolding it
      rcfile: add bindable function 'execute', for access to "Execute Command"
      rcfile: allow specifying a bright background color (with prefix "light")
      rcfile: complain when an essential key binding is missing
      rcfile: do not complain when "bright" is used with a background color
      rcfile: introduce nine new named colors, from "pink" to "latte"
      rcfile: introduce the modifier "bold", for specifying bolding separately
      rcfile: introduce the modifier 'italic', for slanted text
      rcfile: rename bindable function 'curpos' to 'location'
      rcfile: rename 'extcmd' to 'execute', to be more readable and fitting
      rcfile: report the first bad color element, not a later one that is okay
      rcfile: restore terminal settings when exiting upon excessive unbindings
      replacing: recalculate the multiline coloring info when needed
      scrolling: add a function and a key binding to center the cursor line
      speller: take into account that statting a file can fail  [coverity]
      startup: allow presetting case-sensitive search also in the tiny version
      startup: check stdout instead of stdin when probing for a Linux console
      startup: enter curses mode before reading the nanorc files
      startup: initialize colors only when the terminal is capable of colors
      syntax: css: color multiline comments correctly
      syntax: default: colorize embedded control codes
      syntax: email: rename file and syntax, away from the mistaken 'mutt'
      syntax: markdown: do not colorize text between two bold words as italic
      syntax: markdown: new file -- coloring rules for Markdown files
      syntax: mgp: drop the almost-empty MagicPoint file and syntax
      syntax: move distro-specific files down to a subdirectory, syntax/extra/
      syntax: nanorc: colorize 'bright' anyway, so existing syntaxes look okay
      syntax: nanorc: colorize the new named colors too, from "mint" to "mauve"
      syntax: nanorc: stop colorizing 'bright', even though it's still accepted
      syntax: sql: condense some regexes, and reduce their number
      syntax: sql: rename the file to match the name of the syntax
      syntaxes: move the rules for Fortran and Povray files down to extra/
      syntaxes: remove some stuff that has been commented out for a long time
      syntaxes: remove some superfluous outer parentheses from regexes
      syntaxes: remove unneeded backslash escapes before quotes
      syntaxes: uniformize the initial comment
      tabbing: beep at the first listing, and when there are zero possibilities
      tabbing: properly terminate the answer when the sole match is a folder
      text: retain a bookmark when two lines are joined or something is cut
      tweaks: add a condition, so that two ifs can be elided
      tweaks: add a helpful message for when pkg.m4 is missing during a build
      tweaks: add a helping variable, in order to unwrap three lines
      tweaks: add a helping variable, to slightly condense the code
      tweaks: add a symbol, in order to condense three function calls
      tweaks: add four early returns for read/write errors of history files
      tweaks: add four more translator hints
      tweaks: add two comments, and improve another
      tweaks: adjust comments and indentation after the previous change
      tweaks: adjust the conditional help-item pairing for absence of speller
      tweaks: adjust the file format indicator in a quicker way
      tweaks: adjust the indentation after the previous change
      tweaks: adjust the indentation after the previous change
      tweaks: avoid a compiler warning
      tweaks: avoid a function call when a simple boolean will do
      tweaks: avoid an unnecessary refresh for zero or just one completion
      tweaks: avoid a warning about an unused variable in the tiny version
      tweaks: avoid checking a variable three times for each pass in the loop
      tweaks: avoid unneeded calls of free() by reallocating the full name
      tweaks: call init_pair() just once for each pair number
      tweaks: call the spotlighting routines only for the relevant line
      tweaks: call use_default_colors() just once for each run
      tweaks: cascade the ifs properly: without increasing the indentation
      tweaks: change a helping variable, to make two blocks still more similar
      tweaks: change a 'switch' to 'if', to elide a dummy 'return'
      tweaks: close opened files when something goes wrong  [coverity]
      tweaks: condense a bit of code, by reusing an existing variable
      tweaks: condense a comment, and express a condition in a different way
      tweaks: condense a comment, and reshuffle a few lines
      tweaks: condense a comment, and reshuffle some conditions
      tweaks: condense and improve some comments
      tweaks: condense some cases to a single line, for more clarity
      tweaks: condense the code a little further, by grouping things better
      tweaks: correct a comment, and avoid third repetition of some conditions
      tweaks: correct a comment, and drop a redundant (because nested) #ifdef
      tweaks: correct some comments, as VT100 and such have smaller keypads
      tweaks: correct two spelling mistakes  [codespell]
      tweaks: delete a ChangeLog that is no longer updated and is incomplete
      tweaks: delete another pointless ChangeLog
      tweaks: delete a now-unused function
      tweaks: delete some unneeded code, and rename the function accordingly
      tweaks: delete the now-unused partitioning and unpartitioning routines
      tweaks: delete two functions that are never executed
      tweaks: do not use 'switch' when there are just two possibilities
      tweaks: do not use the string "stat()" in any of the comments
      tweaks: don't bother overwriting a CR -- decreasing the length is enough
      tweaks: don't bother statting the lock file before unlinking it
      tweaks: don't bother using the exclusive flag when creating a lock file
      tweaks: don't check for escape sequences that start with a lowercase "o"
      tweaks: don't use a symbol for other purposes
      tweaks: do the conversion of -1 to a specific color just once
      tweaks: do the saving of histories in a single place
      tweaks: drop an unneeded assignment, and reshuffle a few lines
      tweaks: drop a superfluous check for a non-zero length
      tweaks: drop obsolete 'nano.spec' from .gitignore file, and reshuffle
      tweaks: drop two redundant conditions, and improve three comments
      tweaks: drop two unneeded assignments
      tweaks: drop two unneeded wnoutrefresh() calls in the spotlight routines
      tweaks: elide a function that is called just once
      tweaks: elide a function that is too sparse
      tweaks: elide another parameter, relevant in just three menus
      tweaks: elide a now-unused parameter -- it is always FALSE
      tweaks: elide an unneeded call of strlen(), and copy NUL byte with string
      tweaks: elide an unneeded global variable
      tweaks: elide an unneeded parameter, and rename the other
      tweaks: elide an unneeded variable, as there is nothing beyond '*place'
      tweaks: elide an unused parameter, and rename the other and a variable
      tweaks: elide a parameter, by calling the relevant function beforehand
      tweaks: elide a parameter that is relevant for only one menu (Goto Dir)
      tweaks: elide a redundant intermediate function
      tweaks: elide a variable and be more direct, and rename another
      tweaks: elide a variable, and shortcircuit a return
      tweaks: elide a variable, by returning the result directly
      tweaks: elide a wrapper function, by checking a precondition earlier
      tweaks: elide three functions that are called just once
      tweaks: elide three parameters, as they are the same for both calls
      tweaks: elide two ifs for the most likely case, when defaults are allowed
      tweaks: elide two redundant calls of strchr()
      tweaks: exclude a bit of bracketed-paste code from the tiny version
      tweaks: exclude an unneeded fragment of code from the tiny version
      tweaks: exit from the writing loop as soon as the last line is reached
      tweaks: fix twenty typos, in old Changelogs and in some comments
      tweaks: fold translation of all modified keypad keystrokes together
      tweaks: fold two blocks into each other, to elide three overlapping cases
      tweaks: for each version, mention the changes to the PO files last
      tweaks: get rid of a bunch of annoying casts, and thus condense the code
      tweaks: group the exiting routines together, and condense the comments
      tweaks: handle the double escapes directly, instead of going round again
      tweaks: handle two similar things in the same way
      tweaks: implement the anchor routines in a different way
      tweaks: improve a comment, rename a function, and elide a parameter
      tweaks: improve a comment, reshuffle a scroll command, elide a variable
      tweaks: improve four comments
      tweaks: improve several comments, and rewrap two lines
      tweaks: improve some comments, and reshuffle an assignment
      tweaks: improve some comments and whitespace, and reshuffle a few lines
      tweaks: improve three comments, drop one, and unwrap a line
      tweaks: improve two comments, and reshuffle some lines for conciseness
      tweaks: invert a condition, to have two clauses in a more logical order
      tweaks: invert a condition, to see the similarity between the two modes
      tweaks: make an early return for zero matches, and rename a variable
      tweaks: make an error message more accurate and reduce it to its essence
      tweaks: make three hard-bindings of special keys more efficiently
      tweaks: move a copyright notice to a better place, and improve it
      tweaks: move a fragment of code to the one branch that needs it
      tweaks: move a function to a more logical place
      tweaks: move a function to before the one that calls it
      tweaks: move a function to before the one that calls it
      tweaks: move a function, to be in the order in which they are called
      tweaks: move a function to the file where it is used the most
      tweaks: move an 'if', to not call leftedge_for() when not softwrapping
      tweaks: move an initialization function to before the one that calls it
      tweaks: move two functions, to have them in a more logical order
      tweaks: normalize the indentation after the previous change
      tweaks: normalize the indentation after the previous change
      tweaks: normalize the indentation after the previous change
      tweaks: normalize the indentation after the previous change
      tweaks: normalize the indentation after the previous change
      tweaks: order three menu names in the documentation slightly better
      tweaks: plug a leak, by always freeing the full filename  [valgrind]
      tweaks: rake a common statement to the end of the case
      tweaks: recalculate the multiline info just once when doing "Replace All"
      tweaks: reduce the indentation after the previous change
      tweaks: remove an incorrect mention of umask() from a comment
      tweaks: remove an unneeded call of wnoutrefresh()
      tweaks: remove an unneeded cursor movement, and rename a variable
      tweaks: remove an unneeded element from the openfilestruct
      tweaks: remove a redundant cursor movement, remove a redundant condition
      tweaks: remove a superfluous check on the length of the key buffer
      tweaks: remove a superfluous global variable
      tweaks: remove some superfluous conditions
      tweaks: remove three unneeded while loops from two input routines
      tweaks: remove two calls of umask() by specifying permissions directly
      tweaks: remove two redundant conditions, and make a more direct return
      tweaks: remove two superfluous assignments
      tweaks: remove unneeded variables after the previous change
      tweaks: rename a function, and move it to before the one that calls it
      tweaks: rename a function, and move it to before the one that calls it
      tweaks: rename a function, to be more correct
      tweaks: rename a function, to be more general and clearer
      tweaks: rename a function, to be more precise, and reshuffle it
      tweaks: rename a function, to be more precise, and reshuffle some things
      tweaks: rename a function, to better describe what it does
      tweaks: rename a function, to leave the old names behind
      tweaks: rename a function, to match with the boolean that guards it
      tweaks: rename a function, to not shadow a variable, and elide parameter
      tweaks: rename a parameter and a variable, to be more meaningful
      tweaks: rename a struct element, to be shorter and preciser
      tweaks: rename a symbol, and actually use it where it is needed
      tweaks: rename a symbol, away from a double abbreviation
      tweaks: rename a symbol, from a phrase to a noun
      tweaks: rename a symbol, to be more accurate, and reshuffle two lines
      tweaks: rename a symbol, to better suit its purpose, and reduce its scope
      tweaks: rename a variable, and condense a comment
      tweaks: rename a variable, and normalize the indentation
      tweaks: rename a variable, and reduce the scope of two others
      tweaks: rename a variable, for more contrast with the function name
      tweaks: rename a variable, for shortness and contrast
      tweaks: rename a variable, improve a comment, and reshuffle a few things
      tweaks: rename a variable, to avoid overrepetition of 'backup'
      tweaks: rename a variable, to better describe what it holds
      tweaks: rename a variable, to better fit related ones
      tweaks: rename a variable, to make more sense
      tweaks: rename a variable, to not refer to a row as a "line"
      tweaks: rename one of the flag symbols, to be clearer
      tweaks: rename two functions and a variable, and improve two comments
      tweaks: rename two functions, and rename and reshuffle a parameter
      tweaks: rename two functions, to better indicate what they do
      tweaks: rename two header files, to be distinct and not an abbreviation
      tweaks: rename two labels, for brevity
      tweaks: rename two parameters, away from abbreviations
      tweaks: rename two parameters, away from an abbreviation
      tweaks: rename two parameters, to be more fitting
      tweaks: rename two variables, and reduce the scope of a third
      tweaks: rename two variables, away from abbreviations
      tweaks: rename two variables, to avoid a repetitive prefix
      tweaks: rename two variables, to be shorter and without abbreviations
      tweaks: reshuffle a bit of code, to elide an #ifndef
      tweaks: reshuffle a condition, for symmetry
      tweaks: reshuffle a condition, to avoid a repetition of code
      tweaks: reshuffle a condition, to make a little more sense
      tweaks: reshuffle a declaration and six calls of free(), to avoid a leak
      tweaks: reshuffle a few lines, and remove a few unneeded comments
      tweaks: reshuffle a few lines, for conciseness
      tweaks: reshuffle a few lines, to elide an 'if' from the most common path
      tweaks: reshuffle a fragment of code, to elide a 'goto'
      tweaks: reshuffle an assignment, for conciseness, and rename a variable
      tweaks: reshuffle and trim a comment, and remove unneeded pair of braces
      tweaks: reshuffle a statement, to have major initialization in nano.c
      tweaks: reshuffle some code, to avoid needlessly calling a function
      tweaks: reshuffle some conditions, to straighten the logic
      tweaks: reshuffle some lines, for esthetics
      tweaks: reshuffle some lines, to better separate the three cases
      tweaks: rewrap a few lines in old news items, for more balanced lines
      tweaks: separate a symbol from its definition by two spaces
      tweaks: shorten an error message, to be appropriate in all situations
      tweaks: shorten the name of a symbol, to match its bindable function
      tweaks: simplify an error message, by mentioning just the main point
      tweaks: simplify the counting of characters in a section
      tweaks: skip the conversion to multibyte for plain ASCII codes
      tweaks: slightly improve a comment and the ordering of some lines
      tweaks: slightly improve the grouping of shortcuts in some help texts
      tweaks: three escapes is the same as either zero escapes or one escape
      tweaks: trim an ASCII case, as the function is called only for UTF-8
      tweaks: trim some oververbose comments -- they overshadow the code
      tweaks: uniformize some old translator credits
      tweaks: update a translator hint, and add another
      tweaks: update three translator hints, add two, and frob three strings
      tweaks: use a better symbol than 'ERR' to signify a valid hex digit
      tweaks: use knowledge of Unicode to skip the general multibyte conversion
      tweaks: use three switches instead of cascading ifs, for brevity
      undo: choose the proper x positions to place the cursor and rejoin lines
      undo: when undoing a line cut, place the cursor back where it was
      usage: unabbreviate option arguments where possible
      verbatim: show an error message when an invalid Unicode code is entered
      verbatim: turn bracketed-paste mode off while waiting for input

Marco Diego Aurélio Mesquita (4):
      bindings: hard-bind the bookmark functions to M-Ins and M-PgUp/M-PgDn
      display: support the position indicator also when --softwrap is used
      files: make the M-F (New Buffer) toggle non-persistent
      new feature: bindable functions for toggling and jumping to "bookmarks"

Michalis Kokologiannakis (3):
      files: improve the backup procedure to ensure no data is lost
      tweaks: adjust some indentation after the previous change
      tweaks: move the backup code to a separate function

Pedro Victor de Brito Cordeiro (1):
      tweaks: make parameter names in prototypes match those in the definitions

Ryan Westlund (2):
      syntax: go: highlight the chan keyword, and the special +build comment
      syntax: haskell: new file -- coloring rules for Haskell programs


Changes between v4.8 and v4.9:
------------------------------

Benno Schulenberg (209):
      bindings: remove the translation of ^H to Backspace on the BSDs
      build: fix compilation for --enable-tiny --enable-justify
      build: restore non-UTF8 fallbacks, to allow compiling with --disable-utf8
      build: update the conditional placement of the "Go To Line" menu item
      bump version numbers and add a news item for the 4.9 release
      chars: optimize a function for the most common blanks: space and tab
      copyright: update to the current year for significantly changed files
      cutting: let M-T cut a trailing empty line, but not nothing at all
      cutting: with --cutfromcursor, allow ^K to cut the penultimate empty line
      display: do not show a "[" double-width placeholder when softwrapping
      display: keep the help items aligned, by not writing too many characters
      docs: improve the descriptions of --softwrap and 'set softwrap'
      docs: mark bracketed pasting as done in the TODO list
      docs: mention that ^[ (Esc) is unbindable, and explain why
      docs: remove the note saying that nanorc files must be in Unix format
      docs: trim some TODO items, and condense several others
      docs: update the form of an option, --suspendable / 'set suspendable'
      docs: update the missed occurrences of --suspendable / 'set suspendable'
      feedback: give a clearer message when trying to justify an empty region
      feedback: make sure that a later message can overwrite a short warning
      files: be consistent in which code means "New File"
      files: don't check uninitialized memory when writing new file  [valgrind]
      files: when piping, always pipe whatever was cut to the external command
      gnulib: update to its current upstream state
      help: do not break a line inside the 17-column keystrokes area
      help: increase the minimum help-text width from 32 to 40 columns
      input: accommodate silly emulators that have LF instead of CR in a paste
      input: after reallocating a string, do not write to its old address
      input: allocate sufficient bytes for entering a Unicode codepoint
      input: keep a multibyte character together during verbatim entry
      justify: do not copy too many bytes when trimming leading whitespace
      justify: do not crash when the user attempts to justify an empty region
      justify: do not take an empty line as template for first-line indentation
      justify: give the first line of a marked region its proper indentation
      justify: never break a line in leading whitespace
      justify: restore a region properly when it was marked backwards
      justify: skip over blanks after the region, to not skew the indentation
      justify: skip over in-line whitespace only, not over leading whitespace
      justify: trim prefixed whitespace when justifying a marked region
      justify: trim the leading blanks of a marked region at the right moment
      justify: when appropriate, move end point of marked region forward
      justify: when the cursor is at the left edge, keep it there
      locking: do not open an empty buffer when respecting the first lock file
      moving: do not put the cursor at end-of-line when in a help text
      options: rename --suspend to --suspendable, to make more sense
      prompt: insert a burst of bytes in one go instead of characterwise
      rcfile: allow alternate line endings in nanorc files
      rcfile: do not allow a regex for name, header, or magic to be empty
      rcfile: don't store a coloring rule before it is complete
      rcfile: rename bindable function 'suspendenable' to 'suspendable'
      rcfile: when a start= is not matched with an end=, abandon the whole rule
      rcfile: when finding a mistake, skip the rest of the line
      shutdown: don't refer to an open file when there aren't any
      softwrap: when typing goes beyond the bottom row, scroll just one row
      syntax: nanorc: colorize 'rawsequences', not the obsolete 'rebindkeypad'
      syntax: spec: add two missing % signs, and colorize also "%triggerprein"
      syntax: spec: colorize the date and author of changelog items differently
      syntax: spec: drop invalid parentheses after "Summary"
      tweaks: abort in three situations that should never occur
      tweaks: add a COUPLE_END undo item a bit later, instead of updating it
      tweaks: add a different helping variable
      tweaks: add a supporting variable, in order to condense some statements
      tweaks: add calls of die() for five theoretical programming mistakes
      tweaks: adjust some whitespace, reshuffle two ifs, and remove two braces
      tweaks: adjust the indentation after the previous change
      tweaks: always determine the second lead, to simplify the rewrap call
      tweaks: avoid a complaint about uninitialized memory  [valgrind]
      tweaks: call add_undo() before the character is actually added
      tweaks: change a function to return the name of the lock file on success
      tweaks: change a function with two possible results to boolean
      tweaks: change an integer to a short, and reshuffle it for better packing
      tweaks: change another function with two possible results to boolean
      tweaks: check for a starting quote in one place instead of three
      tweaks: combine two ifs into one
      tweaks: condense a comment, reshuffle conditions, and remove unwanted one
      tweaks: condense a fragment of code
      tweaks: condense two fragments of code
      tweaks: convert integers to bytes in one place instead of two
      tweaks: copy and store a deleted character in a conciser manner
      tweaks: correct a typo, improve two indentations, and rewrap a line
      tweaks: correct two typos in a changelog, and drop a doubled word
      tweaks: create an undo item earlier, and discard it when needed
      tweaks: don't bother reallocating the line data when undoing a line join
      tweaks: do some text alignments properly: with spaces, not tabs
      tweaks: drop a check for something that will not occur
      tweaks: drop two comments that contain variable names
      tweaks: elide a function call, by copying a byte directly
      tweaks: elide an intermediate copy of a character during injection, twice
      tweaks: elide an intermediate copy of an added character
      tweaks: elide a parameter, and rename a variable
      tweaks: elide a supporting variable, to make four loops slightly faster
      tweaks: elide a variable and an unneeded iteration
      tweaks: elide one variable and three gotos
      tweaks: elide three unneeded #defines
      tweaks: elide two variables and their two assignments
      tweaks: exclude a function when compiled without spell-checking support
      tweaks: extend the undo data for deleting and backspacing more directly
      tweaks: factor out a three-line condition into a separate function
      tweaks: frob a statement, rewrap two lines, and remove a pair of braces
      tweaks: frob two statements, condense another, and add a comment
      tweaks: highlight keystrokes in the documentation more consistently
      tweaks: improve four comments, and condense two fragments of code
      tweaks: improve three comments, and reshuffle two declarations
      tweaks: improve two comments
      tweaks: improve two comments, and remove an unneeded one
      tweaks: inject the entire burst of bytes at once into the edit buffer
      tweaks: instead of swapping the end points later, assign them correctly
      tweaks: invert the logic of a symbol, to make more sense
      tweaks: make prompt-bar input more similar to edit-buffer input
      tweaks: make two conditions more direct, and thus elide two functions
      tweaks: mesh two bits of code together
      tweaks: move a function to after the one that it calls
      tweaks: move a function to before the one that calls it
      tweaks: move a function to before the one that calls it
      tweaks: move a function to its proper place in the order of things
      tweaks: move a function to where it is used
      tweaks: move another function to where it is used
      tweaks: move some definitions closer to where they are used
      tweaks: move two functions to before the ones that call them
      tweaks: normalize a translator hint, update one, and add another
      tweaks: normalize the indentation after the previous change
      tweaks: normalize the indentation after the previous change
      tweaks: normalize the indentation after the previous two changes
      tweaks: pull the NUL-terminating of a string into a function
      tweaks: rearrange a case item, so that PASTE is always after CUT
      tweaks: rearrange some conditions, for compactness
      tweaks: relocate a function to before its callers
      tweaks: relocate eleven functions to before they are called
      tweaks: remove a now-unused helper function
      tweaks: remove an unneeded indirection
      tweaks: remove a redundant assignment
      tweaks: remove a redundant statement, a spurious reference to 'cutbottom'
      tweaks: remove a superfluous assignment, and reshuffle a call
      tweaks: remove non-UTF-8 code from three more functions
      tweaks: remove some redundant filtering, and thus elide a parameter
      tweaks: remove some unneeded braces, not used elsewhere either
      tweaks: remove two redundant case labels
      tweaks: remove two superfluous checks
      tweaks: remove two superfluous conditions
      tweaks: rename a constant, and rename and relocate a function
      tweaks: rename a function, and condense a few comments
      tweaks: rename a function, and split a variable into two separate ones
      tweaks: rename a function, to be more fitting, and improve some comments
      tweaks: rename a function, to remove an obscuring abbreviation
      tweaks: rename another function, to remove the obscuring abbreviation
      tweaks: rename a parameter and a variable, and reword two comments
      tweaks: rename a symbol, to match the corresponding renamed option
      tweaks: rename a variable, and add a helping one
      tweaks: rename a variable, and reshuffle a declaration
      tweaks: rename a variable, away from a single letter
      tweaks: rename a variable, away from a single letter
      tweaks: rename a variable, for aptness
      tweaks: rename a variable, reshuffle an assignment, and change a code
      tweaks: rename a variable, to be a bit clearer
      tweaks: rename a variable, to get out of the way of a later rename
      tweaks: rename a variable, to not be a substring of a function name
      tweaks: rename four more functions, to get rid of an abbreviation
      tweaks: rename four parameters, to be more distinct and telling
      tweaks: rename four variables, to be a bit more telling
      tweaks: rename to the same name two variables that have the same role
      tweaks: rename two elements of an undo record, to be more telling
      tweaks: rename two functions, for shortness
      tweaks: rename two functions, to match the style of others
      tweaks: rename two more elements of an undo record, for symmetry
      tweaks: rename two more functions, to match the style of others
      tweaks: rename two more variables, to harmonize with two others
      tweaks: rename two parameters, to not overlap with other names
      tweaks: rename two symbols, to be more precise
      tweaks: rename two variables, and frob four comments
      tweaks: rename two variables, and reshuffle a few things
      tweaks: rename two variables, for distinctiveness
      tweaks: rename two variables, to be different or for more contrast
      tweaks: rename two variables, to harmonize with two others
      tweaks: rename two variables, to suit both the marked and unmarked case
      tweaks: reorder a case item, to have SPLIT_BEGIN always before SPLIT_END
      tweaks: reshuffle a condition, for compacter code
      tweaks: reshuffle a condition, for compactness
      tweaks: reshuffle a few declarations and assignments
      tweaks: reshuffle an assignment and a free()
      tweaks: reshuffle some code, in preparation for improving it
      tweaks: reshuffle some stuff, to have related things together
      tweaks: reshuffle the setting of the starting point of a cut
      tweaks: reshuffle the trimming of leading whitespace, for compactness
      tweaks: reshuffle two declarations plus a fragment of code
      tweaks: simplify the undoing and redoing of an <Enter>
      tweaks: strip a parameter that is equivalent to 'openfile' for both calls
      tweaks: strip a parameter that is TRUE for both calls
      tweaks: swap the use of 'head' and 'tail' for CUT and PASTE undo items
      tweaks: trim an unnecessary detail from an error message
      tweaks: unabbreviate the name of a variable
      tweaks: unwrap four lines, and use explicit codes where possible
      tweaks: update several comments after the previous changes
      tweaks: update some comments after the previous changes
      tweaks: use a symbol instead of a number, and drop two unneeded casts
      tweaks: use spaces when aligning things, not tabs
      tweaks: use the variable that suits 'END' better
      tweaks: weld two fragments together, twice, by eliding an unneeded 'if'
      tweaks: when appropriate, move starting point of justified region back
      tweaks: when extending the marked region, include also exotic blanks
      tweaks: when undoing an addition or redoing a deletion, do not reallocate
      undo: do not mark the buffer as modified when pasting back nothing
      undo: do not try to copy a cutbuffer that is NULL
      undo: do not try to paste back an empty cutbuffer
      undo: for an automatic hard-wrap, store the correct previous buffer size
      undo: store the cursor row, for redoing filtering & justification better
      undo: treat a cut-until-end-of-buffer like a backward marked region
      undo: use the correct original fusion point when unjoining two lines
      undo: when undoing a paste or an insertion, remove an added magic line
      usage: improve the description of --softwrap

Neal Gompa (1):
      syntax: spec: add some keywords that were added in RPM 4.15 and 4.13

Saagar Jha (1):
      rcfile: fix an out-of-bounds read on empty lines


Changes between v4.7 and v4.8:
------------------------------

Benno Schulenberg (166):
      bindings: allow to bind shifted Meta+letter combinations with Sh-M-X
      bindings: allow to rebind also ^`, although it is synonymous with ^Space
      bindings: do not show the Full-Justify keystroke when in View mode
      bindings: force the first letter in a key name to uppercase
      build: exclude bracketed pasting from the tiny version
      build: exclude option '-g' when configured without browser and help
      build: exclude the escape sequences for F13...F16 from the tiny version
      build: fix compilation for --enable-{tiny,help,multibuffer}
      build: restrict the use of --with-slang to together with --enable-tiny
      bump version numbers and add a news item for the 4.8 release
      copyright: update the years for significantly changed files
      copyright: update the years for the FSF
      display: adjust line and column count upon a resize also when using Slang
      display: clear the help lines before a briefly shown warning
      display: don't let a message write over the second help line
      display: ensure the guiding stripe can be shown when not softwrapping
      display: exclude a bit of feedback from the tiny version
      display: show the cursor during suspension also when built with Slang
      display: skip zero-width characters on a Linux console, to avoid a mess
      docs: add a FAQ item about a self-compiled nano not reading /etc/nanorc
      docs: document the new -f/--rcfile option
      docs: document the new Sh-M-X format for binding <Shift+Meta+letter>
      docs: for the alternative bindings, rebind ^C only in the main menu
      docs: improve the description of which rc-files are read during startup
      docs: mention in the FAQ that auto-indentation is suppressed when pasting
      docs: mention that -D/--boldtext gets overridden by some nanorc options
      docs: put the three new behaviors in a bulleted list, to catch the eye
      docs: stop saying that 'set fill' enables hard-wrapping -- it does not
      docs: use more generally available arrows in the cheatsheet
      feedback: ask a clearer question when a valid lock file is encountered
      feedback: report Ctrl+Alt keystrokes as unbindable
      feedback: restore a message that can occur in help viewer or file browser
      files: alert the user afterward when an overwritten file is being edited
      files: revert the previous commit, as the extra warning is annoying
      files: warn doubly when the user is about to overwrite an existing file
      files: write a lock file also for a new file and when the name changed
      gnulib: update to its current upstream state
      help: don't waste the last column in the help viewer on narrow terminals
      help: increase the minimum help-text width from 24 to 32 columns
      help: prevent double spaces from protruding across the right edge
      help: when a key description wraps, indent its wrapped part
      input: consume and ignore the raw escape sequences for F17 to F24
      input: correct the escape sequence for PageUp/PageDown on Eterm/Urxvt
      input: Ctrl+arrow is "Esc O x" on Eterm, as on rxvt -- not "Esc o x"
      input: discard partial sequences that Slang produces for F17 to F24
      input: do not auto-indent when something is pasted into nano from outside
      input: don't discard the first keystroke after a resize when using Slang
      input: filter out Ctrl+Meta keystrokes, as they can never be shortcuts
      input: ignore bracketed pastes in help viewer and file browser
      input: ignore modifiers on a VT while executing a macro or a string bind
      input: prevent unintentional marking of text for shifted Meta keystrokes
      input: read in an external paste in one go, to allow undoing with one M-U
      input: recognize the raw escape sequences for F13 to F16 on xterm too
      locking: accept a minimal amount of data, enough for PID plus username
      locking: avoid crashing when there is a problem writing the lock file
      locking: check two magic bytes, to verify that it is a lock file
      locking: do not write a lock file when in view mode
      locking: when a lock file is unreadable, open the file itself anyway
      locking: when finding a lock file at startup, quit when user cancels
      new feature: allow specifying a custom nanorc file on the command line
      pasting: retain the mark's position when it was set at the cursor
      prompt: for a Yes-No-All, accept the first character of an external paste
      rcfile: do set the meta flag for plain <Meta+ASCII> combinations
      rcfile: require "bright", "start=", and "end=" to be in lowercase too
      rcfile: unbind keys by their key code instead of by their key string
      softwrap: suppress the guiding stripe on unaffected chunks
      speller: avoid messing up the screen when an unknown locale is used
      suspension: put in an extra terminal-initialization call for Slang
      syntax: nanohelp, nanorc: colorize the Sh-M-X format as a valid key name
      syntax: nanorc: colorize all-lowercase Meta key binds as valid too
      tweaks: add a little change that was overlooked in the previous commit
      tweaks: add an error message for something that should never occur
      tweaks: adjust or reword a few items in the FAQ
      tweaks: adjust the indentation after the previous change
      tweaks: allocate the lock data only when ready to write them
      tweaks: avoid analyzing the key string when the target key code is known
      tweaks: avoid determining the key code from the key string twice
      tweaks: avoid fiddling with the keybuffer when it's not needed
      tweaks: comment fully, so that all handled escape sequences are findable
      tweaks: condense a fragment of code
      tweaks: condense five more fragments of repetitious code
      tweaks: condense three comments to one, and do the masking more directly
      tweaks: condense three fragments of repetitious code
      tweaks: condense two comments, and reshuffle an #endif
      tweaks: correct a comment
      tweaks: correct a couple of comments about escape sequences
      tweaks: correct the description of what nano writes into the lock file
      tweaks: delete some fragments of code that have become irrelevant
      tweaks: do not leak a file descriptor when fdopen() fails
      tweaks: don't bother including Haiku escape sequences in the tiny version
      tweaks: don't enable bracketed pasting when not handling such pastes
      tweaks: drop a message that will never be seen
      tweaks: drop an unneeded call of keypad() -- we never read from topwin
      tweaks: drop a pointless suffix from two function names
      tweaks: elide a function that has become too small for its two calls
      tweaks: elide a helper function, in preparation for an improvement
      tweaks: elide an 'if', by moving the relevant code to a better place
      tweaks: elide a small function, as it's in fact needed just once
      tweaks: elide a somewhat costly call by remembering some state
      tweaks: elide a variable, and rename its sister
      tweaks: elide three checks of a shortcut's meta flag
      tweaks: ensure that editor name and user name are NUL terminated
      tweaks: exclude an unneeded fragment of code from the tiny version
      tweaks: exclude two unneeded fragments of code from the tiny version
      tweaks: free two strings as soon as they are no longer needed
      tweaks: frob a couple of indentations and white lines
      tweaks: fuse two nearly identical functions into a single one
      tweaks: gather four calls that are always done together into a function
      tweaks: harmonize the amount of lock data that we read and write
      tweaks: improve a comment by indirectly referring to the ncurses docs
      tweaks: in comments, reword "titlebar" and "statusbar" to two words each
      tweaks: initialize three booleans straightaway, when they are declared
      tweaks: initialize three more booleans straightaway, at declaration
      tweaks: judge from the key code itself whether it is a Meta keystroke
      tweaks: make a couple of comments more precise
      tweaks: move a function to after the one that it calls
      tweaks: move a function to be before the ones that call it
      tweaks: move a function to before the one that calls it
      tweaks: move a function to related ones, and after one that it calls
      tweaks: move a function to right before the one that calls it
      tweaks: move another function to after the one that it calls
      tweaks: move another function to before the one that calls it
      tweaks: move another function, to group the deleting ones together
      tweaks: move three functions to the file where they are mainly used
      tweaks: rearrange a few global variables, to group things better
      tweaks: recompute the wrapping point just once
      tweaks: reduce the scope of a variable, and reshuffle a declaration
      tweaks: reduce the scope of two constants and of four variables
      tweaks: reformat a comment, and resuffle a line to match byte order
      tweaks: remove a feedback message that is never shown
      tweaks: remove a redundant call, as there is nothing to free there
      tweaks: remove a superfluous check
      tweaks: remove some superfluous conditions for rewriting a lock file
      tweaks: remove the now-unneeded code related to bracketed pasting
      tweaks: remove the now-unused meta flag from 'keystruct'
      tweaks: remove two superfluous assignments, and rename a variable
      tweaks: rename a function and its parameter, to be more fitting
      tweaks: rename a function, to be a bit more expressive
      tweaks: rename a function, to make it not contain the name of another
      tweaks: rename a parameter and invert its logic, and correct a comment
      tweaks: rename five variables, away from a single letter
      tweaks: rename two functions, to make more sense
      tweaks: rename two parameters, to be more general and to sound shorter
      tweaks: rename two variables, to make more sense
      tweaks: renumber some FAQ items in preparation for adding another
      tweaks: reorder two symbols
      tweaks: reshuffle some assignments for a return value
      tweaks: reshuffle some declarations
      tweaks: reshuffle some declarations, and expand a few variable names
      tweaks: reshuffle some lines, to avoid tallying the menus when not needed
      tweaks: reshuffle some lines, to group all ignored keystrokes together
      tweaks: reshuffle three lines, to make the grouping tighter
      tweaks: reshuffle two lines, to do the linking first, then the content
      tweaks: reword two comments, and rewrap another
      tweaks: rewrap a comment and a line, and reshuffle a fragment of code
      tweaks: rewrap two lines, for consistency with similar lines
      tweaks: rewrite the same file name into the lock file as the first time
      tweaks: slightly condense a function by conflating case
      tweaks: stop recognizing escape sequences for a key without meaning
      tweaks: suggest a few more alternative key bindings and unbindings
      tweaks: take just one shot at reading the lock file, and correct a type
      tweaks: trim some excessive error checking and key-name frobbing
      tweaks: tumble three conditions, for consistency in comparisons
      tweaks: unabbreviate "argument" in the documentation
      tweaks: use a simple subtraction instead of a function call
      usage: improve the description of --restricted and --quickblank

Brand Huntsman (2):
      input: beep when invalid key is pressed at yesno prompt or in linter menu
      input: recognize the start and stop sequences of a bracketed paste


Changes between v4.6 and v4.7:
------------------------------

Benno Schulenberg (39):
      build: add the uploading of PDF and cheatsheet to the release script
      build: avoid three compiler warnings when using gcc-9.2 or newer
      build: fix compilation for --enable-tiny --enable-wrapping
      build: fix compilation on macOS, where 'st_mtim' is unknown
      build: fix compilation when configured with --disable-justify
      bump version numbers and add a news item for the 4.7 release
      display: don't color the space that separates line numbers from text
      docs: add or improve the 'description' meta tag in the two HTML pages
      docs: add the 'lang' attribute in the right place to the two HTML pages
      docs: mention that all keywords in a nanorc file should be in lowercase
      docs: mention that a negative number after "+" counts from the end
      gnulib: update to its current upstream state
      input: make <Tab> indent only when mark and cursor are on different lines
      justify: distinguish between tabs and spaces when comparing indentation
      justify: treat consecutive indentations that look the same as the same
      linter: beep when trying to go beyond first or last message
      rcfile: accept also function names and menu names only in lowercase
      rcfile: accept only keywords in all lowercase, for speed of comparison
      rcfile: demand that function 'exit' is bound in the file browser
      syntax: nanohelp: colorize also ^/ as a possible keystroke
      syntax: sh: recognize shell rc files also in dedicated directories
      tweaks: avoid using strlen() where it is not needed
      tweaks: drop M-Space and ^Space from the browser's key list
      tweaks: improve two comments and the ordering of some operands
      tweaks: move three functions to the file where they are used
      tweaks: optimize the trimming of trailing whitespace
      tweaks: remove a stray space
      tweaks: rename a function, to get out of the way for another rename
      tweaks: rename a function, to get rid of a useless suffix
      tweaks: reshuffle a few lines, for brevity or speed or consistency
      tweaks: reshuffle a few lines, for symmetry with the preceding function
      tweaks: reshuffle a fragment of code, for efficiency
      tweaks: reshuffle and rename a few things, to elide duplication
      tweaks: reshuffle an item, to avoid a lone 'else'
      tweaks: reshuffle two declarations, for compactness
      tweaks: slightly streamline the search for a possible wrapping point
      tweaks: trim or adjust some whitespace in HTML, and add two keywords
      tweaks: unwrap a few lines, and move some strings to among their peers
      wrapping: never break in the quoting part nor in the indentation part


Changes between v4.5 and v4.6:
------------------------------

Benno Schulenberg (128):
      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 viewer
      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 numbers
      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 listed
      docs: mention that 'hunspell' is now the first default spelling program
      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 anything
      files: distinguish between read error and write error when prepending
      files: don't mention the name of the temp file when reading goes wrong
      files: when opening a file for copying, it should NOT be created
      formatter: accept the formatted result also upon a nonzero exit status
      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 fails
      rcfile: allow binding also F17...F24
      rcfile: process extensions to file-matching commands straightaway
      restored feature: a per-syntax 'fixer' command that processes the buffer
      softwrap: when switching to another buffer, re-align the starting column
      speller: prefer 'hunspell' over 'spell', because it can handle UTF-8
      speller: when 'spell' is not found, try running 'hunspell -l' instead
      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 later
      syntax: javascript: colorize also special values 'null' and 'undefined'
      syntax: javascript: colorize the boolean values 'true' and 'false' too
      syntax: nanorc: colorize all arguments of 'fixer' and 'linter' as valid
      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 line
      tweaks: add a helper function without the ubiquitous NULL argument
      tweaks: add a local variable, for clarity, to not preuse another one
      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 another
      tweaks: adjust two comments, to better fit the actual functions
      tweaks: avoid setting and resetting a variable when there is no need
      tweaks: avoid three unneeded calls of umask() in the normal case
      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 function
      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 anyway
      tweaks: elide a duplicate opening of the existing file when prepending
      tweaks: elide a function call for the plain ASCII case
      tweaks: elide another two calls of umask(), and rename two variables
      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 assignment
      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 comments
      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() function
      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 general
      tweaks: rename a function, and elide a parameter that is always NULL
      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 linestructs
      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 comment
      tweaks: reshuffle some declarations, and rename a variable
      tweaks: reword an undo/redo string that was overlooked during the rename
      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 section
      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 clarity
      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 operation
      utils: don't accept NULL for the string to be copied

Jeroen Roovers (1):
      syntax: gentoo: highlight the BDEPEND variable as well


Changes between v4.4 and v4.5:
------------------------------

Benno Schulenberg (60):
      bindings: add a dedicated keycode for <Tab> for when a region is marked
      bump version numbers and add a news item for the 4.5 release
      color: don't concatenate an absolute path with the working directory
      docs: add two examples of the 'tabgives' command to the sample nanorc
      docs: describe the new syntax-specific 'tabgives' command
      docs: mark the undoing of justifications as done in the TODO list
      docs: mention that gcc must be at least version 5.0
      gnulib: update to its current upstream state
      mouse: make the clickable width of menu items more consistent
      new feature: a 'tabgives' command to define what the Tab key produces
      search: after search-at-startup, store the column (for vertical movement)
      tweaks: add a translator hint, and correct two others
      tweaks: add some translator hints, be more precise on permissible length
      tweaks: add two hints for translators, to try and help avoid mistakes
      tweaks: adjust indentation after previous change, reshuffle declarations
      tweaks: avoid a comparison between signed and unsigned  [coverity]
      tweaks: avoid leaking memory when finding an invalid string  [coverity]
      tweaks: avoid recomputing a maximum value every time round the loop
      tweaks: don't burden all menus with something meant for the WriteOut menu
      tweaks: elide a function from a non-UTF8 build
      tweaks: elide two multiplications with something that is always 1
      tweaks: frob a few comments
      tweaks: improve a bunch of comments, and reshuffle some declarations
      tweaks: improve a handful of comments, and reduce the needed padding
      tweaks: mark as 'const' a parameter that takes fixed strings  [coverity]
      tweaks: meld two calls of free() into a single one, to elide an 'else'
      tweaks: move a fragment of common code into the appropriate function
      tweaks: move a function to a better file, to be amongst its kind
      tweaks: move a function to before its callers and next to its kind
      tweaks: move two functions to after the ones that they call
      tweaks: remove some timing code that has served its purpose
      tweaks: remove two superfluous macros, as sizeof(char) is always 1
      tweaks: rename a function, to be a bit more fitting
      tweaks: rename another type, again to better fit the general pattern
      tweaks: rename another type, to also better fit the general pattern
      tweaks: rename another variable, for a better fit
      tweaks: rename a type, to better fit the general pattern
      tweaks: rename a variable, normalize a comment, and reshuffle a free()
      tweaks: rename a variable, to be more compact
      tweaks: rename three variables, for contrast and more sense
      tweaks: rename three variables, for more contrast
      tweaks: rename three variables, to better indicate what they hold
      tweaks: rename two variables, away from single letters
      tweaks: rename two variables, to better describe what they contain
      tweaks: reshuffle a fragment, to group some toggles together
      tweaks: reshuffle a line, to group things better
      tweaks: reshuffle some lines, to elide an unneeded assignment
      tweaks: reshuffle some lines, to have the same order as elsewhere
      tweaks: reshuffle two fragments, to group things better
      tweaks: rewrap a line, reshuffle a declaration, and improve some comments
      tweaks: simplify a calculation, as done elsewhere
      tweaks: simplify the determination of a canonical path
      tweaks: sort two keywords strictly alphabetically
      tweaks: speed up determining the width of plain ASCII characters
      tweaks: speed up the counting of the menu entries to be shown
      tweaks: use a more efficient way to skip storing an empty file name
      tweaks: use an early return when there is no tilde
      tweaks: use 'void' in prototypes of parameterless functions  [coverity]
      usage: mark the -J/--guidestripe option plus argument as translatable
      usage: properly align --help output also when it has accented characters

Brand Huntsman (1):
      search: accept a match at start of file when searching from command line

Dirkjan Ochtman (1):
      syntax: rust: add the words reserved in 2018, and remove unreserved ones


Changes between v4.3 and v4.4:
------------------------------

Benno Schulenberg (53):
      browser: draw a bar of spaces only where needed -- for the selected item
      build: exclude the search-at-startup feature from the tiny version
      bump version numbers and add a news item for the 4.4 release
      copying: do not prevent M-6 from copying emptiness into the cutbuffer
      display: blank the status bar on a successful cut or paste
      display: clear the remainder of a row only when there actually is some
      display: don't clear a row beforehand -- just clear the remainder
      display: use a somewhat faster method to clear a row
      display: when linenumbering, correctly spotlight text that spans two rows
      display: where needed, use slow blanking, but elsewhere do it much faster
      docs: change a few URLs over to https, and rewrap a couple of NEWS items
      docs: document the search-at-startup feature (+/string or +?string)
      docs: make the synopsis of --speller and 'set speller' more accurate
      docs: mention the M-N toggle instead of the obsolete M-# one
      docs: slightly reword some of the descriptions around syntax highlighting
      docs: slightly reword the descriptions of most configure options
      docs: stop mentioning the 'unjustify' function, as it no longer exists
      gnulib: update to its current upstream state
      new document: a condensed overview of nano's shortcut keystrokes
      new feature: allow specifying a search string to "jump to" at startup
      rcfile: properly handle an empty syntax before an 'include' statement
      scrolling: don't overscroll when the edit window has just one row
      search: don't wipe the status bar at startup when there was an error
      search: wipe the status bar before searching again (M-W / M-Q)
      syntax: c: allow an underscore in lowercase type names
      syntax: default: colorize bracketed section headers in some config files
      syntaxes: change some unneeded 'icolor' commands to 'color' commands
      syntaxes: recognize .ctp extension as a PHP file, and .cu as a C/C++ file
      syntax: perl: avoid recognizing embedded hash signs as a comment starter
      syntax: perl: avoid upsetting older glibcs with crafty range expression
      syntax: perl: don't color the character after a variable name
      syntax: po: colorize numbers only when they form a self-contained word
      text: copy leading quote characters when automatic hard-wrapping occurs
      tweaks: add a translator hint, to clarify four short words
      tweaks: call the correct lighting function directly when softwrapping
      tweaks: condense some comments, and drop two unneeded initializations
      tweaks: drop two parameters that are no longer needed
      tweaks: improve a comment, and drop a superfluous one
      tweaks: improve a handful of comments
      tweaks: make a function name unique, to not overlap with others
      tweaks: move a call from two different places to a single place
      tweaks: move a function to before the first one that calls it
      tweaks: move a general function to a better place
      tweaks: remove a saving and restoring that has become superfluous
      tweaks: rename a function, to suit better, and reshuffle its parameters
      tweaks: rename a parameter in three functions, to say what it points to
      tweaks: reshuffle an assignment, and trim some excessive blank lines
      tweaks: reshuffle an 'if' out of a function, and rename the function
      tweaks: reword and condense two comments, and correct another
      tweaks: rewrap two lines, and reshuffle some logic to make more sense
      tweaks: shorten two messages that translators tend to make too long
      tweaks: try the allocation of a multidata cache just once per line
      tweaks: when precalculating, allocate all the cache space upfront

Brand Huntsman (3):
      rcfile: for an empty syntax, show the line number of the 'syntax' command
      rcfile: report the correct command location for an invalid 'include'
      search: accept toggles for case and regex when searching at startup


Changes between v4.2 and v4.3:
------------------------------

Benno Schulenberg (235):
      bindings: at a Yes-No prompt, accept also ^N and ^Q for "No"
      bindings: at a Yes-No prompt, accept also ^Y for "Yes"
      bindings: bind the Alt+arrow keystrokes also in non-UTF-8 locales
      browser: don't show a mistaken message when exiting from help viewer
      build: avoid a warning on FreeBSD, OpenBSD, and Alpine
      build: avoid a warning when using --disable-utf8
      build: exclude the ability to open a FIFO from the tiny version
      build: fix compilation on another system
      build: fix compilation when configured with --disable-color
      build: fix compilation when configured with --enable-tiny
      build: move an #include to where it is needed
      build: remove two #includes that don't seem to be needed
      bump version numbers and add a news item for the 4.3 release
      chars: create a dedicated function for getting the length of a character
      chars: redo the speedup for plain ASCII from three commits ago
      chars: speed up case-insensitive searching by roughly one percent
      chars: speed up the determination of length and width for plain ASCII
      copying: let a copy command break a chain of cut or zap commands
      copying: make M-6 do nothing when at end of buffer
      copying: scroll just one line when M-6 is pressed on the bottom row
      cutting: clear the cutbuffer when the previous operation was copying
      cutting: ignore the mark when a word is deleted
      display: properly show all characters in a non-UTF-8 build
      docs: add a light warning to the explanation of --nonewlines
      docs: adjust the wording of the README to be factually correct
      docs: clarify that in nano regexes are extended regular expressions
      docs: mention the default value for 'errorcolor'
      docs: note Brand as the author of the delayed syntax parsing
      docs: note David as author of undoable indenting and undoable justifying
      docs: remove "--" from the default value of 'quotestr'
      docs: say thanks to the Korean translator, and trim a double space
      docs: show double quotes where they are needed
      docs: slightly reword the notice about the changed defaults since 4.0
      feedback: don't clear off possible error messages after a spell check
      feedback: don't try to represent keys outside of the seven-bit range
      feedback: make an error check work also when curses hasn't started yet
      feedback: print helpful message only when data comes from keyboard
      feedback: show a more fitting message when opening a FIFO is interrupted
      feedback: show an appropriate message when reading a file was cut short
      feedback: treat statusline() being called outside of curses mode as a bug
      feedback: when the last line is empty, don't include it in the count
      files: allow a given file to be a special file but not a directory
      files: allow to abort the reading of slow files with Ctrl+C
      files: allow to interrupt the opening of a FIFO for writing with Ctrl+C
      files: allow to interrupt the opening of a FIFO with Ctrl+C
      files: check for writability by the access bits, not by trying to append
      files: don't close a newly-created buffer when it is the only one
      files: don't save the state of the terminal a second time
      files: don't say "Error...: Success" when aborting after resizing
      files: give feedback while waiting for a FIFO to open up
      files: suppress feedback when writing an emergency or temporary file
      files: try matching a syntax after scooping data from standard input
      files: when needed, reconnect the keyboard and reenter curses mode
      gnulib: update to its current upstream state
      help: don't check for confinement when opening a temporary help-text file
      help: don't cycle through the buffers for every resizing step
      help: don't show Alt+Left and Alt+Right when running on a Linux console
      help: make the column for the first keystroke a little wider
      help: write the text directly into a new buffer, without using a tempfile
      justify: remove "--" from the quoting regex, to avoid false paragraphs
      oops: apparently the line numbers in the cutbuffer do matter
      rcfile: at terminating points, verify that a defined syntax is not empty
      rcfile: check for missing color commands only when a syntax is still open
      rcfile: close off a syntax when a non-syntax command is encountered
      rcfile: disallow extending a syntax that is defined in a main nanorc
      rcfile: fully read each included file, so all its syntaxes are seen
      search: stay in the Search menu when trying to Replace in view mode
      softwrap: use smooth scrolling when softwrapping is toggled on
      speller: be more concise and to the point when something goes wrong
      speller: don't crash when the spell-checked tempfile cannot be opened
      speller: ensure that a Shift-selected region is retained
      speller: when something goes wrong with 'sort', do not blame 'spell'
      startup: remove the now-unneeded workaround for a SIGWINCH during input
      startup: resave the terminal's state only when there were no signals
      syntax: po: colorize also escaped hex and octal codes
      syntax: python: avoid miscoloring stuff between two empty strings
      tweaks: add a missing forward declaration of make_new_buffer()
      tweaks: add a pair of braces, to silence a compiler warning
      tweaks: add a warning for something that shouldn't occur
      tweaks: adjust a comment and drop two others, and reshuffle two lines
      tweaks: adjust some indentation after the previous change
      tweaks: adjust some whitespace and rewrap a few lines
      tweaks: adjust the indentation after the previous change
      tweaks: adjust the indentation after the previous change
      tweaks: avoid an unneeded, extra stat() for temporary files
      tweaks: avoid parsing a character twice
      tweaks: be more sparing in redrawing things when exiting from help viewer
      tweaks: change a function to void, to make things more direct
      tweaks: check in a single place for files that should not be opened
      tweaks: close a buffer differently and elide a parameter
      tweaks: condense a comment and reshuffle a couple of lines
      tweaks: condense a couple of comments, and reshuffle a line
      tweaks: condense the setup of the two signal handlers for Ctrl+C
      tweaks: condense two comments, and normalize the whitespace of a label
      tweaks: consistently report failures to fork (and the like) as errors
      tweaks: delete a leftover
      tweaks: delete a now-unused function
      tweaks: delete a now-unused function
      tweaks: don't bother calling mblen() in a non-UTF-8 build
      tweaks: don't bother checking the return value of wait()
      tweaks: don't bother keeping track of whether a squeezed line has shrunk
      tweaks: don't bother renumbering the lines in the cutbuffer
      tweaks: don't bother saving and restoring 'cutbottom' all the time
      tweaks: don't bother to free the content of 'extendsyntax' commands
      tweaks: don't check the user's nanorc file for accessibility twice
      tweaks: drop an unneeded parameter from open_file()
      tweaks: drop a useless tidying-up call, as spelling does not use regexes
      tweaks: drop most of the remaining debugging code, and some timing code
      tweaks: drop some checks that were made redundant by the previous commit
      tweaks: drop two checks that were made redundant by the previous commit
      tweaks: elide a function that is an amalgam of three others
      tweaks: elide a function that is called in just one place
      tweaks: elide a function that is used just once
      tweaks: elide another parameter, and rename the function to match
      tweaks: elide an unneeded, duplicate stat() for the FIFO check
      tweaks: elide an unneeded 'if' and 'break'
      tweaks: elide an unneeded variable
      tweaks: elide a parameter and a return value
      tweaks: elide a pre-processor #else clause, by using braces instead
      tweaks: elide a variable, drop a comment, and remove unneeded braces
      tweaks: elide two unneeded variables
      tweaks: enforce the minimum amount of scrolling in a simpler way
      tweaks: exclude a bug check from the tiny version
      tweaks: exclude another bug check from the tiny version
      tweaks: factor out a fragment of code that is repeated three times
      tweaks: factor out the installing and restoring of the ^C signal handler
      tweaks: improve a couple of comments
      tweaks: improve a handful of comments
      tweaks: improve some comments, reshuffle a line, and rename a variable
      tweaks: include the enabling of SIGINT into the tiny version
      tweaks: invert a condition, in order to return earlier
      tweaks: invert two conditions, in order to elide an extra variable
      tweaks: just mark four rcfile errors for translation, like the others
      tweaks: make better use of two variables, and reshuffle two comments
      tweaks: merge two functions, as the first is called just once
      tweaks: merge two functions, as the one is used only by the other
      tweaks: merge two very similar functions into a single one
      tweaks: move a bit of timing code to where it will be needed
      tweaks: move a function to the file where it is used
      tweaks: move an assignment that is useful only when searching forward
      tweaks: move a syntax check to a better place, to reduce duplication
      tweaks: move the tidying-up-after-a-search to a single exit point
      tweaks: normalize the indentation after the previous two changes
      tweaks: place a function better, and reduce some comments to a single one
      tweaks: put some timing code back into the search function
      tweaks: really don't bother renumbering the lines in the cutbuffer
      tweaks: reduce a bit of mark-adjusting code to its essence
      tweaks: reduce the scope of a variable, and let the compiler zero it
      tweaks: remove a bit of redundant code
      tweaks: remove a check that is no longer relevant
      tweaks: remove a condition that has become superfluous
      tweaks: remove an unneeded "closing" of a syntax after extending it
      tweaks: remove an unneeded setting and unsetting of a flag
      tweaks: remove a superfluous and ineffective assignment
      tweaks: remove a superfluous condition, in three places
      tweaks: remove four unneeded pre-processor directives
      tweaks: remove some unneeded braces, and reshuffle for more symmetry
      tweaks: remove the two remaining handfuls of asserts
      tweaks: remove two more unneeded assignments
      tweaks: remove two unneeded assignments, and improve a comment
      tweaks: remove two unneeded checks for NULL
      tweaks: rename a bunch of variables, to become identical to others
      tweaks: rename a function and a variable, for contrast and variety
      tweaks: rename a function and its parameters, to be more fitting
      tweaks: rename a function, to be clearer and to stop using an old abbrev
      tweaks: rename a function, to be more fitting
      tweaks: rename a function, to better indicate what it does
      tweaks: rename a function, to better suit what it does
      tweaks: rename a parameter and a variable, to be more distinct
      tweaks: rename a struct element, to be distinct
      tweaks: rename a type, for more contrast
      tweaks: rename a type, to make more sense
      tweaks: rename a variable, reduce its scope, and use it consistently
      tweaks: rename a variable, reshuffle declarations, and drop an assert
      tweaks: rename a variable, to be shorter
      tweaks: rename a variable, to better indicate it contains two characters
      tweaks: rename a variable, to better suit its counterpart
      tweaks: rename a variable, to fit a bit better
      tweaks: rename a variable, to fit a little better
      tweaks: rename a variable, to get out of the way of the next commit
      tweaks: rename a variable, to match another with the same meaning
      tweaks: rename a variable, to match the style of its brothers
      tweaks: rename four elements of the holder struct, for more contrast
      tweaks: rename some single-letter variables to the same significant word
      tweaks: rename three variables, to get rid of a suffix or an underscore
      tweaks: rename three variables, to use full words instead of abbrevs
      tweaks: rename two functions, to be simpler
      tweaks: rename two functions, to better describe what they do
      tweaks: rename two functions, to get rid of the "mb" abbreviation
      tweaks: rename two more functions, to be simpler too
      tweaks: rename two parameters, away from single letters
      tweaks: rename two parameters, for more contrast, and elide another
      tweaks: rename two parameters, to differentiate them from function names
      tweaks: rename two variables, and frob some comments
      tweaks: rename two variables, and reshuffle their declarations
      tweaks: rename two variables, away from a single letter
      tweaks: rename two variables, for more contrast
      tweaks: rename two variables, for more contrast with the partition stuff
      tweaks: rename two variables, to be less cryptic
      tweaks: rename two variables, to be unique
      tweaks: rename two variables, to not be abbreviations
      tweaks: reorder some code, to further optimize display_string() for ASCII
      tweaks: reshuffle a bit of code, to be less intertwined
      tweaks: reshuffle a couple of lines and adjust a few comments
      tweaks: reshuffle a few lines, to be more straightforward
      tweaks: reshuffle a few things, partly to make two chunks more alike
      tweaks: reshuffle an assignment, to be able to return earlier
      tweaks: reshuffle some closing and switching to a better place
      tweaks: reshuffle some code to the one place that needs it
      tweaks: reshuffle some lines and frob some comments
      tweaks: reshuffle some lines, to group things more sensibly
      tweaks: reshuffle some lines, to put the most likely candidate first
      tweaks: reshuffle some lines, to reduce duplication
      tweaks: reshuffle two #ifdefs, to avoid an unpaired brace
      tweaks: reuse the install and restore functions for a signal handler
      tweaks: set a boolean directly, instead of using a function call
      tweaks: set a boolean directly, instead of using a function call
      tweaks: sort three translator names better
      tweaks: specifically refer to the manual of GNU grep for more regex info
      tweaks: speed up the counting of characters in mbstrlen()
      tweaks: squeeze excess spaces out of a line in situ
      tweaks: step away one character from the current bracket, not one byte
      tweaks: stop allocating and freeing a holder struct for every cut/paste
      tweaks: stop checking for a NULL result from line_from_number()
      tweaks: stop passing 'cutbuffer' and 'cutbottom' back and forth
      tweaks: switch to the preceding buffer in a cheaper way (when in help)
      tweaks: use a cheaper way to switch between buffers where possible
      tweaks: use a more direct call when a single linestruct is deleted
      tweaks: use a slightly faster function where appropriate
      tweaks: use a symbol instead of zero to refer to standard input
      tweaks: use FALSE for booleans instead of zero
      tweaks: when OR'ing, put the most likely condition first
      usage: make the --help output independent from the terminal's tab size
      zapping: disjoin a zap command from earlier ones when the mark is set
      zapping: use the 'keep_cutbuffer' logic to keep undo items apart

Brand Huntsman (6):
      files: block SIGWINCH while opening a FIFO for reading or writing
      rcfile: compile the color regexes just once
      rcfile: fully parse a syntax file only when needed
      rcfile: store errors and display them when nano terminates
      startup: prevent a crash when no applicable syntax is found
      tweaks: remove an unneeded pre-processor '#else' clause


Changes between v4.1 and v4.2:
------------------------------

Benno Schulenberg (23):
      build: be more specific and avoid committing accidentally changed files
      bump version numbers and add a news item for the 4.2 release
      docs: put the 'set guidestripe' option into its alphabetical position
      options: make --breaklonglines work also when --ignorercfiles is used
      speller: do not crash by trying to free something that cannot be freed
      tweaks: adjust a few comments and some indentation
      tweaks: condense and improve a handful of comments
      tweaks: declare a function as const and let its allocated string leak
      tweaks: drop an unneeded saving and restoring of a variable
      tweaks: elide an unneeded intermediate variable
      tweaks: elide an unneeded parameter, as the function already assumes it
      tweaks: elide an unneeded variable
      tweaks: exclude a bit more code from a single-buffer build
      tweaks: remove an unneeded condition
      tweaks: remove a redundant, enclosed #ifdef
      tweaks: rename a function, to be distinct and fitting
      tweaks: rename another function, to be distinct and fitting
      tweaks: rename a variable, for a little more meaning
      tweaks: rename a variable, to distinguish it from a browser function
      wrapping: add a missing space only when the remainder will be prepended
      wrapping: compute the width of a succeeding line in the correct manner
      wrapping: improve the persistence of the prepending behavior
      wrapping: trim any trailing blanks when cursor goes to next line


Changes between v4.0 and v4.1:
------------------------------

Benno Schulenberg (85):
      bindings: add easier keystrokes for the linenumber and softwrap toggles
      bindings: disallow executing an external command when in view mode
      bindings: recognize the ^W^Y and ^W^V legacy keystrokes again
      bindings: remove the jumpy-scrolling toggle entirely
      build: add gnulib modules to the list of files with translatable strings
      build: add src/cut.c to the list of files with translatable strings
      build: don't do fuzzy matching when merging PO files against the POT file
      build: remove obsolete translations from the PO files after merging
      bump version numbers and add a news item for the 4.1 release
      display: report and catch a bad state, to prevent a possible hang
      docs: for two of the toggles, mention the new instead of the old option
      docs: give the FILES section in the man page its canonical title
      docs: mention that -b is the opposite of -w also in the latter's item
      docs: mention that M-S now toggles softwrap and M-N line numbers
      docs: put paths and filenames in italics, per 'man man-pages'
      docs: remove all mention of --finalnewline, and undefault --nonewlines
      docs: remove the AUTHOR section, per advice from 'man man-pages'
      docs: re-title the temporary section about the changed defaults
      feedback: replace an assert with a check plus error message at startup
      feedback: show a message while executing an external command
      feedback: spare the user a superfluous scaring when trying to exit
      gnulib: update to its current upstream state
      help: don't doubly list toggles that have two keys assigned to them
      indenting, commenting: ensure a partial line stays displayed properly
      justify: correctly compute the number of lines to take, to avoid a crash
      options: make --nowrap override again a contrary nanorc setting
      options: remove -f (--finalnewline); go back to auto-adding this newline
      rcfile: don't break a chain of 'else if'  [scan-build]
      rcfile: read the syntax files in alphabetical order when globbing
      speller: block the resizing signal again during an external spell check
      speller: block the resizing signal also during an integrated spell check
      speller: resizing can happen also when configured with --enable-tiny
      syntax: c: color as a type any lowercase word that ends with "_t"
      syntax: default: color in red also versions 4.x of nano
      syntax: man: add comments, and color all the safe lowercase macros
      syntax: man: anchor macros at start of line, as only then they are valid
      syntax: man: require the dot to be at start of line, not the comment
      syntax: nanorc: colorize also strings preceded by 'start=' or 'end='
      syntax: nanorc: require whitespace both before and after a quoted string
      tweaks: adjust the indentation after the previous change
      tweaks: condense a bit of copying code
      tweaks: consistently use .sp instead of .PP to insert a blank line
      tweaks: do a check up front instead of every time round the loop
      tweaks: don't bother copying the NUL byte -- it is set nine lines down
      tweaks: don't bother reallocating the data when a line gets hard-wrapped
      tweaks: don't bother reallocating the squeezed string, just terminate it
      tweaks: don't bother special-casing non-UTF8 when seeking a character
      tweaks: drop an assignment whose value is never used  [scan-build]
      tweaks: drop two 'const' qualifiers, to silence the compiler
      tweaks: free some memory before a possible error exit  [coverity]
      tweaks: free the copy of a linter message in all cases  [valgrind]
      tweaks: free the result string from an invocation error  [coverity]
      tweaks: initialize a boolean before it is referenced  [valgrind]
      tweaks: put the unblocking of SIGWINCHes in a better place
      tweaks: remove a function that is now unused
      tweaks: remove an unneeded check for NULL and its associated message
      tweaks: remove an unneeded check for NULL  [coverity]
      tweaks: remove an unpaired closing parenthesis from the NEWS file
      tweaks: remove a superfluous check for NULL plus the associated message
      tweaks: remove several unneeded bad-state checks and their messages
      tweaks: rename a cryptic type to something that makes a little sense
      tweaks: rename a function plus parameter, to stay closer to what it does
      tweaks: rename another variable, to be more descriptive
      tweaks: rename another variable, to be more fitting
      tweaks: rename an overshort type to something that makes some sense
      tweaks: rename a variable, to be more distinct and more apt
      tweaks: rename a variable, to be more distinct and more descriptive
      tweaks: rename a variable, to get out of the way for another rename
      tweaks: rename some variables, for more contrast and to match others
      tweaks: rename some variables, to be less repetitious
      tweaks: rename two variables, for more contrast
      tweaks: rename two variables, to be more distinct and more fitting
      tweaks: rename two variables, to make more sense
      tweaks: rename two variables, to match others
      tweaks: reshuffle some lines, condense a comment and drop another
      tweaks: reshuffle some lines, to elide an 'if'
      tweaks: reshuffle two lines, and reword a comment
      tweaks: reword a comment, and drop an unneeded assert
      tweaks: shorten a comment to its essence
      tweaks: shorten and improve some comments, and reshuffle a few lines
      tweaks: simplify a message, and normalize the spelling of another one
      tweaks: stop doing tandem assignments (one passing through the other)
      tweaks: switch back from checking FINAL_NEWLINE to checking NO_NEWLINES
      tweaks: use a signed type for a result that could be negative  [coverity]
      unindent: ensure that a partial line gets displayed properly afterwards

Brand Huntsman (1):
      files: block the resizing signal while reading from an external command

Devin Hussey (1):
      files: initialize a variable before referencing it

Liu Hao (1):
      syntax: c: change the highlighting of preprocessor directives


Changes between v3.2 and v4.0:
------------------------------

Benno Schulenberg (190):
      bindings: change the action of <Alt+Up>/<Alt+Down> 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 <Bsp> 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 <Shift+Ctrl+Delete>
      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 <Backspace> and <Delete>
      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 <Alt+Up> and <Alt+Down> 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 <Escape>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


======================================================================
For older changes, see in https://ftp.gnu.org/gnu/nano/nano-5.0.tar.xz
======================================================================
