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


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

Benjamin Mintz (1):
      syntax: python: do not highlight 'print' and 'exec' in Python 3

Benno Schulenberg (87):
      bindings: allow using <Enter> to exit from the linter
      bindings: allow using ^X to exit from the linter
      bindings: drop M-| as a keystroke for 'cutwordleft' -- set it free again
      bindings: in tiny version with help, don't show unfunctional M-◀ and M-▶
      bindings: make <Alt+Up> and <Alt+Down> work also on a Linux console
      bindings: make the linter separately accessible, through M-B by default
      bindings: make the Shift+arrow keys work by default on more terminals
      bindings: no longer bind F13 and F14 and F15
      bindings: recognize ASCII DEL as backspace also in viewer and browser
      bindings: recognize <Ctrl+Shift+Delete> also on a Linux console
      bindings: rename 'prevhistory' to 'older' and 'nexthistory' to 'newer'
      bindings: stop binding <Bsp> to do_backspace() in the browser menu
      bindings: when implanting a string, make sure to use positive values
      build: exclude scrolling functions only from tiny version without help
      build: fix compilation again when configured with --enable-tiny
      build: fix compilation when configured with --disable-multibuffer
      build: verify that --enable-tiny compiles before allowing a release
      bump version numbers and add a news item for the 3.1 release
      debug: report for which modified editing keys ncurses has no keycode
      display: correct a mistaken label in the help lines of the browser
      display: ensure that the help lines are shown when in linting mode
      display: let the title bar show when nano is in linting mode
      display: show the cursor also in a help text (when --showcursor is used)
      display: use a different color when showing a linting message
      docs: document the slightly changed workings of the --view option
      docs: give suggestions for alternative key bindings in the sample nanorc
      docs: remove a no-longer-needed suggestion from the sample nanorc
      docs: update the description of -R/--restricted, as it now reads nanorc
      docs, usage: mention that --showcursor now covers help texts too
      feedback: give proper message for ^R when combining --view & --restricted
      gnulib: update to its current upstream state
      help: add a relevant explanatory text for the linter
      help: move the linter to the end, to restore pairing in the help lines
      help: pull "Older" and "Newer" into view on an 80-column terminal
      help: restore the blank line between manipulation and position stuff
      help: show <PgUp> and <PgDn> instead of F7 and F8 for pagewise scrolling
      help: show the keystroke <Ctrl+Shift+Delete> as "Sh-^Del"
      linter: allow using <Ctrl+Up> and <Ctrl+Down> to jump to other message
      linter: do not pause when there are no messages for unopened files
      linter: for "first"/"last", reshow actual message after a short pause
      options: --ignorercfiles is now available in restricted mode
      options: let view mode activate "multibuffer" to allow viewing more files
      speller: remove a pointless message -- it is never seen
      startup: allow reading nanorc in restricted mode, to permit customization
      syntaxes: remove several redundant end-of-line anchors from regexes
      tweaks: add a comment, and correct an indentation
      tweaks: add two more translator hints
      tweaks: capitalize the word "nano" when at the start of a sentence
      tweaks: change a bunch of URLs to use 'https' instead of 'http'
      tweaks: condense a handful of comments, and drop an assert
      tweaks: condense another bit of code
      tweaks: define a symbol to make the code itself a little simpler
      tweaks: don't bother asking ncurses for keycodes for shifted Left/Right
      tweaks: drop a check for the needle (the search string) being empty
      tweaks: drop the checking of two flags that can no longer be toggled
      tweaks: elide a function that is used just once and is a oneliner
      tweaks: elide a wrapper function that is no longer useful
      tweaks: exclude word-deletion keystrokes from the tiny version
      tweaks: fold a few pairs of regexes into each other
      tweaks: group a series of related variables together
      tweaks: improve two comments, and reshuffle a line for consistency
      tweaks: include an extra function call only where it is needed
      tweaks: move all the function keys to the end of the shortcuts list
      tweaks: move some calls of edit_redraw() to where they are needed
      tweaks: redefine MMOST to exclude MBROWSER, to simplify the bindings
      tweaks: reduce some repetitious and superfluous comments to just one
      tweaks: remove a check that was made redundant by the previous commit
      tweaks: remove a now-unused parameter from four functions
      tweaks: remove an unneeded check for NULL, and rename a parameter
      tweaks: remove a stray file that was accidentally committed
      tweaks: remove some old debugging code
      tweaks: rename a bunch of variables, to make it clearer what they contain
      tweaks: rename a flag, to match the name of the option
      tweaks: rename a variable, to be a bit more fitting
      tweaks: renumber a couple of symbols, and reshuffle a bit of code
      tweaks: reorder some code to put backward motion before the forward one
      tweaks: reshuffle a couple of conditions, to group things better
      tweaks: reshuffle some conditions, putting the least likely one first
      tweaks: reshuffle some lines to get standard order (first up, then down)
      tweaks: reshuffle some lines, to put things in order of option name
      tweaks: snip trailing whitespace that ended with a non-breaking space
      tweaks: stop setting and requiring the Meta flag for special keycodes
      tweaks: swap and reword two bullet points in the rnano manpage
      tweaks: there is no reason to block SIGWINCHes while waiting for speller
      undo: move another piece of checking to the two places that need it
      undo: move some special checking code to the one place that needs it
      wrapping: make the --fill option override 'set fill' again

Brand Huntsman (5):
      bindings: hard-bind the zap function to M-Del (Alt+Delete)
      display: make all dying messages end in a newline
      linter: throttle "first"/"last" message on repeated key presses
      new feature: a bindable 'zap', to erase text without changing cutbuffer
      options: add --zap, that makes <Bsp> and <Del> erase a marked region

David Lawrence Ramsey (16):
      display: do spotlighting as part of drawing the screen
      docs: update rnano manpage, as -R/--restricted now reads nanorc
      input: don't detect <Ctrl+Shift+Delete> on Linux console in tiny version
      input: properly consume a modified Delete key also in the tiny version
      input: properly recognize Alt+Delete when using -K/--rebindkeypad
      input: recognize some escape sequences for <Shift+Delete>
      speller: restore the mark coordinates slightly later
      syntax: nanohelp: properly color the keystroke "Sh-^Del"
      tweaks: don't define controldelete or controlshiftdelete in tiny version
      tweaks: join two lines, and add a clarifying comment
      tweaks: move the justifying of a single paragraph into its own function
      tweaks: normalize the indentation of the shuffled code
      tweaks: reshuffle some code to avoid several checks for having justified
      tweaks: simplify by using a 'do/while' loop instead of 'while (TRUE)'
      weeding: remove the 'active' parameter from spotlight()
      wrapping: make relative fill values work again also for screen resizes


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

Benno Schulenberg (13):
      bindings: bind ASCII DEL during startup instead of repeatedly at runtime
      bindings: make ^H rebindable also on NetBSD, FreeBSD and macOS
      bindings: when Ctrl+Shift+Delete has no keycode, don't use KEY_BSP
      bump version numbers and add a news item for the 3.1 release
      input: keep the cursor in edit window after message, also on NetBSD
      input: recognize the sequences for Ctrl+Shift+Delete on xterm and urxvt
      main: allow toggling all editor features when in view mode
      suspension: don't try to show the cursor position when going to sleep
      syntax: sh: let the header regex match also busybox shell scripts
      tweaks: condense a bit of code
      tweaks: remove a superfluous comment and a redundant assignment
      tweaks: rename a variable to be special and distinct
      tweaks: sharpen an optimization, to allow DEL to be a shortcut

Liu Hao (1):
      search: disallow switching to the Replace prompt when in view mode


Changes between v2.9.8 and v3.0:
--------------------------------

Benno Schulenberg (113):
      bindings: bind M-Q to 'findprevious' by default, and M-W to 'findnext'
      bindings: hard-bind <Ctrl+Shift+Delete> to 'cutwordleft'
      bindings: make ^Q and M-Q available also in the help viewer
      bindings: move the noconvert toggle from the main to the insert menu
      bindings: reassign the M-| keystroke to 'cutwordleft' by default
      bindings: remove backup and new-buffer toggles (M-B, M-F) from main menu
      bindings: remove the More-Space toggle entirely
      bindings: remove the 'searchagain' function entirely
      bindings: rename two bindable functions: copytext to copy, uncut to paste
      bindings: unassign the M-? keystroke, to free it up for future use
      build: add the release script to the repository
      build: fix compilation again when configured with --enable-tiny
      build: fix compilation when configured with --enable-tiny
      build: verify that 'msgfmt' is available when building from git
      bump version numbers and add a news item for the 3.0 release
      chars: make the UTF-8 case ever so slightly faster by eliding an 'if'
      chars: speed up the counting of string length for the plain ASCII case
      chars: speed up the parsing of a character for the plain ASCII case
      completion: when the cursor is not after a word fragment, say so
      cut: concentrate the logic for clearing the cutbuffer mostly in one place
      cutting: when deleting whole words, don't join lines unexpectedly
      debug: add some code to time the performance of get_totsize()
      docs: improve a comment about rebinding <Backspace>
      docs: mention that also Ctrl increases the stride when selecting text
      docs: mention that "normal" can be used to give things the default color
      docs: mention that the 'formatter' command has been superseded
      docs: reshuffle a bindable function to a slightly better position
      docs: say that 'cutwordright' is now bound to <Ctrl+Delete> by default
      docs: slightly reword the description of four bindable functions
      docs: the 'noconvert' bindable function was renamed to 'flipconvert'
      dropping a feature: remove the ability to use the 'formatter' command
      easter: show the crawl only when there is room enough for the lines
      files: add the file format on the status bar when switching buffers
      filtering: wait for the data-sending process to terminate too
      gnulib: update to its current upstream state
      help: for ^R^X, mention that the buffer can be piped to the command
      help: move "Search Again" away from "Find Next" and "Find Previous"
      input: consume the whole escape sequence for modified PgUp and PgDn keys
      input: fully consume modified PgUp and PgDn keys also in the tiny version
      input: ignore any <Escape>s before a valid command keystroke
      input: stop <Alt+Insert> from entering "3~" into the buffer
      input: stop a modified Delete key from entering stuff into the buffer
      mouse: put the row/column arguments in the proper order  [coverity scan]
      prompt: concentrate manipulations of 'statusbar_x' into a single file
      prompt: remove redundant redrawings of the prompt bar
      rcfile: allow to rebind the Cancel function in the yesno menu
      rcfile, docs: no longer recognize nor mention 'set backwards'
      rcfile: do not accept rebinding F0 nor function keys above F16
      rcfile: ensure that in the yesno menu Cancel is bound to some keystroke
      rcfile: explicitly check for disallowed keywords in included files
      rcfile: reject things like "M-Del" and "^{" as invalid key names
      rcfile: when a vital function is not mapped, mention in which menu
      search: include 'findprevious' and 'findnext' in the tiny version
      signals: don't call a print routine in a signal handler
      speller: do not replace the text when the temporary file did not change
      startup: don't overwrite rcfile error messages on a Linux console
      startup: show the correct number of lines when opening multiple files
      syntax: awk: recognize any {g,m,n,}awk script also by its shebang line
      syntax: default: colorize also two-digit and capitalized nano versions
      syntaxes: remove all traces of the 'formatter' command
      syntax: nanorc: recognize 'yesno' as a valid menu to bind/unbind keys in
      syntax: nanorc: show ^@ as validly rebindable, but not any ^digit
      syntax: python: avoid coloring the three special values inside strings
      text: add auto-whitespace to the file size after creating the undo item
      tweaks: adjust indentation after the previous change
      tweaks: adjust one more translator hint, for removed toggles
      tweaks: adjust some translator hints for past changes, and add two more
      tweaks: adjust two comments, to be more accurate and general
      tweaks: avoid dereferencing a pointer when it is NULL  [coverity scan]
      tweaks: close a temp file only when descriptor is valid  [coverity scan]
      tweaks: correct a comment, rewrap a line, and drop some debugging stuff
      tweaks: delete some old debugging code that no longer seems useful
      tweaks: don't bother having debug code that deallocates all memory
      tweaks: don't call va_start() without calling va_end()  [coverity scan]
      tweaks: drop a condition that has been made redundant two commits ago
      tweaks: drop some old debugging code
      tweaks: elide a bunch of unneeded constant strings
      tweaks: elide a function that is used just once
      tweaks: elide another function that is used just once
      tweaks: elide an unneeded/duplicate variable
      tweaks: elide a one-line function -- no, a half-line function
      tweaks: elide a subfunction that is used just once
      tweaks: exclude a global flagging variable when it is not needed
      tweaks: exclude the file-prepending code from the tiny version
      tweaks: fix a pasting error from a month ago
      tweaks: implement the name-to-menu function in another manner
      tweaks: improve a couple of comments in the sample nanorc
      tweaks: improve a translator hint and some other comments
      tweaks: move a call to where it will be executed  [coverity scan]
      tweaks: normalize the indentation after the previous change
      tweaks: properly escape "\" in a man page and "@" in a texi document
      tweaks: recognize escape sequences of modified Ins/Del more precisely
      tweaks: reduce the counting of characters to just the needed function
      tweaks: remove a redundant "struct" word, and replace it in comments
      tweaks: remove a superfluous condition and a redundant refresh
      tweaks: remove redundant braces and conditions after the previous change
      tweaks: remove some braces that are now superfluous
      tweaks: remove some ineffectual parts from header-line regexes
      tweaks: remove the superfluous calls that reset the mbtowc() state
      tweaks: remove two needless words, and split up a changed text further
      tweaks: remove two superfluous assignments
      tweaks: rename a constant, to match what it actually means
      tweaks: rename a function and place its call better
      tweaks: rename a function to better match its counterpart
      tweaks: rename a function, to better state what it does
      tweaks: rename a variable and a function, for more clarity
      tweaks: rename a variable, to better match its task
      tweaks: reshuffle some lines, in order to elide one
      tweaks: reshuffle the order of the bindings, for help-line esthetics
      tweaks: show "Space" and "Bsp" in the help text of the browser
      tweaks: slightly improve error message when vital function is unmapped
      tweaks: use a shorter message, because when the screen is small...
      undo: differentiate between general filtering and spell checking

Brand Huntsman (4):
      input: give feedback for all unbound keys also in the help viewer
      statusbar: elevate three messages to an ALERT, to make them more visible
      tweaks: correct four spaces of indentation to a tab, in two places
      tweaks: remove the 'bright' field from the colortype struct

