aboutsummaryrefslogtreecommitdiff
path: root/src/metadata.cpp
diff options
context:
space:
mode:
authorJude Melton-Houghton <jwmhjwmh@gmail.com>2022-11-24 17:56:43 -0500
committerGitHub <noreply@github.com>2022-11-24 17:56:43 -0500
commit8817af07fb72fd78fb753fe5d069d0a65a79742f (patch)
tree57b4fc5c96aa4065479a79bcb6001075f9091b72 /src/metadata.cpp
parent3c7f26d93721d8d86ca5d9e894e8652b1e2a8672 (diff)
downloadminetest-8817af07fb72fd78fb753fe5d069d0a65a79742f.tar.xz
Deprecate special handling of `${key}` syntax in metadata values (#12970)
Diffstat (limited to 'src/metadata.cpp')
-rw-r--r--src/metadata.cpp11
1 files changed, 8 insertions, 3 deletions
diff --git a/src/metadata.cpp b/src/metadata.cpp
index d8a41218d..f02495fa4 100644
--- a/src/metadata.cpp
+++ b/src/metadata.cpp
@@ -51,7 +51,7 @@ const std::string &IMetadata::getString(const std::string &name, std::string *pl
return empty_string;
}
- return resolveString(*raw, place, recursion);
+ return resolveString(*raw, place, recursion, true);
}
bool IMetadata::getStringToRef(const std::string &name,
@@ -61,16 +61,21 @@ bool IMetadata::getStringToRef(const std::string &name,
if (!raw)
return false;
- const std::string &resolved = resolveString(*raw, &str, recursion);
+ const std::string &resolved = resolveString(*raw, &str, recursion, true);
if (&resolved != &str)
str = resolved;
return true;
}
const std::string &IMetadata::resolveString(const std::string &str, std::string *place,
- u16 recursion) const
+ u16 recursion, bool deprecated) const
{
if (recursion <= 1 && str.substr(0, 2) == "${" && str[str.length() - 1] == '}') {
+ if (deprecated) {
+ warningstream << "Deprecated use of recursive resolution syntax in metadata: ";
+ safe_print_string(warningstream, str);
+ warningstream << std::endl;
+ }
// It may be the case that &str == place, but that's fine.
return getString(str.substr(2, str.length() - 3), place, recursion + 1);
}