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