diff --git a/ChangeLog b/ChangeLog
index dd3e089257a90be5347ace5497194d21326108fb..e81341143a16740a0eaf68aa145d468f9e6b8f8d 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,143 @@
+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:
 ----------------------------------
 
diff --git a/NEWS b/NEWS
index b0b69051cfa0428b591becee7dc91d01ddc33afd..71c4f2baeae7e186d07111eb5a785b89715b942e 100644
--- a/NEWS
+++ b/NEWS
@@ -1,3 +1,19 @@
+2017.03.31 - GNU nano 2.8.0 "Axat" makes it easier to move around in
+		softwrapped lines: the Up and Down keys now step from
+		visual row to visual row instead of jumping between
+		logical lines, and the Home and End keys now move to
+		the start and end of a row, and only when already
+		there, then to the start and end of the logical line.
+		Furthermore, the screen can now scroll per row instead
+		of always per logical line.  On an entirely different
+		front: nano now makes use of gnulib, to make it build
+		on more platforms.  In short: there were many internal
+		changes, not many user-visible ones (apart form the
+		new softwrap navigation).  The conversion to gnulib
+		was done by Mike Frysinger, the softwrap overhaul by
+		David Ramsey.
+
+
 2017.02.23 - GNU nano 2.7.5 "Nijntje" can properly search and replace
 		the \B and \b regex anchors, correctly repaints things
 		when multiline regexes with identical start and end are
diff --git a/configure.ac b/configure.ac
index e76ac3669972f193f642c96d11c5e4d0b841c837..a6f1176fb6e235b2ef3869c6f3c701c869165f15 100644
--- a/configure.ac
+++ b/configure.ac
@@ -16,7 +16,7 @@
 # You should have received a copy of the GNU General Public License
 # along with this program.  If not, see http://www.gnu.org/licenses/.
 
-AC_INIT([GNU nano], [2.7.5], [nano-devel@gnu.org], [nano])
+AC_INIT([GNU nano], [2.8.0], [nano-devel@gnu.org], [nano])
 AC_CONFIG_SRCDIR([src/nano.c])
 AC_CANONICAL_HOST
 AM_INIT_AUTOMAKE([1.14])
diff --git a/doc/faq.html b/doc/faq.html
index 29423f31e7dadd16f53d7a565cae98ff8822299c..30e12889907f43c2056b28c756a20bf1119d227d 100644
--- a/doc/faq.html
+++ b/doc/faq.html
@@ -82,7 +82,7 @@
 <h2><a name="1.5"></a>1.5. Why the name change from TIP?</h2>
 <blockquote><p>On January 10, 2000, TIP was officially renamed to nano because of a namespace conflict with another program called 'tip'. The original 'tip' program &quot;establishes a full duplex terminal connection to a remote host&quot;, and was included with many older Unix systems (and newer ones like Solaris). The conflict was not noticed at first because there is no 'tip' utility included with most GNU/Linux distributions (where nano was developed).</p></blockquote>
 <h2><a name="1.6"></a>1.6. What is the current version of nano?</h2>
-<blockquote><p>The current version of nano <i>should</i> be <b>2.7.5</b>.  Of course, you should always check the <a href="https://nano-editor.org/">nano homepage</a> to see what the latest and greatest version is.</p></blockquote>
+<blockquote><p>The current version of nano <i>should</i> be <b>2.8.0</b>.  Of course, you should always check the <a href="https://nano-editor.org/">nano homepage</a> to see what the latest and greatest version is.</p></blockquote>
 <h2><a name="1.7"></a>1.7. I want to read the man page without having to download the program!</h2>
 <blockquote><p>Jeez, demanding, aren't we? Okay, look <a href="https://nano-editor.org/dist/latest/nano.1.html">here</a>.</p></blockquote>
 <hr width="100%">
diff --git a/doc/nano.1 b/doc/nano.1
index a9cdf476bb1357530312e7b91b418b00e9e831b3..be68e4411a64ca1d49777b83f211cb77d394ab17 100644
--- a/doc/nano.1
+++ b/doc/nano.1
@@ -17,7 +17,7 @@
 .\"   Documentation License along with this program.  If not, see
 .\"   <http://www.gnu.org/licenses/>.
 .\"
-.TH NANO 1 "version 2.7.5" "February 2017"
+.TH NANO 1 "version 2.8.0" "March 2017"
 .\" Please adjust this date whenever revising the manpage.
 
 .SH NAME
diff --git a/doc/nano.texi b/doc/nano.texi
index aa29bc37ac8835b8195f8132151c7f89cf2c5bd7..0f9713f932eff789cd9a337427698bcf3cf60a2f 100644
--- a/doc/nano.texi
+++ b/doc/nano.texi
@@ -6,8 +6,8 @@
 
 @smallbook
 @set EDITION 0.4
-@set VERSION 2.7.5
-@set UPDATED February 2017
+@set VERSION 2.8.0
+@set UPDATED March 2017
 
 @dircategory Editors
 @direntry
@@ -21,7 +21,7 @@
 @titlepage
 @title GNU @code{nano}
 @subtitle a small and friendly text editor.
-@subtitle version 2.7.5
+@subtitle version 2.8.0
 
 @author Chris Allegretta
 @page
diff --git a/doc/nanorc.5 b/doc/nanorc.5
index ece4e1909abf0e7a45f557fe4335b927685a3286..cf314ae3c49c2ab7bdc3d774bd2b90bd07274727 100644
--- a/doc/nanorc.5
+++ b/doc/nanorc.5
@@ -17,7 +17,7 @@
 .\"   Documentation License along with this program.  If not, see
 .\"   <http://www.gnu.org/licenses/>.
 .\"
-.TH NANORC 5 "version 2.7.5" "February 2017"
+.TH NANORC 5 "version 2.8.0" "March 2017"
 .\" Please adjust this date whenever revising the manpage.
 
 .SH NAME
diff --git a/doc/rnano.1 b/doc/rnano.1
index 920e7e49ad4b62b1d6ffa479fa09f8bc28a50f73..c434a54a97a19867c1d2129d2e5b9c2fb04aadad 100644
--- a/doc/rnano.1
+++ b/doc/rnano.1
@@ -16,7 +16,7 @@
 .\"   Documentation License along with this program.  If not, see
 .\"   <http://www.gnu.org/licenses/>.
 .\"
-.TH RNANO 1 "version 2.7.5" "February 2017"
+.TH RNANO 1 "version 2.8.0" "March 2017"
 .\" Please adjust this date whenever revising the manpage.
 
 .SH NAME