From 4f22f4d357c99ba4163a496882f813138db3c39b Mon Sep 17 00:00:00 2001
From: Max Kellermann <max@musicpd.org>
Date: Sat, 1 Feb 2020 13:49:19 +0100
Subject: [PATCH] *: use nullptr instead of NULL

---
 src/Permission.cxx                              |  2 +-
 src/db/plugins/upnp/ContentDirectoryService.cxx |  6 +++---
 src/input/plugins/AlsaInputPlugin.cxx           | 12 ++++++------
 src/lib/alsa/HwSetup.cxx                        | 12 ++++++------
 src/lib/upnp/ContentDirectoryService.cxx        |  2 +-
 src/mixer/MixerType.cxx                         |  2 +-
 src/output/State.cxx                            |  2 +-
 src/unix/SignalHandlers.cxx                     |  2 +-
 src/util/FormatString.cxx                       |  2 +-
 test/DumpDatabase.cxx                           |  2 +-
 test/dump_playlist.cxx                          |  6 +++---
 test/dump_rva2.cxx                              |  2 +-
 test/read_mixer.cxx                             |  2 +-
 test/read_tags.cxx                              |  4 ++--
 test/run_encoder.cxx                            |  2 +-
 test/run_filter.cxx                             |  2 +-
 test/test_vorbis_encoder.cxx                    |  2 +-
 17 files changed, 32 insertions(+), 32 deletions(-)

diff --git a/src/Permission.cxx b/src/Permission.cxx
index fed7106ca..43e6935fc 100644
--- a/src/Permission.cxx
+++ b/src/Permission.cxx
@@ -92,7 +92,7 @@ initPermissions(const ConfigData &config)
 			const char *separator = strchr(value,
 						       PERMISSION_PASSWORD_CHAR);
 
-			if (separator == NULL)
+			if (separator == nullptr)
 				throw FormatRuntimeError("\"%c\" not found in password string",
 							 PERMISSION_PASSWORD_CHAR);
 
diff --git a/src/db/plugins/upnp/ContentDirectoryService.cxx b/src/db/plugins/upnp/ContentDirectoryService.cxx
index d36b27982..0cb94c42c 100644
--- a/src/db/plugins/upnp/ContentDirectoryService.cxx
+++ b/src/db/plugins/upnp/ContentDirectoryService.cxx
@@ -62,7 +62,7 @@ ContentDirectoryService::readDirSlice(UpnpClient_Handle hdl,
 
 	IXML_Document *response;
 	int code = UpnpSendAction(hdl, m_actionURL.c_str(), m_serviceType.c_str(),
-				  0 /*devUDN*/, request, &response);
+				  nullptr /*devUDN*/, request, &response);
 	if (code != UPNP_E_SUCCESS)
 		throw FormatRuntimeError("UpnpSendAction() failed: %s",
 					 UpnpGetErrorMessage(code));
