From 1c823e9d1f52ae54677bae884b1f5995292869f3 Mon Sep 17 00:00:00 2001
From: Max Kellermann <max@duempel.org>
Date: Sat, 10 Aug 2013 11:10:30 +0200
Subject: ConfigData: overload GetBlockPath() with default value

---
 src/ConfigData.cxx | 23 ++++++++++++++++++-----
 1 file changed, 18 insertions(+), 5 deletions(-)

(limited to 'src/ConfigData.cxx')

diff --git a/src/ConfigData.cxx b/src/ConfigData.cxx
index eab5f0ed4..2ed8e2f3b 100644
--- a/src/ConfigData.cxx
+++ b/src/ConfigData.cxx
@@ -96,24 +96,37 @@ config_param::DupBlockString(const char *name, const char *default_value) const
 }
 
 Path
-config_param::GetBlockPath(const char *name, GError **error_r) const
+config_param::GetBlockPath(const char *name, const char *default_value,
+			   GError **error_r) const
 {
 	assert(error_r != nullptr);
 	assert(*error_r == nullptr);
 
+	int line2 = line;
+	const char *s;
+
 	const block_param *bp = GetBlockParam(name);
-	if (bp == nullptr)
-		return Path::Null();
+	if (bp != nullptr) {
+		line2 = bp->line;
+		s = bp->value.c_str();
+	} else
+		s = default_value;
 
-	Path path = ParsePath(bp->value.c_str(), error_r);
+	Path path = ParsePath(s, error_r);
 	if (gcc_unlikely(path.IsNull()))
 		g_prefix_error(error_r,
 			       "Invalid path in \"%s\" at line %i: ",
-			       name, bp->line);
+			       name, line2);
 
 	return path;
 }
 
+Path
+config_param::GetBlockPath(const char *name, GError **error_r) const
+{
+	return GetBlockPath(name, nullptr, error_r);
+}
+
 unsigned
 config_param::GetBlockValue(const char *name, unsigned default_value) const
 {
-- 
cgit v1.2.3