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 comparision 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 excuting 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: decribe 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