@@ -121,7 +121,7 @@ ContentDirectoryService::search(UpnpClient_Handle hdl,
 		IXML_Document *_response;
 		auto code = UpnpSendAction(hdl, m_actionURL.c_str(),
 					   m_serviceType.c_str(),
-					   0 /*devUDN*/,
+					   nullptr /*devUDN*/,
 					   request.get(), &_response);
 		if (code != UPNP_E_SUCCESS)
 			throw FormatRuntimeError("UpnpSendAction() failed: %s",
@@ -167,7 +167,7 @@ ContentDirectoryService::getMetadata(UpnpClient_Handle hdl,
 	IXML_Document *_response;
 	auto code = UpnpSendAction(hdl, m_actionURL.c_str(),
 				   m_serviceType.c_str(),
-				   0 /*devUDN*/, request.get(), &_response);
+				   nullptr /*devUDN*/, request.get(), &_response);
 	if (code != UPNP_E_SUCCESS)
 		throw FormatRuntimeError("UpnpSendAction() failed: %s",
 					 UpnpGetErrorMessage(code));
diff --git a/src/input/plugins/AlsaInputPlugin.cxx b/src/input/plugins/AlsaInputPlugin.cxx
index 98ebd4d92..aee525cc6 100644
--- a/src/input/plugins/AlsaInputPlugin.cxx
+++ b/src/input/plugins/AlsaInputPlugin.cxx
@@ -355,18 +355,18 @@ AlsaInputStream::ConfigureCapture(AudioFormat audio_format)
 	snd_pcm_hw_params_get_buffer_size_min(hw_params, &buffer_size_min);
 	snd_pcm_hw_params_get_buffer_size_max(hw_params, &buffer_size_max);
 	unsigned buffer_time_min, buffer_time_max;
-	snd_pcm_hw_params_get_buffer_time_min(hw_params, &buffer_time_min, 0);
-	snd_pcm_hw_params_get_buffer_time_max(hw_params, &buffer_time_max, 0);
+	snd_pcm_hw_params_get_buffer_time_min(hw_params, &buffer_time_min, nullptr);
+	snd_pcm_hw_params_get_buffer_time_max(hw_params, &buffer_time_max, nullptr);
 	FormatDebug(alsa_input_domain, "buffer: size=%u..%u time=%u..%u",
 		    (unsigned)buffer_size_min, (unsigned)buffer_size_max,
 		    buffer_time_min, buffer_time_max);
 
 	snd_pcm_uframes_t period_size_min, period_size_max;
-	snd_pcm_hw_params_get_period_size_min(hw_params, &period_size_min, 0);
-	snd_pcm_hw_params_get_period_size_max(hw_params, &period_size_max, 0);
+	snd_pcm_hw_params_get_period_size_min(hw_params, &period_size_min, nullptr);
+	snd_pcm_hw_params_get_period_size_max(hw_params, &period_size_max, nullptr);
 	unsigned period_time_min, period_time_max;
-	snd_pcm_hw_params_get_period_time_min(hw_params, &period_time_min, 0);
-	snd_pcm_hw_params_get_period_time_max(hw_params, &period_time_max, 0);
+	snd_pcm_hw_params_get_period_time_min(hw_params, &period_time_min, nullptr);
+	snd_pcm_hw_params_get_period_time_max(hw_params, &period_time_max, nullptr);
 	FormatDebug(alsa_input_domain, "period: size=%u..%u time=%u..%u",
 		    (unsigned)period_size_min, (unsigned)period_size_max,
 		    period_time_min, period_time_max);
diff --git a/src/lib/alsa/HwSetup.cxx b/src/lib/alsa/HwSetup.cxx
index a6a41dc11..792556545 100644
--- a/src/lib/alsa/HwSetup.cxx
+++ b/src/lib/alsa/HwSetup.cxx
@@ -233,18 +233,18 @@ SetupHw(snd_pcm_t *pcm,
 	snd_pcm_hw_params_get_buffer_size_min(hwparams, &buffer_size_min);
 	snd_pcm_hw_params_get_buffer_size_max(hwparams, &buffer_size_max);
 	unsigned buffer_time_min, buffer_time_max;
-	snd_pcm_hw_params_get_buffer_time_min(hwparams, &buffer_time_min, 0);
-	snd_pcm_hw_params_get_buffer_time_max(hwparams, &buffer_time_max, 0);
+	snd_pcm_hw_params_get_buffer_time_min(hwparams, &buffer_time_min, nullptr);
+	snd_pcm_hw_params_get_buffer_time_max(hwparams, &buffer_time_max, nullptr);
 	FormatDebug(alsa_output_domain, "buffer: size=%u..%u time=%u..%u",
 		    (unsigned)buffer_size_min, (unsigned)buffer_size_max,
 		    buffer_time_min, buffer_time_max);
 
 	snd_pcm_uframes_t period_size_min, period_size_max;
-	snd_pcm_hw_params_get_period_size_min(hwparams, &period_size_min, 0);
-	snd_pcm_hw_params_get_period_size_max(hwparams, &period_size_max, 0);
+	snd_pcm_hw_params_get_period_size_min(hwparams, &period_size_min, nullptr);
+	snd_pcm_hw_params_get_period_size_max(hwparams, &period_size_max, nullptr);
 	unsigned period_time_min, period_time_max;
-	snd_pcm_hw_params_get_period_time_min(hwparams, &period_time_min, 0);
-	snd_pcm_hw_params_get_period_time_max(hwparams, &period_time_max, 0);
+	snd_pcm_hw_params_get_period_time_min(hwparams, &period_time_min, nullptr);
+	snd_pcm_hw_params_get_period_time_max(hwparams, &period_time_max, nullptr);
 	FormatDebug(alsa_output_domain, "period: size=%u..%u time=%u..%u",
 		    (unsigned)period_size_min, (unsigned)period_size_max,
 		    period_time_min, period_time_max);
diff --git a/src/lib/upnp/ContentDirectoryService.cxx b/src/lib/upnp/ContentDirectoryService.cxx
index bc93b5fe6..f43a304a9 100644
--- a/src/lib/upnp/ContentDirectoryService.cxx
+++ b/src/lib/upnp/ContentDirectoryService.cxx
@@ -61,7 +61,7 @@ ContentDirectoryService::getSearchCapabilities(UpnpClient_Handle hdl) const
 	IXML_Document *_response;
 	auto code = UpnpSendAction(hdl, m_actionURL.c_str(),
 				   m_serviceType.c_str(),
-				   0 /*devUDN*/, request.get(), &_response);
+				   nullptr /*devUDN*/, request.get(), &_response);
 	if (code != UPNP_E_SUCCESS)
 		throw FormatRuntimeError("UpnpSendAction() failed: %s",
 					 UpnpGetErrorMessage(code));
diff --git a/src/mixer/MixerType.cxx b/src/mixer/MixerType.cxx
index 99aa39de0..d9a896861 100644
--- a/src/mixer/MixerType.cxx
+++ b/src/mixer/MixerType.cxx
@@ -27,7 +27,7 @@
 MixerType
 mixer_type_parse(const char *input)
 {
-	assert(input != NULL);
+	assert(input != nullptr);
 
 	if (strcmp(input, "none") == 0 || strcmp(input, "disabled") == 0)
 		return MixerType::NONE;
diff --git a/src/output/State.cxx b/src/output/State.cxx
index b02c48e82..e5da97d69 100644
--- a/src/output/State.cxx
+++ b/src/output/State.cxx
@@ -69,7 +69,7 @@ audio_output_state_read(const char *line, MultipleOutputs &outputs)
 
 	name = endptr + 1;
 	auto *ao = outputs.FindByName(name);
-	if (ao == NULL) {
+	if (ao == nullptr) {
 		FormatDebug(output_domain,
 			    "Ignoring device state for '%s'", name);
 		return true;
diff --git a/src/unix/SignalHandlers.cxx b/src/unix/SignalHandlers.cxx
index 83c3f0e3a..57e3b4a08 100644
--- a/src/unix/SignalHandlers.cxx
+++ b/src/unix/SignalHandlers.cxx
@@ -42,7 +42,7 @@ HandleShutdownSignal(void *ctx) noexcept
 static void
 x_sigaction(int signum, const struct sigaction *act)
 {
-	if (sigaction(signum, act, NULL) < 0)
+	if (sigaction(signum, act, nullptr) < 0)
 		throw MakeErrno("sigaction() failed");
 }
 
diff --git a/src/util/FormatString.cxx b/src/util/FormatString.cxx
index 980dfeafd..c26702e75 100644
--- a/src/util/FormatString.cxx
+++ b/src/util/FormatString.cxx
@@ -28,7 +28,7 @@ FormatStringV(const char *fmt, va_list args) noexcept
 {
 	va_list tmp;
 	va_copy(tmp, args);
-	const int length = vsnprintf(NULL, 0, fmt, tmp);
+	const int length = vsnprintf(nullptr, 0, fmt, tmp);
 	va_end(tmp);
 
 	if (length <= 0)
diff --git a/test/DumpDatabase.cxx b/test/DumpDatabase.cxx
index 827e04f41..402aa31fe 100644
--- a/test/DumpDatabase.cxx
+++ b/test/DumpDatabase.cxx
@@ -110,7 +110,7 @@ try {
 	const char *const plugin_name = argv[2];
 
 	const DatabasePlugin *plugin = GetDatabasePluginByName(plugin_name);
-	if (plugin == NULL) {
+	if (plugin == nullptr) {
 		cerr << "No such database plugin: " << plugin_name << endl;
 		return EXIT_FAILURE;
 	}
diff --git a/test/dump_playlist.cxx b/test/dump_playlist.cxx
index 9359013d9..34892a557 100644
--- a/test/dump_playlist.cxx
+++ b/test/dump_playlist.cxx
@@ -74,7 +74,7 @@ try {
 
 	InputStreamPtr is;
 	auto playlist = playlist_list_open_uri(uri, mutex);
-	if (playlist == NULL) {
+	if (playlist == nullptr) {
 		/* open the stream and wait until it becomes ready */
 
 		is = InputStream::OpenReady(uri, mutex);
@@ -82,7 +82,7 @@ try {
 		/* open the playlist */
 
 		playlist = playlist_list_open_stream(std::move(is), uri);
-		if (playlist == NULL) {
+		if (playlist == nullptr) {
 			fprintf(stderr, "Failed to open playlist\n");
 			return 2;
 		}
@@ -91,7 +91,7 @@ try {
 	/* dump the playlist */
 
 	std::unique_ptr<DetachedSong> song;
-	while ((song = playlist->NextSong()) != NULL) {
+	while ((song = playlist->NextSong()) != nullptr) {
 		printf("%s\n", song->GetURI());
 
 		const unsigned start_ms = song->GetStartTime().ToMS();
diff --git a/test/dump_rva2.cxx b/test/dump_rva2.cxx
index 318f38d80..bd09edab2 100644
--- a/test/dump_rva2.cxx
+++ b/test/dump_rva2.cxx
@@ -70,7 +70,7 @@ try {
 	auto is = OpenLocalInputStream(path, mutex);
 
 	const auto tag = tag_id3_load(*is);
-	if (tag == NULL) {
+	if (tag == nullptr) {
 		fprintf(stderr, "No ID3 tag found\n");
 		return EXIT_FAILURE;
 	}
diff --git a/test/read_mixer.cxx b/test/read_mixer.cxx
index d68e62640..9823cef8d 100644
--- a/test/read_mixer.cxx
+++ b/test/read_mixer.cxx
@@ -32,7 +32,7 @@ const FilterPlugin *
 filter_plugin_by_name(gcc_unused const char *name) noexcept
 {
 	assert(false);
-	return NULL;
+	return nullptr;
 }
 
 int main(int argc, gcc_unused char **argv)
diff --git a/test/read_tags.cxx b/test/read_tags.cxx
index 567ad6735..5ddaf038a 100644
--- a/test/read_tags.cxx
+++ b/test/read_tags.cxx
@@ -108,7 +108,7 @@ try {
 	const ScopeDecoderPluginsInit decoder_plugins_init({});
 
 	plugin = decoder_plugin_from_name(decoder_name);
-	if (plugin == NULL) {
+	if (plugin == nullptr) {
 		fprintf(stderr, "No such decoder: %s\n", decoder_name);
 		return EXIT_FAILURE;
 	}
@@ -125,7 +125,7 @@ try {
 	Mutex mutex;
 	InputStreamPtr is;
 
-	if (!success && plugin->scan_stream != NULL) {
+	if (!success && plugin->scan_stream != nullptr) {
 		is = InputStream::OpenReady(path.c_str(), mutex);
 		success = plugin->ScanStream(*is, h);
 	}
diff --git a/test/run_encoder.cxx b/test/run_encoder.cxx
index ca7774201..ed4c7f7f3 100644
--- a/test/run_encoder.cxx
+++ b/test/run_encoder.cxx
@@ -55,7 +55,7 @@ try {
 	/* create the encoder */
 
 	const auto plugin = encoder_plugin_get(encoder_name);
-	if (plugin == NULL) {
+	if (plugin == nullptr) {
 		fprintf(stderr, "No such encoder: %s\n", encoder_name);
 		return EXIT_FAILURE;
 	}
diff --git a/test/run_filter.cxx b/test/run_filter.cxx
index 213f8f70c..b5b75dc56 100644
--- a/test/run_filter.cxx
+++ b/test/run_filter.cxx
@@ -52,7 +52,7 @@ LoadFilter(const ConfigData &config, const char *name)
 {
 	const auto *param = config.FindBlock(ConfigBlockOption::AUDIO_FILTER,
 					     "name", name);
-	if (param == NULL)
+	if (param == nullptr)
 		throw FormatRuntimeError("No such configured filter: %s",
 					 name);
 
diff --git a/test/test_vorbis_encoder.cxx b/test/test_vorbis_encoder.cxx
index caad06904..69f1c61da 100644
--- a/test/test_vorbis_encoder.cxx
+++ b/test/test_vorbis_encoder.cxx
@@ -41,7 +41,7 @@ try {
 	/* create the encoder */
 
 	const auto plugin = encoder_plugin_get("vorbis");
-	assert(plugin != NULL);
+	assert(plugin != nullptr);
 
 	ConfigBlock block;
 	block.AddBlockParam("quality", "5.0", -1);