David Lawrence Ramsey (13):
      bindings: make "n" work again in file browser and help viewer
      bindings: make ^Q start a backward search also in the file browser
      docs: mention that "Ins" and "Del" are valid rebindable keys
      justify: verify being in a paragraph before trying to find its beginning
      speller: hook up a full alternative spellcheck to the undo system
      speller: hook up a marked-text alternative spellcheck to the undo system
      speller: make replace_buffer() use the cutting functions directly
      speller: make replace_marked_buffer() use the cutting functions directly
      undo: actually enable undoing/redoing an alternative spellcheck
      undo: always initialize the 'newsize' element in the undo struct
      undo: position the cursor properly when undoing/redoing magicline cuts
      undo: restore the cursor position when a cut and paste are paired
      undo: store the correct cursor position after a paired cut+insert

Devin Hussey (2):
      files: speed up reading by using getc_unlocked() instead of getc()
      syntax: sh: recognize more file extensions and header lines

Marco Diego Aurélio Mesquita (1):
      input: erase the next word when Ctrl is held while pressing Delete

Mark-Weston (2):
      build: fix compilation when CC=tcc
      syntax: lua: do not color strings inside comments, and add a linter


Changes between v2.9.7 and v2.9.8:
----------------------------------

Benno Schulenberg (64):
      build: fix compilation failure when configured with --enable-tiny
      build: fix compilation when configured with --disable-justify
      build: fix compilation when configured with --disable-multibuffer
      build: fix compilation with --enable-{tiny,help,multibuffer}
      bump version numbers and add a news item for the 2.9.8 release
      copyright: update the years for significantly changed files
      credits: sort the names roughly according to amount of influence
      docs: add a missing double quote in the default brackets string
      docs: describe what constitutes a paragraph
      docs: improve description of 'speller' and related bindable functions
      docs: improve the description of --nonewlines, and properly sort it
      docs: improve the description of the --autoindent option
      docs: make quotes around regexes bold, as they are part of the command
      docs: mark the filtering of text through an external command as done
      docs: register Marco as the author of the filtering feature
      docs: remove mention of the quotestr for when regex support is lacking
      docs: remove quotes around the name of a syntax -- they are not needed
      docs: thank Kamil for his bug fixes, and update an email address
      docs, usage: make it clear that the argument of --quotestr is a regex
      files: give feedback during writeout also when prepending or appending
      filtering: pair the cut and the insert, so they can be undone together
      gnulib: update to its current upstream state
      justification: find the beginning of a paragraph in a better way
      justification: limit the amount of recursion to prevent a stack overflow
      justification: recognize indented paragraphs also without --autoindent
      justification: when leading whitespace exceeds fill width, wrap anyway
      linter: don't try to access absent stat info, as that gives a crash
      linter: make sure that the margin is updated before displaying a buffer
      linter: make sure the shortcuts bar will redrawn when exiting early
      main: add "/" to the quoting regex, to allow justifying //-comments
      main: interpret only a double slash (//) as quoting, not a single one
      rcfile: don't crash when a bind to a string lacks the closing quote
      startup: provide a hint for people unfamiliar with the ^char convention
      syntaxes: condense and/or correct some extension regexes
      syntax: makefile: color all keywords that GNU make recognizes
      tweaks: adjust a translator hint
      tweaks: avoid an unused-variable warning with --enable-tiny
      tweaks: avoid a warning with --enable-{tiny,help,multibuffer}
      tweaks: condense a comment, and elide an unneeded 'if'
      tweaks: condense some repetitious comments, and check before assigning
      tweaks: condense two statements into one, and elide a 'break'
      tweaks: elide a function that is called just once
      tweaks: elide another function that is called just once
      tweaks: exclude an unneeded 'if' from the single-buffer version
      tweaks: frob a couple of comments
      tweaks: frob some comments, and rename two parameters to make sense
      tweaks: give some continuation lines a more obvious indentation
      tweaks: improve a couple of comments, and reshuffle a group of lines
      tweaks: make better use of an existing variable
      tweaks: make better use of an intermediate variable
      tweaks: reduce the abundance of the word 'toggle' in the Info manual
      tweaks: remove a superfluous assignment -- the lead length never changes
      tweaks: remove two superfluous checks, after making one of them so
      tweaks: rename a function, for more aptness and extra contrast
      tweaks: rename a variable, for contrast, and improve two comments
      tweaks: rename a variable, to give it some meaning
      tweaks: rename two variables, to better fit their tasks
      tweaks: reshuffle a condition, and adjust a comment and some indentation
      tweaks: reshuffle a couple of assignments
      tweaks: simplify the determining of the prefix for justified lines
      tweaks: stop decreasing both the iterator and the limit of a loop
      tweaks: use a more meaningful variable name, and avoid a distant 'else'
      wrapping: use "smart" autoindenting only when hard-wrapping is enabled
      wrapping: when autoindenting, use indentation of next line as example

Brand Huntsman (1):
      tweaks: avoid two unused variable warnings when NLS is disabled

Cristian Caloghera (1):
      syntax: makefile: recognize also an all-lowercase makefile name

David Lawrence Ramsey (3):
      bindings: add the "flippipe" bindable function
      tweaks: avoid an unused variable warning with --enable-tiny
      tweaks: fix some grammar plus a typo in the comments

Marco Diego Aurélio Mesquita (2):
      linter: check all open buffers, instead of just the next one
      new feature: allow piping (selected) text to an external command


Changes between v2.9.6 and v2.9.7:
----------------------------------

Benno Schulenberg (21):
      bindings: add the 'linenumbers' bindable function
      bindings: rename constupdate to constantshow, cuttoend to cutfromcursor
      bump version numbers and add a news item for the 2.9.7 release
      docs: add notes about deprecated options and function names
      docs: break down some old improvements further per version
      docs: note a small difference with Pico in the default hard-wrapping
      docs: say thanks to three recent translators, and re-sort two others
      docs: slightly improve the description of the file browser in the manual
      main: clear a spurious error number, to avoid irrelevant messages later
      prompt: when asking for Yes/No/All, recognize also UTF-8 letters
      scrolling: only do a scroll when the edit window has more than one row
      signals: don't trap segfault/abort when envvar NANO_NOCATCH is defined
      signals: exclude the crash handler from the tiny version
      startup: suggest using ^D to finish reading from standard input
      tweaks: improve a couple of comments
      tweaks: normalize indentation and whitespace after previous changes
      tweaks: put check for -h and -l options in their alphabetical positions
      tweaks: put Yes/No/All in a consistent order (for the translators)
      tweaks: rename two variables, to be more descriptive
      tweaks: sort an option better, and reschedule a removal
      tweaks: use symbolic names instead of puzzling TRUE and FALSE

Devin Hussey (1):
      signals: upon a crash, save changed buffers and reset terminal state

Mark-Weston (1):
      new feature: an option to make the 'nextword' function stop at word ends


Changes between v2.9.5 and v2.9.6:
----------------------------------

Benno Schulenberg (39):
      build: do not prefix an alternative rcfilename with a dot
      build: fix compilation when configured with --disable-help
      bump version numbers and add a news item for the 2.9.6 release
      command-execution: do not crash when opening the pipe would fail
      completion: correctly do a signed comparison, to avoid a segfault
      files: prevent a hang when a call to sigaction() would fail
      formatting, linting: redetermine the argument list for every run
      gnulib: update to its current upstream state
      memory: use a reallocation to reduce the amount of leakage
      prompt: recognize Yes/No/All in English when the locale gives no match
      rcfile: skip color commands where some color name is invalid
      scrolling: don't redraw entire edit window when cursor goes offscreen
      search: always go forward by default, also when coming from Goto-Line
      search: use a better value to mean "nothing was typed"
      speller: don't add an extra newline when saving the text to a tempfile
      syntax: po: highlight also other escaped characters, not just \n
      syntax: sh: colorize options only when they are preceded by whitespace
      tweaks: adjust the translator hint about Yes/No/All
      tweaks: correct or improve a couple of comments
      tweaks: elide a function that is called just once
      tweaks: fix a typo, remove a blank line, and improve some comments
      tweaks: frob a couple of comments
      tweaks: group some more of the empty functions together
      tweaks: improve some comments, and exit with nonzero status upon error
      tweaks: improve the ordering of a couple of functions
      tweaks: invert two conditions and reshuffle, to reduce duplication
      tweaks: move a function to its proper location
      tweaks: move a function to its proper location
      tweaks: rearrange a few if statements more symmetrically
      tweaks: remove the group handling for undoing/redoing (un)indents
      tweaks: rename a function, to be more distinct from its caller
      tweaks: rename a function, to be more fitting and descriptive
      tweaks: rename a variable, for clarity
      tweaks: rename a variable, to be a bit more fitting
      tweaks: rename a variable, to be more clear and to match another
      tweaks: rename a variable, to match another and to be more visible
      tweaks: reshuffle two declarations
      tweaks: set the correct flags just once for each spell-fixing session
      tweaks: use meaningful names instead of puzzling values

Liu Hao (1):
      replacing: always clear the backwards flag for ^\, just like for ^W


Changes between v2.9.4 and v2.9.5:
----------------------------------

Benno Schulenberg (45):
      build: exclude more things when configured with --disable-multibuffer
      build: fix compilation again when configured with --enable-tiny
      build: fix compilation when configured with --disable-multibuffer
      build: fix compilation with --enable-{tiny,help,multibuffer}
      bump version numbers and add a news item for the 2.9.5 release
      cut: avoid calling renumber() on what might be NULL
      docs: clarify how the Linux console is deficient: in the arrow keys
      docs: clarify what the scrollup and scrolldown bindable functions do
      docs: document the newly added color name "normal"
      docs: mention in the FAQ that <Shift+Insert> pastes from the clipboard
      files: prevent an infinite loop when reading from standard input fails
      files: prevent the undo of reading a file into a new buffer
      help: describe the Scroll-Up and Scroll-Down commands more precisely
      help: do not reserve space for line numbers, as they are absent
      linting: drop messages for other files when configured for one buffer
      memory: plug a leak, by actually freeing a discarded undo struct
      scrolling: first move the cursor before pushing current chunk offscreen
      scrolling: let Scroll-Up/Down keep the cursor in the same text position
      selecting: don't cancel a softmark when just scrolling the screen
      small addition: understand color name "normal" to mean the default color
      syntax: sh: color also the 'cut', 'head', 'tail', and 'sort' commands
      syntax: sh: color options distinctively, and color also long options
      syntax: sh: uncolor "tar" when it's part of a filename
      tweaks: adjust a couple of types, to reduce the number of warnings
      tweaks: adjust or correct some comments, and rename a function
      tweaks: adjust the indentation after the previous changes
      tweaks: bundle some settings for a new buffer
      tweaks: change a parameter of open_buffer() and invert its logic
      tweaks: condense some code, to remove a bit of duplication
      tweaks: drop a handful of unhelpful asserts
      tweaks: elide an unneeded and shadowing variable
      tweaks: elide a parameter, as it's always the inverse of another
      tweaks: elide a parameter that is always 1
      tweaks: elide two parameters and thus a pair of wrapper functions
      tweaks: factor out the check for 'viewok' into its own function
      tweaks: fix a typo and adjust some wording and formatting in the FAQ
      tweaks: frob some comments plus miscellaneous other stuff
      tweaks: fuse two ifs into one
      tweaks: move an 'if' and then remove an unneeded label
      tweaks: reduce the font size of the questions in the FAQ
      tweaks: remove an inconsistent space from two pointer declarations
      tweaks: remove unneeded settings and unsettings of MULTIBUFFER
      tweaks: reshuffle some movement code, to reduce the number of conditions
      tweaks: revert commit c88a2fd9 -- the extra variable is needed
      tweaks: rewrap and amend some lines in the NEWS file

David Lawrence Ramsey (1):
      tweaks: correct several parameter types

Kamil Dudka (1):
      input: do not crash if sctofunc() returns NULL

Liu Hao (1):
      build: fix compilation error when configured with --disable-justify


Changes between v2.9.3 and v2.9.4:
----------------------------------

Benno Schulenberg (65):
      bindings: make a key defined as string work also in browser and viewer
      bindings: rename the bindable function 'gototext' to 'flipgoto'
      bindings: revert the ^/ changes, as ^/ is not always Go-To-Line
      bindings: show ^/ instead of ^_ for Go-To-Line
      build: fix compilation when configured with --enable-tiny
      bump version numbers and add a news item for the 2.9.4 release
      docs: mention that a key can be bound to a string
      docs: note also in the Info manual that text can be selected with Shift
      editing: when --smooth is used, make <Enter>-at-bottom scroll one row
      general: detect in a better way whether we're running on a Linux console
      gnulib: update to its current upstream state
      goto: avoid a segfault, by initializing 'answer' when it is NULL
      help: mention that some keys work on a region when the mark is on
      help: tweak the descriptions of ^X and ^R
      input: handle the implant() function separately also for the prompt
      input: handle the implant() function separately, as it is special
      memory: avoid a leak when toggling from Search to Goto
      memory: squeal when there is something wrong, instead of stumbling on
      new feature: allow binding a key to a string (in a nanorc file)
      prompt: disallow pasting when in restricted mode
      rcfile: allow a syntax name to be unquoted
      search: clear the existing answer when starting a new search
      search: get rid of some unneeded recursion when just toggling things
      selecting: cancel the softmark upon any attempt to move the cursor
      small addition: allow customizing the color of an error message
      syntax: color also ^/ in nano's help texts and in nanorc files
      syntaxes: remove quotes from each syntax name, and color it differently
      syntax: nanorc: color also bindings to a string as valid
      tweaks: adjust comments and indentation after the previous change
      tweaks: adjust two comments, move two declarations, rewrap three lines
      tweaks: appease valgrind concerning syscalls with uninitialized values
      tweaks: condense a comment and elide an 'if'
      tweaks: correct a typo in NEWS
      tweaks: correct a typo that broke binding a key to a string
      tweaks: do not needlessly renumber the lines in the buffer
      tweaks: don't call strcmp() to determine whether a string is empty
      tweaks: drop an assert, add a warning, and change a 'for' to a 'while'
      tweaks: drop some debugging stuff, and adjust what remains of it
      tweaks: elide another variable, to call a function less often
      tweaks: elide an unneeded variable
      tweaks: elide an unneeded variable
      tweaks: elide an unneeded variable
      tweaks: elide an unused variable and parameter
      tweaks: elide two unneeded booleans
      tweaks: exclude an unlikely error message from the tiny version
      tweaks: exclude an unlikely warning from the tiny version
      tweaks: fix a copy-and-paste error
      tweaks: make the fsfromline() call only for the undo types that need it
      tweaks: plug a memory leak when using Verbatim Input at a prompt
      tweaks: refactor the implanting of a key expansion
      tweaks: remove another superfluous check
      tweaks: remove a superfluous check
      tweaks: remove two deprecated options and six rebindable function names
      tweaks: remove two superfluous checks, and restrict two others
      tweaks: rename a parameter and a variable, to be more fitting
      tweaks: rename a variable to be more distinct and greppable
      tweaks: rename two variables, to be more meaningful
      tweaks: reshuffle some code, to be slightly less ugly
      tweaks: reshuffle some of the search-and-replace cleanup calls
      tweaks: reshuffle the undo types into mostly the same order everywhere
      tweaks: shorten the name of two record elements
      tweaks: slightly rewrap the FAQ's table of contents
      tweaks: transform a 'do' to a 'while', and reshuffle a comment
      tweaks: unabbreviate two variable names
      undo: when redoing, don't try to find a line number that might not exist

Brand Huntsman (1):
      color: remove unneeded bright comparison to prevent duplicate pairs

David Lawrence Ramsey (3):
      docs: mention that errorcolor does have default colors
      input: don't stop prepending when the user adds text via a shortcut
      tweaks: fix typo in rebindable function name

Tom Levy (1):
      syntax: go: highlight also floats with leading zeroes as valid


Changes between v2.9.2 and v2.9.3:
----------------------------------

Benno Schulenberg (65):
      build: fix compilation when configured with --enable(tiny,color,nanorc}
      build: fix compilation with --enable-tiny --enable-justify
      build: let ./configure fail (not just warn) when curses.h is missing
      bump version numbers and add a news item for the 2.9.3 release
      copyright: update the years for the FSF
      display: wipe the status bar when doing a total refresh
      docs: remove the note about needing a recent ncurses for macros to work
      docs: update the FAQ for the changed default location of history files
      docs: update the TODO file to the current state of affairs
      gnulib: update to its current upstream state
      help: don't get stuck when there is an unwrappable piece of text
      input: consume only the actual length of an escape sequence
      input: fully reset state when a three-digit character code is cut short
      input: make <Shift+Tab> do an unindent also on a Manjaro console
      input: recognize escape sequences for <Shift+PageUp> and <Shift+PageDown>
      input: recognize more escape sequences for <Shift+Home> and <Shift+End>
      input: recognize the deviant keycode for <Ctrl+End> in urxvt
      options: recognize -M and --trimblanks on the command line
      painting: look for an end match only after a start match, if any
      prompt: show whitespace only in the filename, not in the whole line
      replacing: don't skip the first character of a backwards-marked region
      search: suppress the occurrence at the cursor only when replacing
      startup: allow a named pipe as file argument when --noread is used
      startup: make an error message succinct and to the point
      startup: move the initialization of colors, so any error gets printed
      syntax: go: colorize only valid octal numbers
      syntax: lua: do not color debug.setinfo as it doesn't exist
      syntax: nanohelp: color also the Sh-Tab key combo
      tweaks: change a 'do' to a 'while', and return early to elide an 'if'
      tweaks: check for the type of terminal far earlier
      tweaks: condense a condition and a comment, and reshuffle a line
      tweaks: condense and rewrap some comments, and reindent two lines
      tweaks: condense the conditional compilation of shortcut reassignments
      tweaks: don't bother freeing the key buffer, just reallocate it
      tweaks: don't bother to reallocate when the keybuffer size decreases
      tweaks: drop a superfluous parameter, as it is always 1
      tweaks: drop a useless assert, and don't abort over an unhandled option
      tweaks: drop two unneeded initializations, and trim a comment
      tweaks: elide a tiny intermediate buffer, and rename two variables
      tweaks: exclude --trimblanks when no wrapping or justifying is configured
      tweaks: fully include Savefile and Wherewas in the tiny version
      tweaks: indenting text files with tabs is not a good idea
      tweaks: mark the two blocks that have a deviant indentation
      tweaks: move a bunch of comments to the lines that they refer to
      tweaks: move two functions to their proper place, orderingwise
      tweaks: remove a fragment of dead code
      tweaks: remove a handful of redundant (because always true) asserts
      tweaks: remove a superfluous case -- there can never be four digits
      tweaks: remove a superfluous check, as we insert always one code
      tweaks: rename a function, for aptness, and drop a superfluous check
      tweaks: rename a function, to be more distinct
      tweaks: rename a variable, and further condense some comments
      tweaks: rename a variable, for more contrast
      tweaks: rename a variable, to better fit its usage
      tweaks: rename two variables, and swap their declaration order
      tweaks: rename two variables, for preciseness and shortness
      tweaks: reshuffle a couple of lines
      tweaks: reshuffle a couple of lines, to make a bit more sense
      tweaks: reshuffle some stuff, and avoid a memory leak
      tweaks: reshuffle two condition series, to look better
      tweaks: rewrap a bunch of lines in the NEWS file
      tweaks: set a modifier in a single place, for conciseness
      tweaks: swap the row and col parameters to a more consistent order
      tweaks: transform a parameter, from a pointer to the value itself
      wrapping: don't trim a blank character that the user just typed

Brand Huntsman (1):
      startup: parse interface colors when they are read, not when initialized


Changes between v2.9.1 and v2.9.2:
----------------------------------

Benjamin Mintz (1):
      syntax: python: add 'async', 'await', and 'nonlocal' as keywords

Benno Schulenberg (62):
      bump version numbers and add a news item for the 2.9.2 release
      display: ensure that cursor is visible when compiled with --with-slang
      docs: mention that the source code is best viewed with a tab size of 4
      docs: say thanks to some fairly recent translators, and rename one
      gnulib: pull in the fix for the missing stat include
      gnulib: update to its current upstream state
      help: show that "Tab" will indent, just like "Sh-Tab" will unindent
      help: swap the order of the Complete and Comment functions
      indenting: don't exclude last line of region when region is empty
      indenting: keep affecting last line of marked region if it was at first
      input: allow using <Tab> and <Shift+Tab> to (un)indent selected region
      input: make <Ctrl+Shift+Arrow> work also when using --rebindkeypad
      input: optimize a bit for non-shortcut keys, as they are most frequent
      options: rename 'justifytrim' to 'trimblanks', because it has morphed
      prompt: blank the bar when a "continue?" is answered with No or ^C
      syntaxes: remove redundant word-boundary markers
      syntax: javascript: add some comments, and color explicit numbers too
      syntax: javascript: add some keywords, and sort them more logically
      syntax: javascript: color strings differently from major keywords
      syntax: javascript: require that a comment is preceded by whitespace
      syntax: lua: condense some regexes, tweak comments, reorder things
      syntax: nanorc: don't color parts of valid strings as if invalid
      syntax: python: color also the special values 'False', 'None', 'True'
      text: allow unindenting when not all lines are indented
      text: keep cursor at left edge when it IS there when indenting/commenting
      text: let a Shift-selection persist when indenting and commenting
      text: let indenting/commenting skip the last line if its x is zero
      text: set and reset the Modified state correctly when undoing/redoing
      tweaks: add a separate function that actually wipes the status bar
      tweaks: avoid incrementing a variable that won't be used again later
      tweaks: condense or rewrap a bunch of repetitious comments
      tweaks: condense, reword, and rewrap a bunch of comments
      tweaks: condense some debugging code, and rewrap a line
      tweaks: convert the indentation of the NEWS file too
      tweaks: convert the indentation to use only tabs
      tweaks: drop some old debugging code plus a superfluous comment
      tweaks: elide two parameters from the get_region() function
      tweaks: elide two variables that are used just once
      tweaks: factor out a piece of common code
      tweaks: fix some whitespace errors, and convert alignment tabs to spaces
      tweaks: fold some regexes into one another, for conciseness
      tweaks: frob four comments, and rewrap two lines
      tweaks: invert the logic of a variable, and rename it
      tweaks: limit the resetting of "Modified" to writing a full buffer
      tweaks: move some frequently-used keystrokes to the top of the list
      tweaks: remove a redundant call of renumber()
      tweaks: remove a superfluous condition
      tweaks: remove a superfluous placing of a terminating nul byte
      tweaks: remove some unneeded parentheses, and shorten two function calls
      tweaks: remove two irrelevant conditions
      tweaks: rename three variables, for more contrast and variety
      tweaks: reshuffle a bit of common code, moving it to an existing function
      tweaks: reshuffle another bit of code, for conciseness
      tweaks: rewrap some lines and some comments, and trim two others
      tweaks: slightly rename four functions, for aptness and variety
      tweaks: strip some debugging stuff, and condense a bit of code
      tweaks: trim another placing of a terminating nul byte
      tweaks: use for git the more faithful "less -x1,5" suggested by Brand
      tweaks: use spaces for alignment also in the THANKS file
      wrapping: delete trailing blanks upon hardwrapping, when requested
      wrapping: keep prepending to the same next line as long as possible
      wrapping: we're still on the same line if the next line has not changed

David Lawrence Ramsey (3):
      input: support backtab when Slang and/or --rebindkeypad is used
      tweaks: use printf's z modifier for (s)size_t, instead of casting
      undo: when adding text adds a magicline, an undo should remove both

Liu Hao (1):
      syntax: c: increase the color contrast of reminders like FIXME

Michael Francis (1):
      syntax: php: function and variable names can contain uppercase and digits

Mike Frysinger (1):
      syntax: javascript: add newer keywords and string syntax

Tom Levy (6):
      syntax: go: fix word boundary before dot in number literal
      syntax: go: sign of exponent in number literal is optional
      syntax: lua: add new and missing standard library functions
      syntax: lua: correct the word boundaries on standard library functions
      syntax: lua: require at least one digit for hexadecimal numbers
      syntax: lua: support fractional part and exponent for decimal and hex


Changes between v2.9.0 and v2.9.1:
----------------------------------

Benno Schulenberg (20):
      build: fix compilation with --disable-browser --disable-tabcomp
      bump version numbers and add a news item for the 2.9.1 release
      files: always update the stat info when the entire file is written
      files: save the marked region only when we've prompted for a file name
      gnulib: update to its current upstream state
      history: create the path '~/.local/share/' when it is needed
      history: make nano's state directory accessible for the user only
      history: save the positions file also when a record was deleted
      input: make the macro key discoverable by giving feedback when undefined
      linting: switch the mark off when the linter starts
      selecting: do not cancel the softmark when the cursor is not moved
      selecting: let a justification cancel a softmark
      syntax: adjust the magic strings for the changes since file-5.10
      tweaks: adjust indentation after previous change
      tweaks: elide the 'mark_set' boolean -- the 'mark' pointer is enough
      tweaks: rename, rewrap, and reshuffle some stuff, and frob some comments
      tweaks: reshuffle a couple of lines, and frob a comment or two
      tweaks: reshuffle a couple of lines, to put similar things together
      undo: clear the Modified state when the very first edit is undone
      undo: discarding the stack does not always lose information


Changes between v2.8.7 and v2.9.0:
----------------------------------

Benno Schulenberg (103):
      bindings: don't allow calling help when searching in the help viewer
      bindings: make ^Q and ^S do something useful by default
      bindings: make the search function rebindable again in help and browser
      bindings: make ^W start always a forward search (as there is ^Q now)
      browser: place the cursor properly on the selected file when -g is used
      build: let git ignore also the generated PDF file
      bump version numbers and add a news item for the 2.9.0 release
      copyright: update some years, and standardize on the dashed format
      display: keep the cursor switched on when resizing the screen
      display: rework the switching on and off of the cursor
      display: stop the help viewer from turning on the multibuffer indicator
      display: switch off the cursor early on during startup
      docs: make it clearer that a Signed-off-by is wanted on patches
      docs: mention that macros work correctly only on terminal emulators
      docs: remove another remark about indenting lacking undo capability
      docs: update references to the nanorc files for the XDG changes
      files: avoid an abortion when executing a command in a new buffer
      gnulib: update to its current upstream state
      help: don't fall back to other syntaxes if there is no nanohelp one
      history: after loading the lists, mark them as unchanged
      history: remove the migration service for the old searches file
      input: recognize Option+Arrow keys on iTerm2 in "xterm mode"
      moving: don't slither and slide over tabs when they are overlong
      moving: prevent the cursor sticking on or skipping over overwide tabs
      new feature: a bindable function that starts always a backward search
      options: remove '--quiet' and 'set quiet', because they hide problems
      options: retire 'set backwards' -- it's still recognized but a no-op
      organization: move all history-related stuff to its own file
      ouch: set the positions-file name also when using the legacy state dir
      painting: evade an ncurses bug by adding the A_PROTECT attribute
      search: suppress the "not found" message when replacements were made
      search: suppress the "Search Wrapped" message when doing replacements
      search: wipe reassuring feedback as soon as searching has finished
      startup: don't ask the user to press Enter upon an rcfile error
      startup: don't produce more than three consecutive beeps
      startup: when an rcfile contains errors, report this on the status bar
      syntax: default: use colors that are readable also on dark backgrounds
      titlebar: don't reshow version when dropping back to a single buffer
      titlebar: don't show nano's name and version when in the file browser
      titlebar: drop the prefix "File: " from before the filename
      tweaks: add a translator hint, and adjust two others
      tweaks: adjust a comment, and condense a fragment of code
      tweaks: adjust indentation and comments after the previous change
      tweaks: adjust two comments, and correct and a few cosmetic mistakes
      tweaks: avoid an unused-variable warning with --disable-nanorc
      tweaks: change some mayday messages, to urge the user to report a bug
      tweaks: change the arrows to triangles also for searching in file browser
      tweaks: change the help-text arrows to triangles, to be more visible
      tweaks: chuck a bunch of asserts -- they have lost their usefulness
      tweaks: chuck an assert, and then condense the code and a comment
      tweaks: constify the result strings of getenv(), as a reminder
      tweaks: correct two minor things in the documentation
      tweaks: discard another set of useless asserts
      tweaks: discard some obsolete debugging stuff
      tweaks: don't construct the positions-history filename time and again
      tweaks: drop a bunch of outdated asserts
      tweaks: drop the ineffective cgitrc -- sorting by "age" does not work
      tweaks: elide a comment, and improve a couple of others
      tweaks: elide an unneeded check
      tweaks: elide an unneeded function now that stuff is grouped together
      tweaks: elide a superfluous allocation
      tweaks: elide two variables by using a pointer instead of an index
      tweaks: fix compilation when configured with --disable-histories
      tweaks: fix compilation when configured with --enable-tiny
      tweaks: fix compilation with --enable-tiny --enable-histories
      tweaks: frob a couple of comments
      tweaks: frob some comments and rename a few variables and a function
      tweaks: get rid of some cluttering conditional compilation
      tweaks: improve some comments, and rename a variable for symmetry
      tweaks: make the switching on and off of the cursor a bit more compact
      tweaks: move a general function to the utils.c file
      tweaks: reduce a bit of code duplication
      tweaks: remove a comment from the docs that is no longer accurate
      tweaks: remove another bit of conditional compilation
      tweaks: remove a superfluous no-op function call
      tweaks: remove a useless prefix from a hundred constants
      tweaks: rename a function and swap its two parameters
      tweaks: rename a function plus two parameters, to be more fitting
      tweaks: rename a macro, to make a little more sense
      tweaks: rename a variable, to avoid a possible confusion
      tweaks: rename a variable, to make more sense
      tweaks: rename one variable once more
      tweaks: rename some constants, to follow the same underscoreless scheme
      tweaks: rename three functions, to be shorter or clearer
      tweaks: rename three variables, for more contrast
      tweaks: rename two variables, for contrast, and frob some comments
      tweaks: rename two variables, to be more indicative of what they do
      tweaks: rename two variables, to make a little more sense
      tweaks: reshuffle a bit of code and elide an unneeded variable
      tweaks: reshuffle a couple of lines, and trim some comments
      tweaks: reshuffle some code, and rename a variable
      tweaks: reshuffle some code in order to elide a variable
      tweaks: reshuffle some regexes, for order and compactness
      tweaks: strip four unneeded checks
      tweaks: transform the token DISABLE_COLOR to ENABLE_COLOR
      tweaks: transform the token DISABLE_EXTRA to ENABLE_EXTRA
      tweaks: transform the token DISABLE_HISTORIES to ENABLE_HISTORIES
      tweaks: transform the token DISABLE_JUSTIFY to ENABLE_JUSTIFY
      tweaks: transform the token DISABLE_OPERATINGDIR to ENABLE_OPERATINGDIR
      tweaks: transform the token DISABLE_SPELLER to ENABLE_SPELLER
      tweaks: transform the token DISABLE_WRAPJUSTIFY to ENABLED_WRAPORJUSTIFY
      tweaks: transform the token DISABLE_WRAPPING to ENABLE_WRAPPING
      tweaks: use mnemonic constants instead of TRUE and FALSE

Brand Huntsman (3):
      bindings: allow exiting from the help viewer with F1, like with ^G
      history: prevent overwriting of positions between multiple instances
      syntax: nanohelp: colorize Up, Down, Left and Right (when not in UTF-8)

David Lawrence Ramsey (18):
      build: add history.c to the list of files with translatable strings
      display: don't cut off zero-width characters at the end of a chunk
      docs: describe the bindable functions 'recordmacro' and 'runmacro'
      docs: document the more everyday names of three bindable functions
      docs: remove man page reference to indent/unindent lacking undo/redo
      files: don't change file format when inserting into an existing buffer
      help: allow firstline and lastline to work at the search prompt
      history: fix the check for an existing $HOME/.nano/ directory
      moving: set the preferred column properly when doing a smart home
      search: don't bother saving and restoring the search direction
      search: trim a failed search string for width instead of length
      softwrap: break before multi-column Unicode blanks when they overshoot
      syntax: nanorc: properly color valid arguments of 'selectedcolor'
      text: hook up indenting and unindenting to the undo/redo code
      text: move the indenting of a single line into its own function
      text: move the unindenting of a single line into its own function
      tweaks: use printf's z modifier for most of the size_t/ssize_t types
      undo: generalize update_comment_undo() into update_multiline_undo()

Lion Yang (1):
      input: ensure that standard input uses blocking mode

Marco Diego Aurélio Mesquita (5):
      general: do not free strings gotten from getenv(), to avoid a crash
      history: remember the commands that were executed during this session
      history: remember the list of executed commands across sessions
      new feature: show current and total number of open buffers in title bar
      new feature: the ability to record and play back a series of keystrokes

Simon Ochsenreither (1):
      startup: look for nanorc and history files also in the XDG directories

Viorel Bota (1):
      files: check for a changed disk file also for 'savefile' and --tempfile


Changes between v2.8.6 and v2.8.7:
----------------------------------

Benno Schulenberg (54):
      bindings: hard-bind Alt+Up and Alt+Down to findprevious and findnext
      browser: correct the inverted search behavior for Alt+Up/Alt+Down
      bump version numbers and add a news item for the 2.8.7 release
      display: catch all cases where the cursor can be pushed offscreen
      display: don't doubly show tabs that cross a chunk boundary
      files: do not silently ignore an invalid backup directory, but die
      files: don't close a file descriptor when opening failed  [coverity scan]
      files: don't try to open a negative file descriptor  [coverity scan]
      gnulib: update to its current upstream state
      linting: don't try to put the cursor at a negative x position
      linting: skip the introductory message produced by 'gcc -fshow-column'
      mouse: one click of the wheel should move three lines, not three pages
      moving: don't push x forward when backward movement lands on a split tab
      moving: get <Up> unstuck when trying to pass over a sprawling tab
      moving: improve retention of the target column somewhat
      moving: the current chunk is always 0 when not in softwrap mode
      moving: use the correct formula for pushing the index forward
      rcfile: don't leak a shortcut when something goes wrong  [coverity scan]
      softwrap: properly move up and down over tabs that are split over rows
      syntax: c: give labels some color too
      syntax: html: don't bother coloring tags that cross line boundaries
      syntax: python: don't require a character after an opening triple quote
      text: properly unindent lines that consist of only whitespace
      tweaks: a comma does not end a sentence, and is not part of a variable
      tweaks: adjust the indentation after the previous change
      tweaks: adjust the indentation after the previous change
      tweaks: adjust the indentation after the previous change
      tweaks: allow enough space for the Y/N/A characters  [coverity scan]
      tweaks: avoid trying to stat a file that might be NULL  [coverity scan]
      tweaks: close a file also in the error path  [coverity scan]
      tweaks: condense or improve some comments
      tweaks: condense some logic, to elide a variable and a comment
      tweaks: do not leak the indentation when all lines are empty
      tweaks: don't close a descriptor when its stream has already been closed
      tweaks: drop some debugging stuff
      tweaks: drop some debugging stuff, and frob two comments
      tweaks: elide an unneeded pointer
      tweaks: elide the global variable 'full_operating_dir'
      tweaks: fix compilation with --enable-{tiny,help,multibuffer}
      tweaks: group all movement routines in corresponding pairs
      tweaks: keep the const qualifier of the syntax name  [coverity scan]
      tweaks: remove includes that appear to be superfluous
      tweaks: rename a function, to let it make more sense
      tweaks: rename a label, to better match its task
      tweaks: renumber the special key codes, to be in sequence and grouped
      tweaks: reshuffle code and frob comments, to reduce the number of lines
      tweaks: reshuffle some code to harmonize two related functions
      tweaks: reshuffle some declarations and trim a few comments
      tweaks: restore an include that is necessary on some platforms
      tweaks: show "where is next" in the help lines of the file browser
      tweaks: simply set the proper scrolling mode, instead of imitating it
      tweaks: snip a superfluous clearing of the bottom bars after help
      tweaks: sort the includes, so it's a little easier to see what is there
      tweaks: specify more directly in what manner to move the viewport

David Lawrence Ramsey (23):
      browser: allow backward/forward re-searches with Alt+Up/Alt+Down
      display: constrain line numbers on softwrapped lines with sprawling tabs
      display: do show the visible character for a tab when it starts a row
      display: revamp how screen updates are done in the movement code
      moving: redraw not just the new current line but also the prior one
      small addition: allow customizing the color of selected text
      softwrap: correctly move vertically through overwide tabs
      softwrap: don't push a straddling tab to the next chunk
      softwrap: improve left/right navigation across line boundaries
      softwrap: make sure char_len is set when a tab is wider than a chunk
      softwrap: properly update the viewport when adding text at firstcolumn
      text: make indenting add to the beginning of the line
      text: make unindenting remove from the beginning of the line
      tweaks: adjust spacing and wording in sample.nanorc
      tweaks: correct a comment typo and an indentation error
      tweaks: harmonize some prototypes with their functions
      tweaks: remove unneeded parentheses and blank line and braces
      tweaks: replace a misplaced tab with a space
      tweaks: set the target row for smooth scrolling more directly
      tweaks: use charalloc() instead of (char *)nmalloc() * sizeof(char)
      weeding: drop the forreal parameter from place_the_cursor()
      weeding: remove redundant casts of nmalloc()
      weeding: remove the unused be_clever parameter from do_home()/do_end()

Rishabh Dave (1):
      new feature: allow pasting at all input prompts

Urja Rannikko (1):
      bindings: hard-bind Alt+Left and Alt+Right to buffer switching


Changes between v2.8.5 and v2.8.6:
----------------------------------

Benno Schulenberg (58):
      build: for Solaris, tell the linker to use a threading lib
      bump version numbers and add a news item for the 2.8.6 release
      display: avoid a jumpy cursor by redrawing bottom bars only when needed
      display: when back in the main loop, always redraw the help lines
      display: wipe stale messages from the status bar straightaway
      docs: add some more mark-up to the Info document
      docs: be more precise about when a dash is given instead of a filename
      docs: drop the cluttering Info-style links from the HTML manual
      docs: improve cross references and mark-up in the Info document
      docs: improve some spacing, especially of the synopsis in the PDF
      docs: make the guillemot and the middle dot appear correctly in HTML
      docs: move the descriptions of 'header' and 'magic' next to 'syntax'
      docs: remove the mention of backslashes for the argument of 'comment'
      docs: reword the explanation of the 'syntax' command
      docs: use real cross references in the Info document
      docs: use the @command and @option mark-up more consistently
      files: don't bother counting rows when opening a fresh buffer
      files: warn more conspicuously when the file on disk has changed
      gnulib: update to its current state
      input: recognize the Ctrl+Arrow key sequences from Haiku's Terminal
      options: recognize -a and --atblanks on the command line
      options: rename --cut to --cutfromcursor, to be clearer
      pasting: restore the cap on the number of chunks to move backward
      rcfile: don't require backslashing in the argument of 'comment'
      screen: defeat a VTE/Konsole bug also for the case of --constantshow
      screen: retain the same help-line tags when the window is resized
      softwrap: when possible, go back a whole bunch of chunks at a time
      startup: don't try parsing color names that were not specified
      startup: in default mode, display the tail of the file as Pico does
      suspension: prevent entering an invalid byte upon resume (with S-Lang)
      syntax: gentoo: make it clearer that the file contains two syntaxes
      syntax: man, groff: fix the string that introduces a comment
      syntax: nanorc: don't color numeric arguments specially
      syntax: nanorc: don't color the argument of 'linter' as if invalid
      syntax: texinfo: cover also some special cases like @U, @OE and @TeX
      tweaks: adjust an error message so it fits all possible cases
      tweaks: avoid a clang warning about an expression being treated as NULL
      tweaks: avoid a failure with black diamonds in a PDF
      tweaks: avoid an unused-variable warning for the tiny version
      tweaks: chuck some debugging stuff
      tweaks: chuck two useless asserts, and elide a call to strncasecmp()
      tweaks: correct two conditions for conditional compilation
      tweaks: drop a bunch of useless asserts
      tweaks: elide unneeded calls of get_last_chunk_leftedge()
      tweaks: fix compilation with --enable-tiny
      tweaks: move an include to the file that actually makes use of it
      tweaks: put declarations always first, so it will compile on Haiku
      tweaks: recognize the empty string as comment inhibitor, instead of NULL
      tweaks: remove two superfluous includes
      tweaks: rename a constant, to match the corresponding option
      tweaks: rename another constant, to be more precise
      tweaks: rename a variable, to have more contrast
      tweaks: rename four functions, to be more distinct
      tweaks: rename two variables, to make a little sense
      tweaks: reshuffle some things to condense the code
      tweaks: simplify the parsing of color combinations
      tweaks: spell an option correctly in NEWS
      tweaks: swap ^X and ^L in the help lines of the help viewer

David Lawrence Ramsey (29):
      display: when converting tabs, don't go beyond the screen width
      docs: consistently describe the -U/-c and -r/-w overrides
      docs: mention that boldtext can be overridden also for function tags
      docs: mention the default values for comment and whitespace directives
      moving: fix the cursor jumping back and forth with non-smooth paging
      moving: make vertical movement account for varying chunk width
      new feature: allow lines to be softwrapped at whitespace
      replacing: make spotlight() account for varying chunk width
      softwrap: add new functions for chunks of varying width
      softwrap: don't flag EOL too early, nor break continuous text too early
      softwrap: in do_mouse(), keep the cursor before a softwrap breakpoint
      softwrap: make the changes to actually allow the chunk width to vary
      softwrap: prepare for allowing the chunk width to vary
      softwrap: remove unneeded caps on the number of chunks to move
      syntax: nanorc: properly color a "fill" option with a negative value
      text: adjust the comments in do_indent() and do_unindent()
      text: make do_unindent() an exact copy of do_indent()
      text: make sure commenting is disabled when comment "" was specified
      text: normalize the indentation in do_indent() and do_unindent()
      text: remove indent-related code from do_unindent()
      text: remove the last usage of cols in do_indent() and do_unindent()
      text: remove unindent-related code from do_indent()
      text: remove unneeded references to cols from the indentation routines
      text: update placewewant properly when indenting/unindenting
      tweaks: correct a parameter type, and correct two empty initializations
      tweaks: fix a typo in NEWS
      tweaks: only compensate for a partially-offscreen line in softwrap mode
      tweaks: remove unneeded braces, and mark empty parameter list as void
      usage: a dash doesn't have to come first among the filenames


Changes between v2.8.4 and v2.8.5:
----------------------------------

Benno Schulenberg (35):
      bindings: in the tiny version exclude word jumping from the prompts
      bump version numbers and add a news item for the 2.8.5 release
      display: don't let a SIGCONT write anything to the screen
      display: don't show the cursor while we are busy calculating its position
      display: redraw title bar and edit window only when needed
      display: show the cursor position also when searching took a while
      docs: avoid a double "see" for cross references in the HTML manual
      docs: spell "title bar" and "status bar" correctly
      gnulib: update to its current state
      input: give an appropriate message when there are too many errors
      startup: allow negative line and column numbers on the command line
      startup: allow positioning the cursor also when reading standard input
      startup: always open with the file that was mentioned first
      startup: don't crash when opening standard input would fail
      startup: don't mark the buffer as modified when in view mode
      startup: don't mark the buffer as modified when nothing was read
      startup: don't try placing the cursor when reading standard input failed
      startup: don't use position history when reading from standard input
      suspension: fake a SIGWINCH when coming back out of the background
      suspension: remove a duplicate setting of the HUP and TERM handler
      syntax: default: allow leading whitespace before a hash comment
      tweaks: adjust indentation after preceding changes
      tweaks: avoid compiler warning about implicit type
      tweaks: be consistent in the spelling of title bar and status bar
      tweaks: don't bother calculating the position when we won't show it
      tweaks: elide a function that should not be a separate one
      tweaks: elide a variable
      tweaks: frob a few comments, and elide and #ifndef
      tweaks: reduce the scope of three variables, and rename them besides
      tweaks: reduce the scope of two variables, and rename them too
      tweaks: rename a function and a variable, to better match what they do
      tweaks: rename a variable, and frob a couple of comments
      tweaks: rename two functions and a variable, and invert its logic
      tweaks: reshuffle some stuff, to put related things closer together
      tweaks: unglobalize the nodelay_mode variable


Changes between v2.8.3 and v2.8.4:
----------------------------------

Benno Schulenberg (11):
      build: correct the inverted logic for the nanorc man page
      bump version numbers and add a news item for the 2.8.4 release
      gnulib: update to its current state
      syntax: default: color also hash comments and email addresses
      syntax: php: color "static" again as "function", like it used to be
      tweaks: adjust the indentation after the preceding change
      tweaks: avoid an unused-variable warning when using --disable-comment
      tweaks: do actual screen refreshes in a single call, when possible
      tweaks: remove the no-op x$disable tests
      tweaks: reorder three items in the Info document
      tweaks: reshuffle a few things to reduce duplication


Changes between v2.8.2 and v2.8.3:
----------------------------------

Benno Schulenberg (34):
      bindings: allow toggling a new buffer when multiple buffers are enabled
      build: don't use a dummy dependency, as it breaks non-GNU makes
      build: for Solaris, tell the linker where to find clock_gettime()
      build: use backticks to avoid a warning during autoreconf
      build: use the "force" mechanism to always run the revision rule
      bump version numbers and add a news item for the 2.8.3 release
      chars: optimize moving a character left in the non-UTF-8 case
      chars: probe for a valid UTF-8 starter byte, instead of overstepping
      chars: valid UTF-8 codes are at most 4 bytes long, so look only that far
      display: keep the cursor put, also when toggling nohelp or morespace
      files: don't ask "save anyway" when user orders to discard the buffer
      history: don't save the cursor position for temporary help files
      moving: limit the target column when it is beyond the last chunk
      replacing: don't let placewewant influence the placement of the cursor
      startup: don't call delwin() with NULL, to avoid crashing on Solaris
      syntax: makefile: color comments only at start of line or after whitespace
      syntax: nanohelp: color also ^6 as a shortcut keystroke
      syntax: php: color also variable names, and color more reserved words
      syntax: php: recognize also the .phtml and .php7 extensions
      syntax: xml: recognize an XML file also by its first line
      tweaks: add another warning for an impossible condition
      tweaks: adjust whitespace and comments after the preceding change
      tweaks: avoid an empty function call in tiny version with line numbers
      tweaks: exclude from the tiny version five error-betraying messages
      tweaks: exclude from the tiny version two messages that will never occur
      tweaks: fix compilation with --enable-tiny ...-help and ...-multibuffer
      tweaks: remove an old fault-catching message
      tweaks: remove five dummy function definitions from the tiny version
      tweaks: rename three empty functions, and reshuffle some others
      tweaks: rewrap a couple of old items in NEWS, and fix an article
      tweaks: swap a comparison, to be clearer
      tweaks: transform the token DISABLE_BROWSER to ENABLE_BROWSER
      tweaks: transform the token DISABLE_NANORC to ENABLE_NANORC
      tweaks: transform the token DISABLE_TABCOMP to ENABLE_TABCOMP

David Lawrence Ramsey (2):
      display: ensure smooth scrolling when the edit window is resized
      tweaks: fix several whitespace irregularities


Changes between v2.8.1 and v2.8.2:
----------------------------------

Benno Schulenberg (64):
      bindings: allow using <Backspace> to scroll back up in the help viewer
      bindings: allow using '/' to start a search in the help viewer
      bindings: show Home and End in browser help text, instead of M-| and M-?
      browser: make ^End work properly by fixing a paste error
      build: make --enable-help properly depend on --enable-multibuffer
      bump version numbers and add a news item for the 2.8.2 release
      display: initialize the colors only when starting to draw the content
      display: push the titlebar to the screen as soon as it has been drawn
      docs: add an item to the FAQ, about pasting from Windows to a remote nano
      docs: harmonize the nanorc man page and Info document a bit
      docs: in the FAQ, extend the answer to the pasting problem
      docs: reword the main paragraph of the man page
      docs: update the list of who authored what
      gnulib: update to its current state in git
      help: after a search, show the cursor only when something was found
      help: allocate enough space for the descriptions, so we don't crash
      help: don't crash when nano was started with --noread
      help: don't cycle forward in the buffers when exiting from help
      help: keep the same position also after M-\ or M-/ has been used
      help: keep the text at the same position when the screen is resized
      help: remove the final blank line, so <End> does the same as all <Down>
      help: set tabsize to the default width while showing a help text
      help: suppress nano's name and number to make it clearer this is help
      help: use a dedicated syntax to color shortcuts in a help text
      help: when searching, do it forward, without case, and without regexes
      input: avoid crashing when resizing the window during verbatim input
      options: allow -U (--quickblank) to be used in the tiny version
      scrolling: don't bother to limit the number of lines to step back
      startup: warn about a strange character size only in the UTF-8 case
      syntax: nanohelp: change the hue of the keystrokes to match sample.nanorc
      tweaks: add a warning for a condition that should never occur
      tweaks: add three warnings for conditions that should never occur
      tweaks: avoid an unused-variable warning
      tweaks: be more precise about what --disable-extra does
      tweaks: check for an empty needle in a central place
      tweaks: complete the exclusion of backups and such from the tiny version
      tweaks: condense two bits of code, and drop two asserts
      tweaks: distinguish (in the comments) between buffers and linestructs
      tweaks: drop a bunch of asserts
      tweaks: elide a function that is used just once
      tweaks: fix compilation with --enable-tiny --enable-color --enable-speller
      tweaks: fix two typos
      tweaks: remove a superfluous check
      tweaks: remove a superfluous strlen() call from the reverse searches
      tweaks: remove some superfluous placements of the cursor
      tweaks: remove two superfluous calls of wnoutrefresh()
      tweaks: rename a constant, to match the corresponding option
      tweaks: rename a function, to be more accurate
      tweaks: rename a function, to better suit what it does
      tweaks: rename another function, to better describe what it does
      tweaks: rename a parameter, to be more imperative
      tweaks: rename a variable, use a faster comparison, and reshuffle a bit
      tweaks: rename one variable again
      tweaks: rename some more of these 'rev_start' variables
      tweaks: rename three variables, elide another, and reshuffle some stuff
      tweaks: rename two variables, because this 'rev_start' is irksome
      tweaks: reshuffle a couple of lines to avoid a duplicate call
      tweaks: reshuffle help-text initialization, to elide a save-and-restore
      tweaks: reshuffle some more stuff, and rename two more variables
      tweaks: swap the names of two variables, to make more sense
      tweaks: transform the token DISABLE_MOUSE to ENABLE_MOUSE
      tweaks: transform the token DISABLE_MULTIBUFFER to ENABLE_MULTIBUFFER
      tweaks: use the logic from revstrstr() also in mbrevstrcasestr()
      tweaks: use the logic from revstrstr() also in revstrcasestr()

David Lawrence Ramsey (1):
      docs: mention that also numbercolor overrides boldtext

Rishabh Dave (1):
      new feature: add a search facility to the help viewer


Changes between v2.8.0 and v2.8.1:
----------------------------------

Benno Schulenberg (33):
      bindings: make ^Home and ^End go to top and tail of buffer
      bindings: make ^Up/^Down go to first/last row in the file browser
      bindings: use arrows instead of words to designate the cursor keys
      bump version numbers and add a news item for the 2.8.1 release
      copyright: update the year in --version, and use the standard hyphen
      copyright: update the years, use ranges, and explain this usage
      display: check the correct character for being double-width
      display: with softwrap, show the cursor where the eye expects it
      docs: correct an answer to a question in the FAQ
      docs: mention another difference with Pico in the Info document
      docs: remove the self-referencing stuff and the changelog from the FAQ
      docs: trim the TODO file a bit, and put the more important items first
      editing: avoid creating blank lines when using autoindent
      files: check also for write errors when prepending, not just read errors
      gnulib: update to current state
      linting: treat a tab as one "column", not eight
      linting: when no is said to a file, remove all corresponding entries
      moving: when determining where we are on the screen, use placewewant
      tweaks: adjust a couple of comments
      tweaks: again use memory on the stack instead of malloc() and free()
      tweaks: close the backup file also when we skip making a backup
      tweaks: delete a function that hasn't been used since 2005
      tweaks: delete unnecessary function prototypes
      tweaks: elide a variable and a pair of braces
      tweaks: fix some inconsistencies in an old Changelog
      tweaks: fix two typos in the NEWS file
      tweaks: group ^D and ^H together in the help lines
      tweaks: keep the help text aligned, also with the narrow arrows
      tweaks: put M-A before ^6, to look better above M-6 in the help lines
      tweaks: put unshifted shortcuts ^6 and M-6 first, instead of ^^ and M-^
      tweaks: reduce the number of additions that actual_x() performs
      tweaks: replace a function call or a macro with a hard number
      tweaks: use memory on the stack instead of calling malloc() and free()

David Lawrence Ramsey (5):
      bindings: use arrows instead of words for search history too
      display: show '<' and '>' placeholders for characters that get split
      input: support escape sequences for ^Home and ^End
      scrolling: properly compensate for the onscreen chunks
      tweaks: avoid a compilation warning

Kamil Dudka (1):
      backup: prevent a symlink attack by operating on the file descriptor

Mike Frysinger (2):
      configure: fix up word boundary regex logic now that we have gnulib
      configure: ignore the REG_ENHANCED test when we use gnulib


Changes between v2.7.5 and v2.8.0:
----------------------------------

Benno Schulenberg (56):
      bindings: accept "q" and "x" to exit from help viewer and file browser
      bindings: group the three search-again shortcuts together
      bump version numbers and add a news item for the 2.8.0 release
      docs: mention some more differences with Pico in the Info document
      files: drop the pointless "[from ./]" from the insert-file prompt
      files: on second thought... keep the "[from ./]"
      input: count a manually entered unicode as one character
      moving: don't try to redraw lines that have gone outside the viewport
      moving: /do/ redraw the prior line when the viewport hasn't changed
      moving: the current chunk cannot be beyond the last chunk of a line
      oops -- that's what you get when you don't test things before pushing
      painting: don't try to start highlighting before column zero
      screen: don't push the longer-line indicator ($) to the next row
      spelling: keep the cursor at end-of-line if it was there
      startup: add option 'nopauses' to disable pausing after a warning
      tweaks: add a warning for a condition that should never occur
      tweaks: avoid a few needless reallocations
      tweaks: chuck some debugging stuff and some useless asserts
      tweaks: condense some declarations by reshuffling
      tweaks: correct some formatting irregularities in the FAQ
      tweaks: don't loop over an initializer
      tweaks: don't optimize for the wrong case
      tweaks: don't turn the mark off before it's needed
      tweaks: ehm... the warning is more important for the softwrap case
      tweaks: elide an intermediate variable
      tweaks: elide a small intermediate buffer
      tweaks: elide a variable
      tweaks: elide two variables, and condense some statements
      tweaks: factor out a bit of common code
      tweaks: fix compilation with --enable-tiny --enable-help
      tweaks: frob a couple of comments
      tweaks: frob some parentheses and other things, to be more consistent
      tweaks: gettextize a forgotten error message
      tweaks: make WhereIsNext available in browser in tiny version
      tweaks: mark a message for translation
      tweaks: optimize determining the number of columns that a text spans
      tweaks: reduce the scope of five variables, and frob some comments
      tweaks: remove a disabled warning, and adjust a translator hint
      tweaks: rename and shorten a small helper function
      tweaks: rename a variable and invert its logic
      tweaks: rename a variable, drop a false assert, and reshuffle a bit
      tweaks: rename three variables, to better distinguish bytes from columns
      tweaks: rename two variables, to be more distinctive
      tweaks: reshuffle some lines and adjust some comments
      tweaks: reshuffle some more lines and improve four comments
      tweaks: reshuffle some statements, to avoid double assignments
      tweaks: reshuffle the bindings to group things more logically
      tweaks: reshuffle three statements, and shorten a comment
      tweaks: reshuffle two declarations for a more consistent order
      tweaks: shorten a bit of logic
      tweaks: simplify and correct a computation
      tweaks: suggest a separate color scheme for root
      tweaks: trim a displayable string in a more efficient manner
      tweaks: use two extra variables to make it clearer what is being done
      usage: don't mention +LINE,COLUMN as an option, because it isn't
      wrapping: add the correct char length when skipping consecutive blanks

David Lawrence Ramsey (52):
      configure: don't check for the existence of iswspace() anymore
      display: don't compensate for chunks before firstcolumn
      display: don't draw more chunks than the screen can hold
      display: limit an optimization to non-softwrap mode
      display: make PageUp/PageDown use the correct beginning of the viewport
      docs: update README.GIT for gnulib-related changes
      files: revamp the insertion of a file, to be more like pasting text
      moving: determine the correct leftedge when paging up/down too
      replacing: fix spotlight() to highlight words properly in softwrap mode
      softwrap: account for firstcolumn in reset_cursor()
      softwrap: account for firstcolumn when checking for offscreen current
      softwrap: account for firstcolumn when scrolling up a line
      softwrap: account for softwrap in get_page_start()
      softwrap: account for softwrapped chunks when adding text
      softwrap: account for softwrap when checking whether current is offscreen
      softwrap: add two chunk-iterator functions
      softwrap: adjust firstcolumn when the window width changes
      softwrap: count softwrapped chunks properly in do_gotolinecolumn()
      softwrap: count softwrapped chunks properly in do_uncut_text()
      softwrap: count softwrapped chunks properly in read_file()
      softwrap: improve End's behavior with softwrapped chunks
      softwrap: improve Home's behavior with softwrapped lines
      softwrap: improve Left and Right's behavior with softwrapped chunks
      softwrap: improve PageUp and PageDown's behavior with softwrapped chunks
      softwrap: improve Up and Down's behavior with softwrapped chunks
      softwrap: iterate through softwrapped chunks better in do_mouse()
      softwrap: iterate through softwrapped chunks in adjust_viewport()
      softwrap: iterate through softwrapped chunks in edit_scroll()
      softwrap: move the updating of a softwrapped line to a new function
      softwrap: prepare for a more flexible viewport
      softwrap: remove and replace workarounds for firstcolumn
      softwrap: save and restore firstcolumn when copying text
      softwrap: save and restore firstcolumn when internally spell-fixing text
      softwrap: save and restore firstcolumn when replacing text
      softwrap: save firstcolumn when justifying, restore it when unjustifying
      speller: fix replacing marked text in the alternate spell checker
      syntax: nanorc: color also the option "linenumbers" as being valid
      tweaks: add a parameter to do_home() and do_end()
      tweaks: fix a comment typo
      tweaks: mention nano's ability to read from standard input in usage()
      tweaks: move comments outside of if blocks in break_line()
      tweaks: prepare for improvements to do_home() and do_end()
      tweaks: remove cluttering #ifdefs from break_line()
      tweaks: rename need_horizontal_scroll() to line_needs_update()
      tweaks: slightly optimize an allocation in display_string()
      tweaks: stop converting text once we overshoot span columns
      undo: fix undoing/redoing insertions, since they no longer do partitioning
      usage: mention the -g/--showcursor option
      weeding: remove ensure_line_is_visible()
      weeding: remove maxlines and related code
      weeding: remove partitioning and related stuff from do_insertfile()
      weeding: remove partitioning and related stuff from do_justify()

Hans-Bernhard Broeker (1):
      tweaks: make sure calls to <ctype.h> functions/macros use "unsigned char"

Mike Frysinger (19):
      add an explicit test for set_escdelay()
      add support for gnulib
      assume getopt_long support is always available
      assume regex.h support is always available
      configure: require autoconf-2.69/automake-1.14
      configure: require gettext-0.18.3, and drop our bundled m4 files
      drop the getdelim/getline fallback functions
      drop the glib fallback for snprintf/vsnprintf
      drop the isblank/iswblank fallback functions
      drop the wchar.h/wctype.h/stdarg.h checks
      drop various str fallback functions
      fix build on systems without pwd.h
      handle builds on systems without termios.h
      handle deficient signal systems
      pull in the glob module from gnulib
      pull in the lstat module from gnulib
      pull in the nl_langinfo & wcwidth modules from gnulib
      pull in the sys_wait module from gnulib
      tweaks: disable gnulib's workaround for the globbing of broken symlinks


Changes between v2.7.4 and v2.7.5:
----------------------------------

Benno Schulenberg (65):
      bump version numbers and add a news item for the 2.7.5 release
      files: leave out the confusing "[from ./]" when prompting for a command
      general: stop the spell checker from crashing after the changes in search
      justify: reduce the character count when trimming trailing spaces
      painting: account for index maybe being zero after the preceding change
      painting: advance only when both start /and/ end match are zero-length
      painting: do not bluntly ignore zero-length start matches -- handle them
      painting: do not let a match for 'end' overlap a match for 'start'
      painting: don't look at the current multidata when coloring a line
      painting: make use of the multidata of the preceding line
      painting: mark an unpaired start match as CWOULDBE
      painting: properly detect a change in start/end matches
      painting: properly look for a new start match only after the end match
      painting: stay within the line when skipping zero-length matches
      painting: when skipping a zero-length match, skip a character, not a byte
      rcfile: don't accept empty regexes for syntax coloring
      replacing: compensate cursor position only for replacements /before/ it
      replacing: detect when the whole region has already been covered
      replacing: don't go outside of the selected region
      replacing: ignore the first match when the user said no
      replacing: start at the region's edge instead of one step before it
      replacing: stop searching in a region when edge of buffer is reached
      screen: don't compare a character index with a column position
      screen: ehm... no, that was wrong: page_start /is/ a column position
      search: begin from where we are, to be able to find the first \B
      search: make the \b and \B anchors work correctly in both directions
      spelling: correctly adjust the length of a single-line region
      spelling: don't unnecessarily fiddle with the viewport
      startup: report an error when the given line or column number is invalid
      statusbar: display at most three consecutive alert messages
      tweaks: adjust some comments, reshuffle a line, and use a while loop
      tweaks: adjust two comments, to be more accurate
      tweaks: adjust whitespace after preceding changes
      tweaks: and rename another variable, to keep in style
      tweaks: chuck some obscuring debugging stuff
      tweaks: condense a comment, rename a variable, and use a while loop
      tweaks: differentiate single-regex matches from paired-regex matches
      tweaks: discard the now unused multidata-resetting routine
      tweaks: elide a variable plus its corresponding dark logic
      tweaks: fiddle with some wordings in the texinfo document
      tweaks: free an option string also when it was invalid
      tweaks: move a comment and rewrap a line
      tweaks: normalize some paragraph formatting in the FAQ
      tweaks: rearrange some code to separate softwrap and normal mode more
      tweaks: rename a function, and drop an unneeded parameter
      tweaks: rename a function, to show it refers to screen rows
      tweaks: rename another variable, to be shorter
      tweaks: rename a variable and condense an if
      tweaks: rename a variable -- lines refers to buffer, rows to screen
      tweaks: rename a variable, to be more general
      tweaks: rename a variable, to be more general and match one elsewhere
      tweaks: rename some variables, to better distinguish rows from lines
      tweaks: rename some variables, to show they refer to screen rows
      tweaks: rename two variables, and always pass a valid result back
      tweaks: rename two variables, to avoid double negatives
      tweaks: reshuffle an assignment and trim some comments
      tweaks: reshuffle a test to a better place
      tweaks: reshuffle three variables
      tweaks: scrap a bunch of debugging lines -- they obscure the logic
      tweaks: scrap some debugging stuff
      tweaks: slightly speed up the change detection for multiline matches
      tweaks: swap two blocks of code to reduce the number of #ifdefs
      tweaks: update some copyright years
      tweaks: use a cheaper way to detect an end-of-line
      tweaks: use a subtraction instead of a counter

David Lawrence Ramsey (16):
      docs: mention the ability to read from stdin
      screen: don't hide two-column characters at left edge in softwrap mode
      tweaks: adjust and correct some comments
      tweaks: always directly do a refresh when the margin changes
      tweaks: do a comparison a bit differently in do_output() and do_deletion()
      tweaks: fix compilation when configured with --enable-tiny
      tweaks: improve comments and formatting in update_line()
      tweaks: let update_line() return the correct value on error
      tweaks: reduce duplicate code in new_magicline() and move_to_filestruct()
      tweaks: rename a variable and adjust some types in edit_scroll()
      tweaks: rename a variable in edit_redraw(), to make sense
      tweaks: rename a variable in edit_scroll(), to make sense
      tweaks: rename mouse_x & mouse_y to mouse_col & mouse_row in do_mouse()
      tweaks: rename the functions for moving to and copying from a buffer
      tweaks: rewrap two lines and fix two typos
      tweaks: split the grafting code off from copy_from_buffer()

Mike Frysinger (3):
      syntax: c++: add override keyword
      syntax: gentoo: flag mixed whitespace
      syntax: gentoo: match .eblit files too


Changes between v2.7.3 and v2.7.4:
----------------------------------

Benno Schulenberg (48):
      build: check for GNU-style word-boundary support also in the tiny version
      build: include the old Changelogs in the tarball
      build: install the Info and Html manuals even when 'makeinfo' is missing
      build: move all documentation into a single directory
      build: move the syntax files out of the doc/ directory
      build: rename the sample config file, so it will be colored like a nanorc
      bump version numbers and add a news item for the 2.7.4 release
      copy: properly set preferred x position when region was marked backwards
      cut: indicate a buffer as modified only if actually something was deleted
      docs: add a new Changelog -- a list of the short commit messages
      docs: bring some air into the FAQ, so that <Ctrl+Up/Down> become useful
      docs: fix some spellos and trim some trailing tabs in the old Changelog
      docs: rename the Changelogs to indicate which periods they cover
      docs: snip some obsolete items from the FAQ, and normalize its dates
      docs: standardize the dates in the old Changelog
      inserting: adjust the desired x position (don't restore the old one)
      screen: examine the whole line when painting, to set the correct info
      search: make a regex with a beginning-of-word anchor work correctly
      softwrap: don't scroll half a page when just a few lines will do
      softwrap: when pasting an overlong line, ensure it is fully visible
      softwrap: when typing M-/, ensure the last line is fully visible
      syntax: html: be more precise with tags, and paint attribute names
      tweaks: adjust whitespace after the previous change
      tweaks: chuck a couple of useless asserts
      tweaks: condense two ifs to a single one
      tweaks: discard some conditional compilation
      tweaks: don't compare a character offset with a column position
      tweaks: don't use a variable for two different purposes
      tweaks: fix compilation when configured with --disable-wrapping
      tweaks: frob some comments, and transform one variable
      tweaks: frob some comments, elide a variable, and use 'while' loops
      tweaks: if there is no end match, there is nothing to paint
      tweaks: miscellaneous frobbings
      tweaks: rearrange and reindent some lines in the painting routines
      tweaks: remove the cluttering conditional compilation of a parameter
      tweaks: rename another variable, to show it refers to columns not chars
      tweaks: rename a variable, chuck an assert, and frob a comment
      tweaks: rename three painting variables, to be more distinct
      tweaks: rename two variables, for distinguishing characters from columns
      tweaks: rename two variables to be just one as they play the same role
      tweaks: rename two variables, to be more telling
      tweaks: reshuffle a statement to a better place and condense some comments
      tweaks: set the length of a search match in a clearer manner
      tweaks: slightly condense a function and its comment
      tweaks: terminate lots of sentences with a period in the old Changelog
      tweaks: the starting point for painting /cannot/ be offscreen
      tweaks: when allow_tabs is FALSE, allow_files is irrelevant
      undo: properly create separate items for deletes at different positions

David Lawrence Ramsey (7):
      screen: properly place the cursor after inserting a file
      softwrap: ensure the current line is fully visible after inserting a file
      tweaks: avoid an unnecessary fiddling with current_y in do_mouse()
      tweaks: line numbers are ssize_t, not int
      tweaks: move a setting, fix a type, and rearrange a line in do_mouse()
      weeding: remove another unnecessary setting of openfile->current_y
      weeding: remove unnecessary settings of openfile->current_y

Felix Janda (1):
      speller: fix build when tiny build is enabled


Changes between v2.7.2 and v2.7.3:
----------------------------------

Arturo Borrero González (1):
      syntax: nftables: add two new families, and add set references

Benno Schulenberg (62):
      binding: use plain codes instead of function calls for the jumping keys
      binding: use the code for the Enter directly instead of a function call
      bump version numbers and add a news item for the 2.7.3 release
      chars: optimize for the most common case
      chars: use memory on the stack instead of calling malloc() and free()
      docs: clarify the difference between "Esc Esc ddd" and "M-V xxxxxx"
      files: don't change embedded newlines into nulls in filenames
      files: show newlines in filenames as ^J also in error messages
      general: simplify the detection of a SIGWINCH
      history: avoid crashing when the positionlog file is malformed
      history: don't bother encoding search items -- they cannot contain newlines
      history: encode newlines in filenames as nulls
      history: search for the two position numbers from EOL instead of BOL
      history: search items *can* contain newlines -- encoded NUL bytes
      input: detect again when both Shift and Ctrl are being held on a VT
      input: discard a verbatim 0x0A or 0x00 byte, depending on the mode
      input: don't crash when receiving a KEY_CANCEL
      locking: disable an annoying warning
      memory: don't bother making a snug fit for things that will be freed soon
      oops: forgot to add and amend this to the previous commit
      po: update translations and regenerate POT file and PO files
      prompt: do not treat a leading newline in a filename specially
      prompt: represent newlines as ^J instead of breaking the bar
      screen: display byte value 0x0A in the right places as ^@ or as ^J
      screen: draw new content immediately, to prevent color flashes
      screen: show an embedded newline in filenames as ^J instead of ^@
      text: avoid a crash when a spell-checked line has gotten shorter
      text: discard the undo stack after formatting and after spell checking
      titlebar: always pass a pathname through display_string()
      tweaks: adjust some comments and indentation and ordering
      tweaks: chuck a special case, and reduce the scope of two variables
      tweaks: condense the setting of three flags
      tweaks: conditionalize a function that is not used in the tiny version
      tweaks: delete a bunch of unneeded asserts
      tweaks: don't bother making the next line of an end point NULL
      tweaks: don't bother reallocating a string of which there is only one
      tweaks: don't bother trimming the final newline from a position item
      tweaks: drive closer to the edge
      tweaks: elide a counter and a comparison
      tweaks: elide a function that is called just once
      tweaks: move a setting to a better place -- it needs setting just once
      tweaks: put some prototypes in the proper order, and move a bit of code
      tweaks: remove pointless or obscuring asserts
      tweaks: rename a function to describe what it does
      tweaks: rename a function to something less abbrevy
      tweaks: rename a variable and rewrap two lines
      tweaks: rename a variable to be shorter and clearer
      tweaks: rename five variables, for uniformity with a few others
      tweaks: rename four variables, for density and aptness
      tweaks: rename three variables, for visibility
      tweaks: rename three variables, to be more fitting
      tweaks: rename two variables, for self-documentation
      tweaks: retype, rename, and reshuffle a function
      tweaks: start searching at a better place
      tweaks: use a faster comparison
      tweaks: use a slightly faster comparison
      tweaks: use memory on the stack instead of calling malloc() and free()
      tweaks: write two pieces of conditionalized code like all others
      undo: there are just two forms of deletion: backspacing and deleting
      utils: go on to parse the line number even if the column number is bad
      utils: slightly speed up the calculation of the size of a buffer
      version: properly mention --disable-wordcomp if it was used

David Lawrence Ramsey (2):
      tweaks: adjust the type of two arguments
      tweaks: elide two unneeded variables from line numbering mode


Changes between v2.7.1 and v2.7.2:
----------------------------------

Benno Schulenberg (53):
      binding: allow to rebind the word-completion function, and document it
      binding: always initialize some keycode variables to a standard value
      build: add configure option --disable-wordcomp to disable word completion
      build: clean out the revision.h file, to make 'make distcheck' pass
      bump version numbers and add a news item for 2.7.2
      docs: correct and improve the description of --disable-wrapping
      docs: harmonize the indentation of the README, and tweak some wordings
      docs: mention that a foreground color can be bright
      docs: mention that libncursesw5-dev is needed for building from git
      docs: note Sumedh as the author of the word-completion feature
      docs: tweak some lines in the NEWS file
      files: trying to open a non-existent file will never succeed
      input: add the shifted PageUp and PageDown keycodes produced by VTE
      input: distinguish <Alt+Left> from <Alt+Right> on an rxvt terminal
      input: distinguish <Shift+Home> from <Home> on an rxvt terminal
      mouse: use the correct screen width for calculating the cursor position
      oops: the yesno prompt for replacing does not want a visible cursor
      po: update translations and regenerate POT file and PO files
      prompt: remove two fragments of dead code
      rcfile: actually avoid opening directories and devices
      rcfile: actually don't try to open things that cannot be syntax files
      rcfile: check the vital shortcuts just once, not for every included file
      rcfile: let a 'set fill' reenable hardwrapping
      screen: do a refresh before changing the value of 'focusing'
      screen: don't hide the cursor when --constantshow is used
      screen: don't request an update of the edit window for every yesno prompt
      screen: don't restore the previous menu after a yesno prompt
      screen: remove an unneeded blanking of the statusbar
      screen: switch the cursor back on only in the main loop
      screen: use the correct width to determine whether a softwrap occurred
      spelling: correctly restore the selected region
      startup: activate restricted mode earlier, so --help will reflect it
      syntax: don't leave the number after 'fill' and 'tabsize' in red
      syntax: give the statistics part of a git patch a different color
      tweaks: add a few translator hints
      tweaks: correct the wording of a string
      tweaks: delete some obscuring debugging stuff
      tweaks: factor out a small function
      tweaks: fix compilation when configured with --enable-tiny
      tweaks: get rid of some spurious textual references to edit_refresh()
      tweaks: miscellaneous frobbings and rewrappings
      tweaks: move a cursor-on switch to a more logical place (again)
      tweaks: move a switching on of the cursor to a more logical place
      tweaks: remove a bit of obscuring conditional compilation
      tweaks: remove an annoying conditional compilation of an argument
      tweaks: remove a superfluous cleanup call
      tweaks: remove some cluttering conditional compilation
      tweaks: remove some more annoying conditional compilation
      tweaks: rename two variables to make more sense
      tweaks: replace some unneeded direct calls of edit_refresh()
      tweaks: reshuffle some things in a more linear manner
      tweaks: reshuffle three initializations and trim some comments
      tweaks: use a while loop when the end point is not known in advance

David Lawrence Ramsey (8):
      docs: add info about Slang to README.GIT, and improve info about glib2
      files: give feedback when restricted mode prevents overwriting a file
      general: gettextize three overlooked statusbar messages
      input: make Shift+Alt+Arrow work properly on rxvt and Eterm terminals
      input: properly check the full escape sequences for all keys
      moving: always account for the margin when in line numbering mode
      tweaks: adjust the type of four lockfile variables
      tweaks: conditionalize a bit of softwrap code

Mike Frysinger (3):
      configure: fix ncurses lib symbol checking
      syntax: avoid using black colors
      syntax: gentoo: various updates

Sumedh Pendurkar (1):
      new feature: complete a fragment to a longer word found in the buffer


Changes between v2.7.0 and v2.7.1:
----------------------------------

Benno Schulenberg (71):
      binding: fix some duplicated carets and too restrictive menus
      binding: properly conditionalize the UTF-8 parts
      binding: supply the keycode for most special keys directly
      binding: use arrows instead of words to designate the cursor keys
      browser: add the option showcursor, to place the cursor on the highlight
      build: avoid an annoying warning at configure time
      build: avoid updated PO files being remerged upon every make
      bump version numbers and add a news item for 2.7.1
      docs: add 'linenumbers' and 'numbercolor' to the sample nanorc
      docs: add 'set linenumbers' and '--linenumbers' to the texinfo document
      docs: brush up the TODO list
      docs: mark some rebindable function names as deprecated
      docs: mention the existence of the toggles in the man page
      docs: refresh some info in the FAQ
      docs: remove a reference that was only valid on Debian systems
      files: alert about an unwritable file also in the tiny version
      files: mark a new buffer as modified after inserting command output
      general: add the option -g/--showcursor, to match Pico
      general: include word-jumping and block-jumping into the tiny version
      history: slate the search-history migration for removal
      input: don't return zero when some function is completely unbound
      input: handle the "resize key" in a better way
      input: keep the Ctrl+Arrow keys working when their synonyms are unbound
      moving: adjust the Y position to correspond with the changed X position
      po: update translations and regenerate POT file and PO files
      rcfile: add an option to customize the color of line numbers
      screen: defeat a VTE bug by doing an extra cursor move and update
      screen: keep the help items aligned in more configurations
      screen: keep the help items nicely lined up also in the tiny version
      screen: move the margin determination to the main loop
      screen: refresh when a new magicline is added in line-numbering mode
      screen: repaint the edit window in a single place -- the main loop
      screen: suppress line numbers when the terminal is very narrow
      scrolling: don't put the last line at the bottom when softwrap in on
      scrolling: use a comparison that will work also in softwrap mode
      softwrap: ensure the current line is fully visible when moving in it
      softwrap: initialize 'editwincols' early, for computing the number of wraps
      softwrap: scroll 'enough' whenever it surpasses 'amount'
      softwrap: scroll the current line fully into view when jumping words
      softwrap: scroll when searching lands on an overlong bottom line
      startup: allow to rebind the RegExp toggle also in the tiny version
      startup: always initialize 'margin' and 'editwincols'
      syntax: make the contents of the X-Bugs field in a PO file stand out
      syntax: show another deprecated keyword (replace2) in red
      syntax: show deprecated keywords in red, and 'wordchars' in green
      tweaks: adjust some comments and reduce the scope of some variables
      tweaks: adjust some indentation
      tweaks: adjust some whitespace and a comment
      tweaks: compile two parameters unconditionally
      tweaks: don't bother redrawing some lines when whole screen will be redrawn
      tweaks: don't spread a statement over multiple lines unnecessarily
      tweaks: elide an unneeded variable
      tweaks: elide a parameter that is always FALSE
      tweaks: fix compilation when configured with --enable-tiny
      tweaks: frob a few comments
      tweaks: make several small adjustments to the documentation
      tweaks: make tiny nano a teeny bit smaller
      tweaks: move a variable that doesn't need to be global
      tweaks: preen some comments, and reshuffle a few ifdefs
      tweaks: remove a band-aid condition that is no longer needed
      tweaks: remove a bit of duplication
      tweaks: remove a superfluous blanking of the statusbar
      tweaks: remove a superfluous setting, and add a comment
      tweaks: remove a useless cursor movement
      tweaks: rename a function to better describe what it does
      tweaks: rename a variable, for consistency
      tweaks: reshuffle a couple of items
      tweaks: reshuffle an if statement
      tweaks: reshuffle some ifdefs, for less fragmentation
      tweaks: stop compiling the whole_word_only parameter conditionally
      tweaks: use hard-baked keycodes where possible

Faissal Bensefia (1):
      new feature: the ability to show line numbers before the text

Rishabh Dave (2):
      rcfile: reject key names that are wrong or too long
      rcfile: reject rebindings that have no effect or have side effects


Changes between v2.6.3 and v2.7.0:
----------------------------------

Benno Schulenberg (47):
      AUTHORS: add Mahyar Abbaspour and Mike Scalora for their contributions
      bottombar: only count help items that have a shortcut bound to them
      bump version numbers and add a news item for 2.7.0
      docs: explain how to contribute code
      files: close a lockfile after reading it
      input: ignore the resize "key", to prevent reporting an unbound key
      input: look at the modifier keys only when compiled on Linux
      input: unset a softmark whenever a character is typed
      moving: make PgUp and PgDown functional also in very flat terminals
      new feature: allow text selection by holding Shift with the cursor keys
      po: update translations and regenerate POT file and PO files
      prompt: don't crash when the terminal is less than four columns wide
      prompt: leave always at least the last character of the answer visible
      prompt: mouse clicks that moved the cursor need no further processing
      prompt: recompose the statusbar text whenever the window size changes
      prompt: set up the prepared answer before allowing to change it
      prompt: show a trailing $ when the tail of the answer is offscreen
      prompt: use angular brackets as continuation mark, as Pico does
      prompt: work around a VTE bug by outdancing an ncurses optimization
      restore the GNU marker in nano's name
      screen: continue to function also in a terminal with very few lines
      screen: don't die when the window is narrower than four columns
      screen: retain the placewewant also when using an alternate speller
      startup: don't crash when dying early
      statusbar: leave out the brackets when the message is very long
      tweaks: adjust indentation after previous change
      tweaks: adjust indentation after previous change
      tweaks: adjust some braces and indentations
      tweaks: adjust some comments and remove needless asserts
      tweaks: don't bother avoiding unneeded rewrites of the promptbar
      tweaks: don't bother trimming the prompt again
      tweaks: elide a variable and rename some others
      tweaks: fix compilation when configured with --with-slang
      tweaks: fix compilation with --disable-histories
      tweaks: fix compilation with --enable-tiny again
      tweaks: improve some indentation and reshuffle a few lines
      tweaks: make a call in one place instead of in four different ones
      tweaks: remove an unneeded check, reshuffle some things, add a comment
      tweaks: rename a function and adjust indentation
      tweaks: rename three variables
      tweaks: rename two variables, to make some sense
      tweaks: reshuffle some stuff in a more logical order
      tweaks: reshuffle some things, and remove a misplaced comment
      tweaks: simplify the determination of the number of shown help items
      tweaks: use a separate function to ask ncurses for keycodes
      update the copyright notices
      update the license text to the preferred version


Changes between v2.6.2 and v2.6.3:
----------------------------------

Benno Schulenberg (53):
      bump version numbers and add a news item for 2.6.3
      chars: don't persist when only one of the compared sequences is invalid
      chars: make searching case-insensitively some ten percent faster
      chars: properly compare strings of different lengths
      chars: remove a special case that never occurs
      chars: remove superfluous afterchecks
      chars: straighten out the flow of a loop, so it is easier to follow
      debug: add a timing instrument to the main search routine
      docs: tweak some spacing and spelling
      files: avoid a warning about not being able to write a lockfile
      files: make allowances for 32-bit PIDs
      input: after an Esc, don't discard starter byte of a multibyte sequence
      input: be more strict in recognizing certain escape sequences
      input: don't bother putting a keycode into byte range
      input: don't use a function call when a literal value will do
      input: fix a pasto from eight years ago, from commit e347efb
      input: ingest as verbatim just one control code or one or two escapes
      input: make the Ctrl+Arrow keys work on a Linux console
      locking: remove any lock files when dying
      po: update translations and regenerate POT file and PO files
      screen: don't look at placewewant but at where we actually were and are
      screen: remove redundant redrawings of the entire edit window
      shortcuts: group the setting of key string and keycode into one function
      shortcuts: remove any unnecessary classifying of keys
      spelling: don't abort when a misspelled word isn't found, just note it
      spelling: don't consider digits as word parts, because GNU spell doesn't
      tweaks: add a variable, in preparation for making returning easier
      tweaks: adjust indentation after previous changes
      tweaks: adjust indentation after the previous changes
      tweaks: check earlier on for sufficient length of the sequence
      tweaks: compile a parameter unconditionally
      tweaks: condense three asserts into a single one
      tweaks: consistently use a parameter instead of a struct element
      tweaks: correct one comment, and adjust another
      tweaks: don't bother setting meta_key to false when a key is invalid
      tweaks: don't optimize for a special case -- it is far too seldom
      tweaks: don't use a function call when reference to the variable will do
      tweaks: elide the global variable 'func_key'
      tweaks: move some debugging stuff, and move modified editing keys too
      tweaks: move the modified editing keys again
      tweaks: normalize some indentation
      tweaks: normalize some whitespace and adjust several comments
      tweaks: reduce two comparisons to a single one
      tweaks: remove some unnecessary keycodes from a switch statement
      tweaks: rename a function, and adjust some comments
      tweaks: rename a struct element, to be more fitting
      tweaks: rename three constants, for clarity, and hardcode two others
      tweaks: replace a three-case switch with an if and an else
      tweaks: reshuffle two ifs for a little more speed
      tweaks: restore earlier conditions to prevent superfluous redrawings
      tweaks: return quicker from the key parsing routine
      tweaks: unconditionally compile a couple of parameters
      usage: show that the option --wordchars needs an argument

Rishabh Dave (1):
      shortcuts: zero the value of 'toggle' for keys that are not toggles


Changes between v2.6.1 and v2.6.2:
----------------------------------

Benno Schulenberg (81):
      browser: elide another call of opendir()
      browser: trim all trailing slashes (just in case there are more)
      build: refresh the git description whenever something is recompiled
      build-sys: ignore the revision header file
      bump version numbers and add a news item for 2.6.2
      chars: delete a now-unused function
      chars: don't try to see a character in an empty line
      chars: invalid sequences are not blank, nor text, nor punctuation
      chars: look at bytes in their context, so only valid sequences are accepted
      chars: measure invalid sequences and unassigned codepoints more quickly
      chars: plug a gushing memory leak
      chars: represent the high-bit controls more intelligibly
      chars: speed up the determination whether something is a control character
      chars: speed up two reverse-searching routines a bit
      chars: the representation of a control character is always two bytes
      color: forget about aborting the precalculation for multiline regexes
      color: integrate the hilite attribute into the pair number
      color: push the resets further when start and end match are equal
      color: refresh the screen whenever the active syntax changes
      credits: don't bother blanking the second line nor the help lines
      debug: remove duplicate information
      files: beep whenever writing out a file fails
      input: accept only the four iTerm sequences that actually get handled
      input: add some missing keycodes to the parsing routine
      input: consider only O, o and [ as starters of multi-character sequences
      input: don't crash when the window is resized during verbatim input
      input: don't drop a keystroke on the floor when the terminal resizes
      input: don't drop the first byte when user starts typing during loading
      input: elide an extra buffer for inserting stuff into the text
      input: plug a memory leak
      input: report keystroke M-[ as being unbindable instead of just unbound
      input: treat Ctrl+Alt+key different from Esc followed by Ctrl+key
      moving: don't do an automatic smart home with Ctrl+Up and Ctrl+Down
      new feature: add the option --wordchars, to set extra word characters
      new feature: functions to jump to previous or following block of text
      po: update translations and regenerate POT file and PO files
      screen: again, look at the bytes in their context
      screen: avoid converting each character twice from multibyte to wide
      screen: avoid looking up the width of whitespace and control codes
      screen: don't check for every character whether there is still enough space
      screen: don't simulate a sigwinch but directly reinitialize the screen
      screen: elide another intermediate buffer for every visible character
      screen: elide the intermediate buffer for every single character
      screen: include a workaround only when compiling against older ncurses
      search: match a beginning-of-line anchor just once per line
      tweaks: adjust a comment for removed definitions
      tweaks: adjust a couple of comments
      tweaks: adjust indentation after the previous change, and edit comments
      tweaks: avoid a runtime error when compiled with -fsanitize=undefined
      tweaks: avoid two compiler warnings
      tweaks: compute the sizes of the subwindows in a more direct manner
      tweaks: correct a comment
      tweaks: delete an element that is always FALSE and never used
      tweaks: don't bother resetting the Unicode code holder
      tweaks: don't call a thing malloc... when it doesn't call malloc()
      tweaks: elide a bit of code duplication
      tweaks: elide a typedef, as it now has just one element
      tweaks: elide two unneeded variables
      tweaks: factor out a common condition
      tweaks: fix compilation with --enable-tiny
      tweaks: fuse two handlings of a delete key, and fix a comment
      tweaks: improve a few comments
      tweaks: improve two comments
      tweaks: move a debug statement to its proper place, and improve aspect
      tweaks: put all the movement functions together
      tweaks: put similar things together
      tweaks: put some case labels closer to their statements
      tweaks: put the case labels (the keycodes) in a more sensible order
      tweaks: rearrange a function in my style, and rename a variable
      tweaks: reduce the scope of two variables
      tweaks: rename another variable, for aptness
      tweaks: rename a variable and a type, to be less confusing
      tweaks: rename a variable to be more accurate
      tweaks: rename a variable, to clarify it refers to columns, not to bytes
      tweaks: rename a variable -- to match others and to be more concise
      tweaks: rename two variables, to match others
      tweaks: shuffle the resetting of a counter to the tail of the routine
      tweaks: straighten out the flow of a loop
      tweaks: trim some comments, and simplify a condition
      tweaks: use mallocstrcpy() instead of strdup(), for a graceful death
      utils: don't bother to check line and column for NULL

David Lawrence Ramsey (1):
      input: provide feedback on the Unicode digits typed so far

Dirkjan Ochtman (1):
      syntax: allow capital letters in Rust struct/trait names

Rishabh Dave (4):
      browser: elide a variable by fusing the uses of 'newpath' and 'path'
      browser: select an inaccessible directory also when tabbed
      tweaks: reduce the number of wattron/wattrof calls
      utils: accept mistypings and common separators between line and column


Changes between v2.6.0 and v2.6.1:
----------------------------------

Benno Schulenberg (20):
      browser: don't use a term that is not explained in the documentation
      bump version numbers and add a news item for 2.6.1
      docs: adjust the description of the verbatim function
      linter: refresh the edit window in order to actually place the cursor
      main: let the main loop restore the main menu, if needed
      moving: allow specifying negative numbers in "Go To Line"
      moving: ignore any number when ^Y or ^V is given
      po: make the linguas script regenerate the POT file
      po: update translations and regenerate POT file and PO files
      tabs: compute the number of required spaces without iterating
      tweaks: add a reporter's name
      tweaks: add a translator hint
      tweaks: elide an impossible case
      tweaks: elide an intermediate copy of some line data
      tweaks: elide an unneeded variable
      tweaks: fix a date and an email address
      tweaks: normalize a type, and rewrap a line
      tweaks: reshuffle two lines and improve two comments
      tweaks: rewrap a bunch of lines and some comments
      tweaks: try to distinguish between keystrokes and characters

Jordi Mallach (2):
      docs: bump pointers to the newest version available
      docs: use https for nano-editor.org, and drop the www

Luke Francl (1):
      syntaxes: add highlighting rules for Rust

Rishabh Dave (1):
      browser: don't seem to enter a directory when it is inaccessible


Changes between v2.5.3 and v2.6.0 since 2016 April 1:
-----------------------------------------------------

Benno Schulenberg (192):
      all: eradicate SVN's $Id$ tags
      backups: take an unlikely condition into account
      browser: add a binding for the refresh function
      browser: after getting a mouse click, don't try any further interpretation
      browser, files: use full path in error message when in confined mode
      browser: fix a memory leak
      browser: keep the highlight in the same spot or column, when possible
      browser: make Ctrl+Left and Ctrl+Right jump to left and right column
      browser: make the calculation of files-per-line a straightforward one
      browser: provide tab completion also outside of the working directory
      browser: rearrange the search loop to elide two unneeded variables
      browser: show a message when getcwd() fails, instead of just beeping
      browser: show an error message when selecting an inaccessible directory
      browser: use the reselection mechanism also after resizing and after help
      browser: when nothing was found, restore the global search flags
      build-sys: detect a build from git and show its short commit hash
      build-sys: identify a build from git not as one from svn
      build-sys: ignore .patch, .orig and .swp files
      chars: a control character can never be an invalid multibyte sequence
      chars: ensure that files are sorted also when strncasecmp() is strange
      chars: make comparing multibyte strings twice as fast
      chars: the representation of control characters is always two columns wide
      docs: add a list of the important changes since version 2.2.6
      docs: mention that pkg-config is needed when building from git
      docs: rename a file, to be less confusing
      docs: update the version number for the upcoming release
      files: allocate enough space for the prompt when finding a lock file
      files: do not call free on the result of dirname
      files: do not use two variables for two different purposes each
      files: don't reuse a variable that may have been modified by dirname()
      files: fix a memory leak
      files: free all the multidata when a file is saved, then recompute it
      files: handle systems that disallow NULL as first parameter of getcwd
      files: it is fine to "change" the name of a nameless buffer
      files: limit the number of attempts at climbing up the directory tree
      files: make an 'if' more transparent and snip an unneeded condition
      files: miscellaneous tweaks of braces, comments, and variable names
      files: prevent dereferencing a possible (although very unlikely) NULL
      files: prune a message to be less than 76 characters
      files: recompute the multidata only when the applicable syntax changed
      files: remove a redundant condition
      files: remove a superfluous condition, and do not ignore a "No"
      files: remove the special 'quiet' mechanism for not overwriting messages
      files: report an unwritable file in a separate message
      files: rewrap en reindent some lines
      files: tweak the function tail() and rename two variables
      files: upgrade the locking errors, so they will not be overwritten
      files: when opening a buffer, make sure to expand a tilde in its name
      files: when the requested operating directory cannot be set, fail
      files: when writing a lockfile fails, continue loading the file
      help: add an extra blank line to the lists of searching shortcuts
      help: bring some air into the lists of shortcuts, giving the eye a hold
      help: only speak of Control and Meta sequences
      i18n: advise the translators about the maximum length of some strings
      i18n: gather three more translatable strings into the POT file
      input: after an unknown sequence, reenable cursor only when in main menu
      input: distinguish an unknown escape sequence from an unbound key
      input: don't allocate too much, and don't move too many
      input: don't take multiple keystrokes to be a single sequence
      input: give more detailed feedback when an unbound key is struck
      input: properly restore waiting mode, or retain non-waiting mode
      input: simplify a bit of code, reducing a four-case switch to a single if
      input: trim some oververbose comments
      input: write a few ifs more compactly
      inserting: differentiate not finding a file from not finding a string
      inserting: don't bother zero-terminating every single character
      inserting: prune a duplicate variable
      inserting: prune some superfluous settings, and do one differently
      inserting: reshuffle some conditions for a teeny bit more speed
      inserting: strip a carriage return before copying the line
      inserting: treat also the final \r of a Mac file as a newline
      justify: enable cursor display also for the first keystroke afterward
      keyboard: reshuffle some lines to avoid an empty while
      locking: don't try to read more bytes than the buffer can hold
      po: correctly advertise whether new PO files have arrived
      po: delete an obsolete script
      po: regenerated POT file, and updated PO files from TP
      prompt: properly save and restore the x position in the statusbar
      rcfile: disallow 'bind' and 'unbind' in an included file
      rcfile: make an error message equal to another, and more informative
      README.GIT: reformat the text a bit
      remove the GNU marker from nano's name
      replacing: properly detect when we've rereached the starting position
      screen: a full refresh is only needed when softwrap is on
      screen: avoid redrawing a line twice
      screen: catch a window resize also when the keyboard is in nodelay mode
      screen: check for the most frequent character first: a space
      screen: concentrate the setting of placewewant
      screen: displaying the cursor position should not suppress it next time
      screen: don't always set 'edit_refresh_needed' when adjusting edittop
      screen: don't redraw some lines when doing a full refresh anyway
      screen: don't redraw the current line unnecessarily
      screen: elide a variable and serialize some logic for clarity
      screen: fix compilation when configured with --enable-tiny
      screen: improve the conditional placement of a help-line item
      screen: make better use of the available space in the titlebar
      screen: rename a variable, because 'disable' sounds too permanent
      screen: rename 'edit_refresh_needed' to 'refresh_needed'
      screen: when using positionlog, show as much of the file as possible
      scrolling: catch the special case of reading a file from standard input
      scrolling: center the cursor when inserted stuff does not fit on screen
      scrolling: don't scroll too much when having to bridge blank lines
      scrolling: elide a variable, to make clearer that edittop is being moved
      search: avoid saving and restoring placewewant when bracket matching
      search: don't set placewewant when we are just iterating
      search: elide an unneeded function
      search: find, and thus delete, only exact matches from history
      search: fix compilation when configured with --enable-tiny
      searching: don't keep track of current_y, but calculate it at the end
      search: modify a function to take a length as parameter instead of a word
      search: rename a variable and a function, for clarity and contrast
      search: terminate the loop a tiny bit earlier when spell checking
      search: untangle two lines and tweak two comments
      search: when looking for whole words, examine the entire line
      search: when polling the keyboard, consume all waiting keystrokes
      softwrap: adjust for current_x when computing the amount to scroll
      speller: don't proceed when the user aborts the searching
      speller: simplify the calculation of the width of the misspelled word
      spelling: don't partition the file for replacements in a marked region
      spelling: gettextize the next-word message
      spelling: if rereading the file fails, don't destroy the current buffer
      spelling: pass the correct position of the cursor
      spelling: retreat one x position, to not miss the first word
      spelling: separate the fixing of different words with a short pause
      startup: show an error message when argument of --operatingdir is invalid
      statusbar: add a non-beeping message type that does not get overwritten
      statusbar: prevent error messages from overwriting each other
      syntax: don't call getcwd() with a NULL pointer
      tabbing: avoid recalculating the length of the first match every time
      tabbing: don't null-terminate a directory name on the slash but after it
      tabbing: don't refresh the edit window when nothing was printed on it
      tabbing: fix erroneous use of strnlenpt()
      tabbing: make sure to refresh the edit window when returning to it
      tabbing: refresh the edit window in case a previous tab listed names
      tabbing: refresh the window also when Goto-Dir in browser was cancelled
      tabbing: rename four variables, snipping a redundant part
      text: add an undo item before starting to comment or uncomment lines
      text: after undoing or redoing something, unset the mark
      text: remove a pointless setting of an undo element; it is never used
      text: remove a redundant undo element
      text: store the new file size in the undo item also when joining lines
      titlebar: snip two superfluous tests for having enough space
      TODO: tidy up the punctuation
      tweaks: add come comments and rename a variable
      tweaks: adjust a couple of comments
      tweaks: a few last tiny adjustments before release
      tweaks: avoid a warning when configured with --disable-wrapping
      tweaks: do an assignment in a more transparent way
      tweaks: elide an unneeded variable
      tweaks: elide four #ifdefs, improve one comment and unwrap some others
      tweaks: elide unneeded intermediate assignments
      tweaks: fix compilation when configured with --enable-tiny
      tweaks: fix compilation when configured with --enable-tiny --enable-browser
      tweaks: harmonize some indentations, elide an #ifdef, and rewrap a line
      tweaks: harmonize the routine for tabs with the one for spaces
      tweaks: improve a couple of comments
      tweaks: improve a few comments
      tweaks: improve a few comments
      tweaks: make advancing and retreating more symmetrical
      tweaks: make the conditions for statusbar blanking more transparent
      tweaks: more consistently use * instead of [0] when checking for '\0'
      tweaks: normalize some whitespace
      tweaks: normalize some whitespace
      tweaks: put some conditions in a better order: the main one first
      tweaks: rearrange some key reading stuff in a clearer way
      tweaks: reindent and rewrap a few lines, and shorten a comment
      tweaks: remove an unnecessary intermediate assignment
      tweaks: remove a redundant assignment
      tweaks: remove a superfluous call of 'wnoutrefresh'
      tweaks: remove a superfluous condition
      tweaks: remove a superfluous setting of 'refresh_needed'
      tweaks: remove the fiddling with an unrelated setting
      tweaks: remove two redundant assignments
      tweaks: rename a function, and move the sorting there too
      tweaks: rename a variable, because nothing is returned there
      tweaks: rename a variable, for aptness
      tweaks: rename a variable, to indicate better what it contains
      tweaks: rename a variable, to indicate what it contains
      tweaks: rename some variables for contrast
      tweaks: rename some variables to be more readable
      tweaks: rename two more variables
      tweaks: rename two variables, and elide a third
      tweaks: rename two variables, to avoid using a name for different purposes
      tweaks: reshuffle a few things
      tweaks: trim or improve some comments, and rewrap two lines
      tweaks: use an available macro to silence a compiler warning
      undo: start renumbering from the head of the paste, not from its tail
      utils: distinguish between width (columns) and length (bytes)
      utils: provide a failure message for all uses of 'fsfromline'
      utils: rename some variables, to match those in strnlenpt()
      utils: snip a superfluous check for NULL
      version: cover the copyrights that are not assigned to the FSF

Chris Allegretta (2):
      add /intl to gitignore
      rename README.SVN -> README.GIT and take out the branch details

Mike Frysinger (3):
      more svn->git updates
      README.GIT: update a few more points to match current tree
      syntax: changelog: support more bug/issue styles

Mike Scalora (3):
      keyboard: recognize four escape sequences produced by iTerm2
      new feature: comment/uncomment current line or selected lines
      text: keep the file size correct when undoing/redoing a comment/uncomment

Rishabh Dave (2):
      browser: keep the same file selected when the directory contents change
      browser: move all openings and closings of a directory to the same function


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