diff -pruN 1:2.6.0~svn-r2984-1/audio_conversion.c 1:2.6.0~svn-r2994-1/audio_conversion.c
--- 1:2.6.0~svn-r2984-1/audio_conversion.c	2018-07-29 21:49:24.000000000 +0000
+++ 1:2.6.0~svn-r2994-1/audio_conversion.c	2018-08-11 04:09:57.000000000 +0000
@@ -521,19 +521,11 @@ static float *resample_sound (struct aud
 	resample_data.output_frames = resample_data.input_frames
 		* resample_data.src_ratio;
 
-	if (conv->resample_buf) {
-		conv->resample_buf = (float *)xrealloc (conv->resample_buf,
-				sizeof(float) * resample_data.input_frames
-				* nchannels);
-		new_input_start = conv->resample_buf
-			+ conv->resample_buf_nsamples;
-	}
-	else {
-		conv->resample_buf = (float *)xmalloc (sizeof(float)
-				* resample_data.input_frames
-				* nchannels);
-		new_input_start = conv->resample_buf;
-	}
+	assert (conv->resample_buf || conv->resample_buf_nsamples == 0);
+	conv->resample_buf = xrealloc (conv->resample_buf,
+	                               sizeof(float) * nchannels *
+	                               resample_data.input_frames);
+	new_input_start = conv->resample_buf + conv->resample_buf_nsamples;
 
 	output = (float *)xmalloc (sizeof(float) * resample_data.output_frames
 				* nchannels);
diff -pruN 1:2.6.0~svn-r2984-1/common.c 1:2.6.0~svn-r2994-1/common.c
--- 1:2.6.0~svn-r2984-1/common.c	2018-07-29 21:49:24.000000000 +0000
+++ 1:2.6.0~svn-r2994-1/common.c	2018-08-11 04:09:57.000000000 +0000
@@ -119,8 +119,10 @@ void *xrealloc (void *ptr, const size_t
 {
 	void *p;
 
-	if ((p = realloc(ptr, size)) == NULL && size != 0)
+	p = realloc (ptr, size);
+	if (!p && size != 0)
 		fatal ("Can't allocate memory!");
+
 	return p;
 }
 
@@ -378,7 +380,8 @@ int get_realtime (struct timespec *ts)
     return result;
 }
 
-/* Convert time in second to min:sec text format. buff must be 6 chars long. */
+/* Convert time in second to min:sec text format.
+   'buff' must be at least 32 chars long. */
 void sec_to_min (char *buff, const int seconds)
 {
 	assert (seconds >= 0);
@@ -391,12 +394,12 @@ void sec_to_min (char *buff, const int s
 		min = seconds / 60;
 		sec = seconds % 60;
 
-		snprintf (buff, 6, "%02d:%02d", min, sec);
+		snprintf (buff, 32, "%02d:%02d", min, sec);
 	}
 	else if (seconds < 10000 * 60)
 
 		/* the time is less than 9999 minutes */
-		snprintf (buff, 6, "%4dm", seconds/60);
+		snprintf (buff, 32, "%4dm", seconds/60);
 	else
 		strcpy (buff, "!!!!!");
 }
diff -pruN 1:2.6.0~svn-r2984-1/common.h 1:2.6.0~svn-r2994-1/common.h
--- 1:2.6.0~svn-r2984-1/common.h	2018-07-29 21:49:24.000000000 +0000
+++ 1:2.6.0~svn-r2994-1/common.h	2018-08-09 22:14:28.000000000 +0000
@@ -15,6 +15,11 @@
 
 #include "compat.h"
 
+/* Suppress overly-enthusiastic GNU variadic macro extensions warning. */
+#if defined(__clang__) && HAVE_VARIADIC_MACRO_WARNING
+# pragma clang diagnostic ignored "-Wgnu-zero-variadic-macro-arguments"
+#endif
+
 struct timespec;
 
 #ifdef HAVE_FUNC_ATTRIBUTE_FORMAT
@@ -61,6 +66,14 @@ struct timespec;
 # define GCC_DIAG_ON(x)
 #endif
 
+#ifdef HAVE_FORMAT_TRUNCATION_WARNING
+# define SUPPRESS_FORMAT_TRUNCATION_WARNING GCC_DIAG_OFF(format-truncation)
+# define UNSUPPRESS_FORMAT_TRUNCATION_WARNING GCC_DIAG_ON(format-truncation)
+#else
+# define SUPPRESS_FORMAT_TRUNCATION_WARNING
+# define UNSUPPRESS_FORMAT_TRUNCATION_WARNING
+#endif
+
 #define CONFIG_DIR      ".moc"
 #define LOCK(mutex)     pthread_mutex_lock (&mutex)
 #define UNLOCK(mutex)   pthread_mutex_unlock (&mutex)
diff -pruN 1:2.6.0~svn-r2984-1/configure.in 1:2.6.0~svn-r2994-1/configure.in
--- 1:2.6.0~svn-r2984-1/configure.in	2018-07-29 21:49:24.000000000 +0000
+++ 1:2.6.0~svn-r2994-1/configure.in	2018-08-14 05:40:32.000000000 +0000
@@ -103,7 +103,18 @@ AC_C_BIGENDIAN
 AC_C_CONST
 AC_TYPE_INTPTR_T
 AX_CFLAGS_GCC_OPTION(-Wall)
-AX_CFLAGS_GCC_OPTION(-W)
+AX_CFLAGS_GCC_OPTION(-Wextra)
+
+dnl Overly-enthusiastic warning suppression.
+save_CFLAGS="$CFLAGS"
+AX_CFLAGS_GCC_OPTION([-Wgnu-zero-variadic-macro-arguments], ,
+                     AC_DEFINE([HAVE_VARIADIC_MACRO_WARNING], 1,
+                               [Define if compiler recognises warning option]))
+AX_CFLAGS_GCC_OPTION([-Werror=unknown-warning-option])
+AX_CFLAGS_GCC_OPTION([-Wformat-truncation], ,
+                     AC_DEFINE([HAVE_FORMAT_TRUNCATION_WARNING], 1,
+                               [Define if compiler recognises warning option]))
+CFLAGS="$save_CFLAGS"
 
 PKG_PROG_PKG_CONFIG([0.20])
 
diff -pruN 1:2.6.0~svn-r2984-1/debian/changelog 1:2.6.0~svn-r2994-1/debian/changelog
--- 1:2.6.0~svn-r2984-1/debian/changelog	2018-07-30 06:08:38.000000000 +0000
+++ 1:2.6.0~svn-r2994-1/debian/changelog	2019-02-07 15:28:00.000000000 +0000
@@ -1,3 +1,22 @@
+moc (1:2.6.0~svn-r2994-1) unstable; urgency=medium
+
+  * New upstream version 2.6.0~svn-r2994.
+  * Added debian\gbp.conf
+  * debian/control:
+    Update Vcs-* headers for move to salsa.debian.org.
+    Use HTTPS in Homepage URL.
+    Drop Build-Depends on dpkg-dev.
+    Declare compliance with Debian Policy 4.3.0. (No changes needed.)
+    Bump debhelper compatibility level to 12.
+    + Replace debian/compat with a versioned b-d on debhelper-compat.
+  * Adjusted debian/copyright to upstreams HTTPS URL.
+  * Use HTTPS URL in watch file.
+  * Don't list *.la files in dh_missing.
+  * Update changelog.svn.
+  * Using minimal signing key for upstream source.
+
+ -- Elimar Riesebieter <riesebie@lxtec.de>  Thu, 07 Feb 2019 16:28:00 +0100
+
 moc (1:2.6.0~svn-r2984-1) unstable; urgency=medium
 
   * Update to r2984
diff -pruN 1:2.6.0~svn-r2984-1/debian/changelog.svn 1:2.6.0~svn-r2994-1/debian/changelog.svn
--- 1:2.6.0~svn-r2984-1/debian/changelog.svn	2018-07-30 06:08:38.000000000 +0000
+++ 1:2.6.0~svn-r2994-1/debian/changelog.svn	2019-02-07 15:28:00.000000000 +0000
@@ -1,4 +1,84 @@
 ------------------------------------------------------------------------
+r2994 | jcf | 2019-01-09 02:01:24 +0100 (Wed, 09 Jan 2019) | 16 lines
+
+Fix: Delayed reporting of "TERMINAL TOO SMALL".
+
+It seems that performing a temporary suspend (via endwin() /
+refresh()) is the accepted way to force Curses to refresh its
+terminal context, and it isn't until after that that the new COLS
+and LINES settings take effect.  It feels uncomfortable to have
+that update happen as a side-effect of an otherwise redundant
+suspend sequence, however, it appears to be the only portable way
+of doing it.
+
+Multiple refresh()s may introduce some visible screen flicker (which
+the code elsewhere in MOC tries to avoid), but it has not been
+observed in testing and is probably masked by the resizing operation.
+
+Thanks to: Joan Bruguera Mico <joanbrugueram@gmail.com>
+Resolves: node/2177 (MOC prints "TERMINAL TOO SMALL" when it's not)
+------------------------------------------------------------------------
+r2992 | jcf | 2018-08-14 07:40:38 +0200 (Tue, 14 Aug 2018) | 3 lines
+
+Clean: Rename header guard to avoid potential future conflicts.
+
+Thanks to: Vadim Zhukov <zhuk@openbsd.org>
+------------------------------------------------------------------------
+r2991 | jcf | 2018-08-14 07:40:32 +0200 (Tue, 14 Aug 2018) | 1 line
+
+Clean: Upgrade warning option to GCC's more descriptive replacement.
+------------------------------------------------------------------------
+r2990 | jcf | 2018-08-11 06:10:03 +0200 (Sat, 11 Aug 2018) | 1 line
+
+Clean: Use xcalloc() to obtain cleared memory.
+------------------------------------------------------------------------
+r2989 | jcf | 2018-08-11 06:09:57 +0200 (Sat, 11 Aug 2018) | 1 line
+
+Clean: Simplify code around memory reallocation.
+------------------------------------------------------------------------
+r2988 | jcf | 2018-08-11 06:09:49 +0200 (Sat, 11 Aug 2018) | 1 line
+
+Clean: Remove redundant test.
+------------------------------------------------------------------------
+r2987 | jcf | 2018-08-11 06:09:43 +0200 (Sat, 11 Aug 2018) | 1 line
+
+Clean: Align parameter types with argument types.
+------------------------------------------------------------------------
+r2986 | jcf | 2018-08-10 00:14:28 +0200 (Fri, 10 Aug 2018) | 17 lines
+
+Maint: Resolve GCC's format overflow and truncation warnings.
+
+Recent releases of the GNU C Compiler have included a number of new
+warnings.  The 'format-overflow' and 'format-truncation' warnings
+issued were checked and found to be benign.  However, the warnings
+have now become noise which is possibly masking legitimate warnings.
+
+Where the amount of additional memory is minimal the buffer size has
+been increased, while the one remaining warning has been suppressed.
+
+One complication is that while GCC reports unknown warning options as
+errors, Clang reports them as warnings which makes it more difficult
+to detect whether these format warnings are supported at configuration
+time.  The '-Werror=...' option can be used to override this behaviour,
+but detecting it is subject to the same compiler difference and may
+raise issues with compilers which neither report unknown warning options
+as errors nor support the '-Werror=...' option.
+------------------------------------------------------------------------
+r2985 | jcf | 2018-08-10 00:14:20 +0200 (Fri, 10 Aug 2018) | 12 lines
+
+Maint: Suppress Clang's overly-enthusiastic variadic macro warnings.
+
+Clang flags as warnings uses of GNU's CPP extension which allows for
+the declaration and use of variadic macros having zero variable arguments.
+This is controlled by Clang's '-Wgnu-zero-variadic-macro-arguments'
+option and also enabled by '-pedantic'.
+
+Unfortunately, this is a very useful extension to have and avoiding
+it would result in rather inelegant code.  Fortunately, it can be
+suppressed from within MOC.  No one has yet complained about the
+several GNUisms remaining in the code, so it can be assumed that those
+who are building MOC are doing so with a GCC-compatible compiler.
+------------------------------------------------------------------------
 r2984 | jcf | 2018-07-29 23:49:24 +0200 (Sun, 29 Jul 2018) | 11 lines
 
 Maint: Migrate audio decoding to FFmpeg/LibAV's send/receive API.
@@ -4388,22 +4468,22 @@ Avoid repeated calls to get options.
 ------------------------------------------------------------------------
 r2243 | daper | 2010-01-10 14:23:34 +0100 (Sun, 10 Jan 2010) | 2 lines
 
-Fix a fatal error when opening and mp3 file. (Ondrej Svoboda).
+Fix a fatal error when opening and mp3 file. (Ondřej Svoboda).
 
 ------------------------------------------------------------------------
 r2242 | daper | 2010-01-10 14:21:45 +0100 (Sun, 10 Jan 2010) | 2 lines
 
-Fix a compilation warning in the ffmpeg plugin. (Ondrej Svoboda)
+Fix a compilation warning in the ffmpeg plugin. (Ondřej Svoboda)
 
 ------------------------------------------------------------------------
 r2241 | daper | 2010-01-10 14:20:43 +0100 (Sun, 10 Jan 2010) | 2 lines
 
-Spelling fixes. (Ondrej Svoboda)
+Spelling fixes. (Ondřej Svoboda)
 
 ------------------------------------------------------------------------
 r2240 | daper | 2010-01-10 14:19:46 +0100 (Sun, 10 Jan 2010) | 2 lines
 
-Source files encoding fixes. (Ondrej Svoboda).
+Source files encoding fixes. (Ondřej Svoboda).
 
 ------------------------------------------------------------------------
 r2239 | daper | 2010-01-09 10:43:32 +0100 (Sat, 09 Jan 2010) | 2 lines
@@ -4613,7 +4693,7 @@ Fix runaway loop which caused storage co
 ------------------------------------------------------------------------
 r2202 | daper | 2009-10-07 13:00:33 +0200 (Wed, 07 Oct 2009) | 2 lines
 
-Fix crash with too long file names due to lyrics code. (Geraud Le Falher)
+Fix crash with too long file names due to lyrics code. (Géraud Le Falher)
 
 ------------------------------------------------------------------------
 r2201 | jcf | 2009-09-25 23:56:18 +0200 (Fri, 25 Sep 2009) | 3 lines
@@ -4848,35 +4928,35 @@ Miscellaneous non-functional changes (sp
 ------------------------------------------------------------------------
 r2160 | daper | 2009-07-25 10:08:24 +0200 (Sat, 25 Jul 2009) | 2 lines
 
-Spelling fixes. (Daniel Kal{U+00F8}r <daniel@kalor.dk>)
+Spelling fixes. (Daniel Kalør <daniel@kalor.dk>)
 
 ------------------------------------------------------------------------
 r2159 | daper | 2009-07-25 10:06:44 +0200 (Sat, 25 Jul 2009) | 3 lines
 
 Fix clearing chars when displaying file information (time, rate, kbps).
-(Daniel Kal{U+00F8}r <daniel@kalor.dk>)
+(Daniel Kalør <daniel@kalor.dk>)
 
 ------------------------------------------------------------------------
 r2158 | daper | 2009-07-25 10:04:28 +0200 (Sat, 25 Jul 2009) | 3 lines
 
 When fast-forwarding through e.g. a FLAC file, the supposed bitrate may
-become very large, overwriting "kbps". (Daniel Kal{U+00F8}r <daniel@kalor.dk>)
+become very large, overwriting "kbps". (Daniel Kalør <daniel@kalor.dk>)
 
 ------------------------------------------------------------------------
 r2157 | daper | 2009-07-25 10:02:59 +0200 (Sat, 25 Jul 2009) | 3 lines
 
 When maging item visible (for example, after pressing "next"), scroll it to
-the middle. (Daniel Kal{U+00F8}r <daniel@kalor.dk>)
+the middle. (Daniel Kalør <daniel@kalor.dk>)
 
 ------------------------------------------------------------------------
 r2156 | daper | 2009-07-25 09:44:01 +0200 (Sat, 25 Jul 2009) | 2 lines
 
-FIx the symbol for "kilo", use "k" (lowercase). (Daniel Kal{U+00F8}r <daniel@kalor.dk>)
+FIx the symbol for "kilo", use "k" (lowercase). (Daniel Kalør <daniel@kalor.dk>)
 
 ------------------------------------------------------------------------
 r2155 | daper | 2009-07-25 09:42:57 +0200 (Sat, 25 Jul 2009) | 2 lines
 
-Allow seeking to beginning of a file in vorbis/flac. (Daniel Kal{U+00F8}r <daniel@kalor.dk>).
+Allow seeking to beginning of a file in vorbis/flac. (Daniel Kalør <daniel@kalor.dk>).
 
 ------------------------------------------------------------------------
 r2153 | daper | 2009-06-11 17:39:53 +0200 (Thu, 11 Jun 2009) | 2 lines
@@ -5115,7 +5195,7 @@ Fix crash in serialization of data in ta
 r2096 | daper | 2008-08-03 20:19:00 +0200 (Sun, 03 Aug 2008) | 3 lines
 
 Display lyrics saved in files together with music. Press L to try it.
-(Geraud Le Falher)
+(Géraud Le Falher)
 
 ------------------------------------------------------------------------
 r2095 | daper | 2008-08-03 20:14:19 +0200 (Sun, 03 Aug 2008) | 2 lines
@@ -5256,7 +5336,7 @@ r2063 | daper | 2008-02-19 23:43:05 +010
 
 Add -Q (--format) FORMAT_STRING option to display file information like with
 --info but using a format string where sequences like '%album', '%title' are
-substituted. (Juho Hamalainen)
+substituted. (Juho Hämäläinen)
 
 ------------------------------------------------------------------------
 r2062 | daper | 2008-02-10 16:00:29 +0100 (Sun, 10 Feb 2008) | 3 lines
@@ -5903,7 +5983,7 @@ Added information about required compile
 ------------------------------------------------------------------------
 r1873 | daper | 2006-01-30 18:51:40 +0100 (Mon, 30 Jan 2006) | 2 lines
 
-Fixed a typo in a comment. (Micha{U+0142} Mazurek)
+Fixed a typo in a comment. (Michał Mazurek)
 
 ------------------------------------------------------------------------
 r1872 | daper | 2006-01-30 18:41:32 +0100 (Mon, 30 Jan 2006) | 2 lines
@@ -5913,7 +5993,7 @@ FIxed a type.
 ------------------------------------------------------------------------
 r1871 | daper | 2006-01-30 18:40:28 +0100 (Mon, 30 Jan 2006) | 2 lines
 
-Fixed typos. (Micha{U+0142} Mazurek)
+Fixed typos. (Michał Mazurek)
 
 ------------------------------------------------------------------------
 r1870 | daper | 2006-01-29 16:32:00 +0100 (Sun, 29 Jan 2006) | 2 lines
diff -pruN 1:2.6.0~svn-r2984-1/debian/compat 1:2.6.0~svn-r2994-1/debian/compat
--- 1:2.6.0~svn-r2984-1/debian/compat	2018-07-30 06:08:38.000000000 +0000
+++ 1:2.6.0~svn-r2994-1/debian/compat	1970-01-01 00:00:00.000000000 +0000
@@ -1 +0,0 @@
-11
diff -pruN 1:2.6.0~svn-r2984-1/debian/control 1:2.6.0~svn-r2994-1/debian/control
--- 1:2.6.0~svn-r2984-1/debian/control	2018-07-30 06:08:38.000000000 +0000
+++ 1:2.6.0~svn-r2994-1/debian/control	2019-02-07 15:28:00.000000000 +0000
@@ -2,10 +2,9 @@ Source: moc
 Section: sound
 Priority: optional
 Maintainer: Elimar Riesebieter <riesebie@lxtec.de>
-Standards-Version: 4.1.5
+Standards-Version: 4.3.0
 Build-Depends: chrpath,
-               debhelper (>= 11),
-               dpkg-dev (>= 1.16.1~),
+               debhelper-compat (= 12),
                libasound2-dev [linux-any],
                libaspell-dev,
                libavcodec-dev,
@@ -40,7 +39,10 @@ Build-Depends: chrpath,
                libwavpack-dev,
                libxml2-dev,
                zlib1g-dev
-Homepage: http://moc.daper.net
+Homepage: https://moc.daper.net
+Vcs-Browser: https://salsa.debian.org/riesebie-guest/moc
+Vcs-Git: https://salsa.debian.org/riesebie-guest/moc.git
+Rules-Requires-Root: no
 
 Package: moc
 Architecture: any
diff -pruN 1:2.6.0~svn-r2984-1/debian/copyright 1:2.6.0~svn-r2994-1/debian/copyright
--- 1:2.6.0~svn-r2984-1/debian/copyright	2018-07-30 06:08:38.000000000 +0000
+++ 1:2.6.0~svn-r2994-1/debian/copyright	2019-02-07 15:28:00.000000000 +0000
@@ -1,17 +1,17 @@
 Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
 Upstream-Name: moc
 Upstream-Contact: Damian Pietras <daper@daper.net> <mocmaint@daper.net>
-Source: Downloaded from http://moc.daper.net/
+Source: Downloaded from https://moc.daper.net/
 Comment: This package was debianized by Elimar Riesebieter <riesebie@lxtec.de>
          on Sun, 14 Nov 2004 13:45:40 +0100
          Some things are based on Michal Jeczalik's work.
 
 Files: *
-Copyright: 2003-2016 Damian Pietras and others
+Copyright: 2003-2018 Damian Pietras and others
 License: GPL-2+
 
 Files: debian/*
-Copyright: 2004-2016 Elimar Riesebieter
+Copyright: 2004-2018 Elimar Riesebieter
 License: GPL-2+
 
 License: GPL-2+
diff -pruN 1:2.6.0~svn-r2984-1/debian/gbp.conf 1:2.6.0~svn-r2994-1/debian/gbp.conf
--- 1:2.6.0~svn-r2984-1/debian/gbp.conf	1970-01-01 00:00:00.000000000 +0000
+++ 1:2.6.0~svn-r2994-1/debian/gbp.conf	2019-02-07 15:28:00.000000000 +0000
@@ -0,0 +1,3 @@
+[DEFAULT]
+pristine-tar = True
+sign-tags = True
diff -pruN 1:2.6.0~svn-r2984-1/debian/rules 1:2.6.0~svn-r2994-1/debian/rules
--- 1:2.6.0~svn-r2984-1/debian/rules	2018-07-30 06:08:38.000000000 +0000
+++ 1:2.6.0~svn-r2994-1/debian/rules	2019-02-07 15:28:00.000000000 +0000
@@ -12,6 +12,9 @@ export DEB_LDFLAGS_MAINT_APPEND = -Wl,--
 override_dh_install:
 	dh_install -Xkeymap.example -Xconfig.example
 
+override_dh_missing:
+	dh_missing -X.la
+
 override_dh_installdocs:
 	dh_installdocs AUTHORS README THANKS TODO
 
diff -pruN 1:2.6.0~svn-r2984-1/debian/upstream/signing-key.asc 1:2.6.0~svn-r2994-1/debian/upstream/signing-key.asc
--- 1:2.6.0~svn-r2984-1/debian/upstream/signing-key.asc	2018-07-30 06:08:38.000000000 +0000
+++ 1:2.6.0~svn-r2994-1/debian/upstream/signing-key.asc	2019-02-07 15:28:00.000000000 +0000
@@ -1,56 +1,28 @@
 -----BEGIN PGP PUBLIC KEY BLOCK-----
-Version: GnuPG v1
 
-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
-yj/tWA==
-=s4Te
+mQGiBELYrxIRBACTi4tpwL0dOHMdsUZkMlkbkmAdShkESxVrUNCvIDbP8Y4u1jgr
+fFnAN5C8EEUZyPX0+55/foBbO5Q6rj1vGT/G/TKPUc8Pahi58CgThvh0K/QK9kPW
+1w+EmW7K9ydk7O6bbmoFZ7yLR4eOAeMh8e+My+IHb1zbCzO4yZnmdyX+zwCgilEW
+pGis2TA01seAnng7tIfvaZ0EAJN41RymuO7kdOC5tufEXuHat7mPoPH0bixm3lOH
+seTKAp8HPcsMrfbt7c/mouPcDi26j5qOOAo1kSkSaA4tUHqTAoZgzmwbYNWIRM9O
+tSK/Q5F3jQLUubT9tC36EG2QI3yvvLJVvNJ/1/6ztJCIcVOIHZQWgaWep/mZ6MAm
+wNEbA/9KJ6TR/0qKvs2q6xNtrv+3EklG8jLtRkS5kxr98/cTdX77w17HAQTSC0IS
+HVjzobyvw3bnigvTizM4Qvvzv9vTSzL54GW+dLwU7+hvgANNEt4QUcI4tA7wVCgC
+GJq0h6KpoAi8bnzzw7j1yyL0jDyoF/Nox75z/Ijy6DikO7+TVrQPSm9obiBGaXR6
+Z2VyYWxkiF4EExECAB4FAkLYrxICGwMGCwkIBwMCAxUCAwMWAgECHgECF4AACgkQ
+51QdFLZJs6hjLwCeJpe0xRIxxy3xsjtYRw9XdbzsSA0AnA22P8eZUeO5A69FgWFl
+9ZyEIMbCuQINBELYsasQCAD+v0tpYIZdTt2UiPei+WOcnsD8KnNyTLlGB65Nznln
+YkYL9BQ6enR3EubPMp/TWZ0aDZY1Du8ZwGx5zMHzr+vTDPvomHBU3PLzYmvyaC6c
+o6E6pZAtD2og4lFpjVUkn7WSahv3Xr9qDDCn3nGNubQq9vph23QYhlAQfSvZNEFt
+Cb9/6fNYWk/psFffA00MKRPqV/4enqZLTPNHr3O/wFRkl3+/STz+VXS7o016zqLm
+c1rS6ypvS1m7uH9PvtU3FCG6aSSoBDLzCD2qsyAHcdutmPo9gfkV1NTImkZszU7h
+EEZdVFny7dLW6QAaNnOuU5STnnQf5MMHZ+DtEDcPm08XAAQLB/9gUTjlr7gT88g/
+2T18mXp9hecaSp+hnXNTlfTAxuRNsN9EDPn62IIm/inU37j2dsdbm+FsnlAot7L0
+FoE3DWX7aeGKxKPLRM4PYrhy5jHFglZNsNgJ8wPxCyCnKXSSno+8oK4bhfm5LXED
+LyUn/Zop3X12UgPy41HcBt2fdu66cxN3ogDlBQ+Xb1MJ7d0L6+SEEZSEQuCDYARD
+cCYU9TbzRkXPPDvcB7+hhL3E7IgFPB7BXNxsXVFa16pqv8mIcVNOP8fLEA1RqAsK
+bNTw9TmexU27Q6egn1wrO2TeL3Uw4OCUug3iMIU/4c69EvBV7+A+xpOxTo7sl//f
+MJEgDpsHiEkEGBECAAkFAkLYsasCGwwACgkQ51QdFLZJs6hWDwCeOUHP9ETDGzac
+D7T0QZDz7ix+WicAn1V+PWC0qg9B52jMZ2VGMpGgQ/iT
+=3Kqp
 -----END PGP PUBLIC KEY BLOCK-----
diff -pruN 1:2.6.0~svn-r2984-1/debian/watch 1:2.6.0~svn-r2994-1/debian/watch
--- 1:2.6.0~svn-r2984-1/debian/watch	2018-07-30 06:08:38.000000000 +0000
+++ 1:2.6.0~svn-r2994-1/debian/watch	2019-02-07 15:28:00.000000000 +0000
@@ -1,4 +1,4 @@
 version=3
 
 opts="pgpsigurlmangle=s/$/.sig/" \
-http://ftp.daper.net/pub/soft/moc/unstable	moc-(.*)\.tar\.xz	debian	uupdate
+https://ftp.daper.net/pub/soft/moc/unstable	moc-(.*)\.tar\.xz	debian	uupdate
diff -pruN 1:2.6.0~svn-r2984-1/decoder_plugins/aac/aac.c 1:2.6.0~svn-r2994-1/decoder_plugins/aac/aac.c
--- 1:2.6.0~svn-r2984-1/decoder_plugins/aac/aac.c	2018-07-29 21:49:24.000000000 +0000
+++ 1:2.6.0~svn-r2994-1/decoder_plugins/aac/aac.c	2018-08-11 04:10:03.000000000 +0000
@@ -264,9 +264,7 @@ static void *aac_open_internal (struct i
 	int n;
 
 	/* init private struct */
-	data = (struct aac_data *)xmalloc (sizeof(struct aac_data));
-	memset (data, 0, sizeof(struct aac_data));
-	data->ok = 0;
+	data = xcalloc (1, sizeof *data);
 	data->decoder = NeAACDecOpen();
 
 	/* set decoder config */
diff -pruN 1:2.6.0~svn-r2984-1/decoder_plugins/speex/speex.c 1:2.6.0~svn-r2994-1/decoder_plugins/speex/speex.c
--- 1:2.6.0~svn-r2984-1/decoder_plugins/speex/speex.c	2018-07-29 21:49:24.000000000 +0000
+++ 1:2.6.0~svn-r2994-1/decoder_plugins/speex/speex.c	2018-08-11 04:09:57.000000000 +0000
@@ -369,12 +369,7 @@ static void get_comments (struct spx_dat
 
 			if (temp_len < len + 1) {
 				temp_len = len + 1;
-				if (temp)
-					temp = xrealloc (temp, sizeof(char) *
-							temp_len);
-				else
-					temp = xmalloc (sizeof(char) *
-							temp_len);
+				temp = xrealloc (temp, temp_len);
 			}
 
 			strncpy (temp, c, len);
diff -pruN 1:2.6.0~svn-r2984-1/files.c 1:2.6.0~svn-r2994-1/files.c
--- 1:2.6.0~svn-r2984-1/files.c	2018-07-29 21:49:24.000000000 +0000
+++ 1:2.6.0~svn-r2994-1/files.c	2018-08-11 04:09:43.000000000 +0000
@@ -266,12 +266,12 @@ void switch_titles_tags (struct plist *p
 
 /* Add file to the directory path in buf resolving '../' and removing './'. */
 /* buf must be absolute path. */
-void resolve_path (char *buf, const int size, const char *file)
+void resolve_path (char *buf, size_t size, const char *file)
 {
 	int rc;
 	char *f; /* points to the char in *file we process */
 	char path[2*PATH_MAX]; /* temporary path */
-	int len = 0; /* number of characters in the buffer */
+	size_t len = 0; /* number of characters in the buffer */
 
 	assert (buf[0] == '/');
 
diff -pruN 1:2.6.0~svn-r2984-1/files.h 1:2.6.0~svn-r2994-1/files.h
--- 1:2.6.0~svn-r2984-1/files.h	2018-07-29 21:49:24.000000000 +0000
+++ 1:2.6.0~svn-r2994-1/files.h	2018-08-11 04:09:43.000000000 +0000
@@ -16,7 +16,7 @@ void files_cleanup ();
 int read_directory (const char *directory, lists_t_strs *dirs,
 		lists_t_strs *playlists, struct plist *plist);
 int read_directory_recurr (const char *directory, struct plist *plist);
-void resolve_path (char *buf, const int size, const char *file);
+void resolve_path (char *buf, size_t size, const char *file);
 char *ext_pos (const char *file);
 enum file_type file_type (const char *file);
 char *file_mime_type (const char *file);
diff -pruN 1:2.6.0~svn-r2984-1/interface.c 1:2.6.0~svn-r2994-1/interface.c
--- 1:2.6.0~svn-r2984-1/interface.c	2018-07-29 21:49:24.000000000 +0000
+++ 1:2.6.0~svn-r2994-1/interface.c	2018-08-11 04:09:49.000000000 +0000
@@ -2954,14 +2954,14 @@ static char *custom_cmd_substitute (cons
 		case 'n':
 			file = iface_get_curr_file ();
 			tags = get_tags (file);
-			result = (char *) xmalloc (sizeof (char) * 10);
-			snprintf (result, 10, "%d", tags->track);
+			result = (char *) xmalloc (sizeof (char) * 16);
+			snprintf (result, 16, "%d", tags->track);
 			break;
 		case 'm':
 			file = iface_get_curr_file ();
 			tags = get_tags (file);
-			result = (char *) xmalloc (sizeof (char) * 10);
-			snprintf (result, 10, "%d", tags->time);
+			result = (char *) xmalloc (sizeof (char) * 16);
+			snprintf (result, 16, "%d", tags->time);
 			break;
 		case 'f':
 			result = iface_get_curr_file ();
@@ -2983,14 +2983,14 @@ static char *custom_cmd_substitute (cons
 			break;
 		case 'N':
 			if (curr_file.tags && curr_file.tags->track != -1) {
-				result = (char *) xmalloc (sizeof (char) * 10);
-				snprintf (result, 10, "%d", curr_file.tags->track);
+				result = (char *) xmalloc (sizeof (char) * 16);
+				snprintf (result, 16, "%d", curr_file.tags->track);
 			}
 			break;
 		case 'M':
 			if (curr_file.tags && curr_file.tags->time != -1) {
-				result = (char *) xmalloc (sizeof (char) * 10);
-				snprintf (result, 10, "%d", curr_file.tags->time);
+				result = (char *) xmalloc (sizeof (char) * 16);
+				snprintf (result, 16, "%d", curr_file.tags->time);
 			}
 			break;
 		case 'F':
@@ -2999,14 +2999,14 @@ static char *custom_cmd_substitute (cons
 			break;
 		case 'S':
 			if (curr_file.file && curr_file.block_file) {
-				result = (char *) xmalloc (sizeof (char) * 10);
-				snprintf (result, 10, "%d", curr_file.block_start);
+				result = (char *) xmalloc (sizeof (char) * 16);
+				snprintf (result, 16, "%d", curr_file.block_start);
 			}
 			break;
 		case 'E':
 			if (curr_file.file && curr_file.block_file) {
-				result = (char *) xmalloc (sizeof (char) * 10);
-				snprintf (result, 10, "%d", curr_file.block_end);
+				result = (char *) xmalloc (sizeof (char) * 16);
+				snprintf (result, 16, "%d", curr_file.block_end);
 			}
 			break;
 		default:
@@ -3755,13 +3755,9 @@ static void add_recursively (struct plis
 
 		arg = lists_strs_at (args, ix);
 
-		if (!is_url (arg) && arg[0] != '/') {
-			if (arg[0] == '/')
-				strcpy (path, "/");
-			else {
-				strncpy (path, cwd, sizeof (path));
-				path[sizeof (path) - 1] = 0;
-			}
+		if (arg[0] != '/' && !is_url (arg)) {
+			strncpy (path, cwd, sizeof (path));
+			path[sizeof (path) - 1] = 0;
 			resolve_path (path, sizeof (path), arg);
 		}
 		else {
@@ -3937,9 +3933,9 @@ void interface_cmdline_file_info (const
 		puts ("State: STOP");
 	else {
 		int left;
-		char curr_time_str[6];
-		char time_left_str[6];
-		char time_str[6];
+		char curr_time_str[32];
+		char time_left_str[32];
+		char time_str[32];
 		char *title;
 
 		if (curr_file.state == STATE_PLAY)
@@ -4225,13 +4221,13 @@ void interface_cmdline_formatted_info (c
 		char *rate;
 	} info_t;
 
-	char curr_time_str[6];
-	char time_left_str[6];
-	char time_str[6];
-	char time_sec_str[5];
-	char curr_time_sec_str[5];
-	char file_bitrate_str[4];
-	char file_rate_str[3];
+	char curr_time_str[32];
+	char time_left_str[32];
+	char time_str[32];
+	char time_sec_str[16];
+	char curr_time_sec_str[16];
+	char file_bitrate_str[16];
+	char file_rate_str[16];
 
 	char *fmt, *str;
 	info_t str_info;
@@ -4324,11 +4320,14 @@ void interface_cmdline_formatted_info (c
 		str_info.album = curr_file.tags->album ? curr_file.tags->album : NULL;
 
 		if (curr_file.tags->time != -1)
-			snprintf(time_sec_str, 5, "%d", curr_file.tags->time);
+			snprintf(time_sec_str, sizeof(file_rate_str),
+			         "%d", curr_file.tags->time);
 
-		snprintf(curr_time_sec_str, 5, "%d", curr_file.curr_time);
-		snprintf(file_bitrate_str, 4, "%d", MAX(curr_file.bitrate, 0));
-		snprintf(file_rate_str, 3, "%d", curr_file.rate);
+		snprintf(curr_time_sec_str, sizeof(file_rate_str),
+		         "%d", curr_file.curr_time);
+		snprintf(file_bitrate_str, sizeof(file_rate_str),
+		         "%d", MAX(curr_file.bitrate, 0));
+		snprintf(file_rate_str, sizeof(file_rate_str), "%d", curr_file.rate);
 	}
 
 	/* string with formatting tags */
diff -pruN 1:2.6.0~svn-r2984-1/interface_elements.c 1:2.6.0~svn-r2994-1/interface_elements.c
--- 1:2.6.0~svn-r2984-1/interface_elements.c	2018-07-29 21:49:24.000000000 +0000
+++ 1:2.6.0~svn-r2994-1/interface_elements.c	2019-01-09 01:01:24.000000000 +0000
@@ -1046,7 +1046,7 @@ static int add_to_menu (struct menu *men
 	free (title);
 
 	if (item->tags && item->tags->time != -1) {
-		char time_str[6];
+		char time_str[32];
 
 		sec_to_min (time_str, item->tags->time);
 		menu_item_set_time (added, time_str);
@@ -1399,7 +1399,7 @@ static void update_menu_item (struct men
 	item = &plist->items[n];
 
 	if (item->tags && item->tags->time != -1) {
-		char time_str[6];
+		char time_str[32];
 
 		sec_to_min (time_str, item->tags->time);
 		menu_item_set_time (mi, time_str);
@@ -2520,8 +2520,13 @@ static void bar_update_title (struct bar
 	else {
 		sprintf (b->title, "%*s", b->width - 7, b->orig_title);
 		strcpy (pct, " 100%  ");
+
+		/* The snprintf(3) below can never output 310 bytes! */
+		SUPPRESS_FORMAT_TRUNCATION_WARNING
 		if (b->filled < 99.99)
 			snprintf (pct, sizeof (pct), "  %02.0f%%  ", b->filled);
+		UNSUPPRESS_FORMAT_TRUNCATION_WARNING
+
 		strncpy (&b->title[b->width - 7], pct, strlen (pct));
 	}
 }
@@ -2873,7 +2878,7 @@ static void info_win_set_state (struct i
 
 static void info_win_draw_time (const struct info_win *w)
 {
-	char time_str[6];
+	char time_str[32];
 
 	assert (w != NULL);
 
@@ -3308,7 +3313,7 @@ static void info_win_set_option_state (s
 }
 
 /* Convert time in second to min:sec text format(for total time in playlist).
- * buff must be 10 chars long. */
+ * 'buff' must be 48 chars long. */
 static void sec_to_min_plist (char *buff, const int seconds)
 {
 	assert (seconds >= 0);
@@ -3320,7 +3325,7 @@ static void sec_to_min_plist (char *buff
 		min  = (seconds / 60) % 60;
 		sec  = seconds % 60;
 
-		snprintf (buff, 10, "%03d:%02d:%02d", hour, min, sec);
+		snprintf (buff, 48, "%03d:%02d:%02d", hour, min, sec);
 	}
 	else
 		strcpy (buff, "!!!!!!!!!");
@@ -3331,7 +3336,7 @@ static void info_win_draw_files_time (co
 	assert (w != NULL);
 
 	if (!w->in_entry && !w->too_small) {
-		char buf[10];
+		char buf[48];
 
 		sec_to_min_plist (buf, w->plist_time);
 		wmove (w->win, 0, COLS - 12);
@@ -4127,10 +4132,10 @@ void iface_error (const char *msg)
 /* Handle screen resizing. */
 void iface_resize ()
 {
-	check_term_size (&main_win, &info_win);
-	validate_layouts ();
 	endwin ();
 	refresh ();
+	check_term_size (&main_win, &info_win);
+	validate_layouts ();
 	main_win_resize (&main_win);
 	info_win_resize (&info_win);
 	iface_refresh_screen ();
@@ -4325,7 +4330,7 @@ void iface_handle_lyrics_key (const stru
 void iface_toggle_layout ()
 {
 	static int curr_layout = 1;
-	char layout_option[10];
+	char layout_option[32];
 	lists_t_strs *layout_fmt;
 
 	if (++curr_layout > 3)
diff -pruN 1:2.6.0~svn-r2984-1/log.h 1:2.6.0~svn-r2994-1/log.h
--- 1:2.6.0~svn-r2984-1/log.h	2018-07-29 21:49:24.000000000 +0000
+++ 1:2.6.0~svn-r2994-1/log.h	2018-08-09 22:14:20.000000000 +0000
@@ -7,6 +7,11 @@
 extern "C" {
 #endif
 
+/* Suppress overly-enthusiastic GNU variadic macro extensions warning. */
+#if defined(__clang__) && HAVE_VARIADIC_MACRO_WARNING
+# pragma clang diagnostic ignored "-Wgnu-zero-variadic-macro-arguments"
+#endif
+
 #ifdef DEBUG
 # define debug logit
 #else
diff -pruN 1:2.6.0~svn-r2984-1/player.c 1:2.6.0~svn-r2994-1/player.c
--- 1:2.6.0~svn-r2984-1/player.c	2018-07-29 21:49:24.000000000 +0000
+++ 1:2.6.0~svn-r2994-1/player.c	2018-08-09 22:14:28.000000000 +0000
@@ -833,7 +833,7 @@ static void fill_cb (struct io_stream *u
 		size_t unused2 ATTR_UNUSED, void *unused3 ATTR_UNUSED)
 {
 	if (prebuffering) {
-		char msg[32];
+		char msg[64];
 
 		sprintf (msg, "Prebuffering %zu/%d KB", fill / 1024U,
 		              options_get_int("Prebuffering"));
diff -pruN 1:2.6.0~svn-r2984-1/playlist_file.c 1:2.6.0~svn-r2994-1/playlist_file.c
--- 1:2.6.0~svn-r2984-1/playlist_file.c	2018-07-29 21:49:24.000000000 +0000
+++ 1:2.6.0~svn-r2994-1/playlist_file.c	2018-08-11 04:09:43.000000000 +0000
@@ -44,8 +44,7 @@ int is_plist_file (const char *name)
 	return 0;
 }
 
-static void make_path (char *buf, const int buf_size,
-		const char *cwd, char *path)
+static void make_path (char *buf, size_t buf_size, const char *cwd, char *path)
 {
 	if (file_type(path) == F_URL) {
 		strncpy (buf, path, buf_size);
@@ -321,7 +320,7 @@ static int plist_load_pls (struct plist
 	for (i = 1; i <= nitems; i++) {
 		int time, last_added;
 		char *pls_file, *pls_title, *pls_length;
-		char key[16], path[2 * PATH_MAX];
+		char key[32], path[2 * PATH_MAX];
 
 		sprintf (key, "File%ld", i);
 		pls_file = read_ini_value (file, "playlist", key);
diff -pruN 1:2.6.0~svn-r2984-1/server.c 1:2.6.0~svn-r2994-1/server.c
--- 1:2.6.0~svn-r2984-1/server.c	2018-07-29 21:49:24.000000000 +0000
+++ 1:2.6.0~svn-r2994-1/server.c	2018-08-09 22:14:28.000000000 +0000
@@ -540,8 +540,8 @@ static void on_song_change ()
 				break;
 			case 'n':
 				if (curr_tags->track >= 0) {
-					str = (char *) xmalloc (sizeof (char) * 4);
-					snprintf (str, 4, "%d", curr_tags->track);
+					str = (char *) xmalloc (sizeof (char) * 16);
+					snprintf (str, 16, "%d", curr_tags->track);
 					lists_strs_push (arg_list, str);
 				}
 				else
@@ -552,8 +552,8 @@ static void on_song_change ()
 				break;
 			case 'D':
 				if (curr_tags->time >= 0) {
-					str = (char *) xmalloc (sizeof (char) * 10);
-					snprintf (str, 10, "%d", curr_tags->time);
+					str = (char *) xmalloc (sizeof (char) * 16);
+					snprintf (str, 16, "%d", curr_tags->time);
 					lists_strs_push (arg_list, str);
 				}
 				else
@@ -561,7 +561,7 @@ static void on_song_change ()
 				break;
 			case 'd':
 				if (curr_tags->time >= 0) {
-					str = (char *) xmalloc (sizeof (char) * 12);
+					str = (char *) xmalloc (sizeof (char) * 32);
 					sec_to_min (str, curr_tags->time);
 					lists_strs_push (arg_list, str);
 				}
diff -pruN 1:2.6.0~svn-r2984-1/sndio_out.h 1:2.6.0~svn-r2994-1/sndio_out.h
--- 1:2.6.0~svn-r2984-1/sndio_out.h	2018-07-29 21:49:24.000000000 +0000
+++ 1:2.6.0~svn-r2994-1/sndio_out.h	2018-08-14 05:40:38.000000000 +0000
@@ -1,5 +1,5 @@
-#ifndef SNDIO_H
-#define SNDIO_H
+#ifndef SNDIO_OUT_H
+#define SNDIO_OUT_H
 
 #include "audio.h"
 
