mirror of
https://github.com/wesnoth/wesnoth
synced 2025-05-04 18:21:15 +00:00
New directories fix and a valid loop breaker
This commit is contained in:
parent
5a77701ebe
commit
43817eccf0
@ -191,9 +191,12 @@ static void write_difference(config& pack, const config& from, const config& to,
|
||||
|
||||
for(const config& d : to.child_range("dir")) {
|
||||
const config& origin_dir = from.find_child("dir", "name", d["name"]);
|
||||
config& dir = pack.add_child("dir");
|
||||
if(origin_dir) {
|
||||
config& dir = pack.add_child("dir");
|
||||
write_difference(dir, origin_dir, d, with_content);
|
||||
} else {
|
||||
const config dummy_dir = config("name", d["name"]);
|
||||
write_difference(dir, dummy_dir, d, with_content);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -793,8 +793,9 @@ void server::handle_request_campaign(const server::request& req)
|
||||
|
||||
auto iter = version_map.begin();
|
||||
int size = 0;
|
||||
bool failed = false;
|
||||
|
||||
while(std::distance(iter, version_map.end()) > 1) {
|
||||
while(!failed && std::distance(iter, version_map.end()) > 1) {
|
||||
const config& prev_version = iter->second;
|
||||
iter++;
|
||||
const config& next_version = iter->second;
|
||||
@ -811,14 +812,14 @@ void server::handle_request_campaign(const server::request& req)
|
||||
} else {
|
||||
WRN_CS << "Unable to create an update pack sequence from version (" << from << ") to ("
|
||||
<< to << ") for the addon '" << req.cfg["name"].str() << "'. A full pack will be sent instead!\n";
|
||||
pack_data = config::get_invalid();
|
||||
failed = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if(pack_data && !pack_data.empty()) {
|
||||
if(!failed && pack_data && !pack_data.empty()) {
|
||||
std::ostringstream ostr;
|
||||
write(ostr, pack_data);
|
||||
std::string wml = ostr.str();
|
||||
|
Loading…
x
Reference in New Issue
Block a user