This solution is a bit of a hack, but odds are this code will be
majorly refactored in 1.15 anyway. The important thing is that
this works.
(cherry-picked from commit 8e4de9db67f533e98cd11235567b95a03cb9889a)
The intent behind this is that, if there most likely wouldn't be enough time left to complete the unit tests anyway, then just fail the job after compiling so the cache can be updated. Otherwise, if the unit tests were run and the job timed out, then the cache would not be uploaded at all and the next time the job ran it would be from scratch again.
(cherry-picked from commit 5d970e40cd43a23a8d1b8198e962f198fc9282b0)
Note: UBSan at least does seem to take a fairly significant amount of extra time to compile and run the WML tests with.
(cherry-picked from commit 92f74c39f6aedc10bd04f1cf6dc9144fb35e3a19)
[[noreturn]] is supported on all the compilers we support. Still need to decide
the exact minimum versions and figure out what to do with DEPRECATED and FALLTHROUGH,
so leaving those for now.
And since we require VS 2015 and up we can enable C99 unconditionally.
(cherry-picked from commit 96681151f083bb25a3ddb3301083241e36fd6789)
This is no longer needed with the compilers we support. It is needed on VS 2013, but
we dropped that. Don't know when GCC or Clang stopped needed it (if they ever did).
I'm guessing the "function that returns a value cannot be bound in a function type
that returns void" behavior wasn't an intentional design. Additionally, I don't believe
point 1 raised in the accompanying comment has ever been true... if so, pretty sure
we wouldn't have been able to build at all.
Also removed unnecessary global.hpp include from functional.hpp.
(cherry-picked from commit 17fc9d71dbd933fa2e37c8fd9aed52a4e2fb5735)
Locale doesn't rely on boost, so it must have been some other issue in Boost 1.60
that was incidentally fixed by including that file. If anyone ever happens to build
with 1.60 again we can revisit this.
For the record, there are no issues with VS 2017 and Boost 1.66.
(cherry-picked from commit 7cf93413797c73e6ca33e22a615897ffbec42cdb)
It was broken by b95c9996bf435daa4d7e64fd1ef41425ac182b95 because
ignoring SIGCHLD makes it impossible to query exit status of wesnothd
subprocess. Fix this by spawning a thread to wait for the browser
instead of ignoring SIGCHLD.
(cherry-picked from commit 846bf8f208ae41381e133e96b24e6b9876ea2a01)
I originally did this in 699047766a8852014df20c44d5ed84dadb37015e and then reverted it in
08a866dc20e678602f65f0cdedb21fb28a0bfa8c due to @gfgtdf pointing out the object was never
actually destroyed since io_service::stop was never called (issue #1927).
This new method foregoes the custom wrapper class and instead waits for the worker thread
to terminate in the wesnothd_connection dtor. The use of the wrapper class is also why using
thread::detach alone worked (@jyrkive) and using join did not.
Additionally, the ptr alias is now of a unique_ptr instead of a shared_ptr.
I have verified that the connection dtor is actually called. This new method makes it clearer
what's actually going on.
(cherry-picked from commit acc3fe890611b54c8493acafc33f1e78832b65dc)
We use both SDL_KEYDOWN and SDL_TEXTINPUT events for hotkeys. It's possible
for both events (caused by the same keypress) to trigger the hotkey command
and we don't want that. Hence, let's drop duplicate commands.
Fixes#1736.
(cherry-picked from commit 8667e5bbdd3d2a92e966a15f12a3753b9e3c283f)
In scenarios 06 and 14 I turned the opening narrator message into story text instead. The image for 03 isn't used yet as there's no text to accompany it.
(cherry-picked from commit eaf186e021d885d5fb39c0ff5c89413d769f0fdd)
Closes#2873.
(This is part of a commented-out block in master because Vultraz hasn't
updated the code yet. He said I could forward-port the patch into it
anyway. For the time being unit descriptions are just completely missing
because of this.)
(cherry-picked from commit 7f8cb13bd309eabe960a975a0ec0b5cbdd7f0719)
This reverts commit c42401a8deb92acc16039fbeed0acf16287e286c.
As @CelticMinstrel pointed out, that commit made it impossible to input characters which require
AltGr to type (e.g. @, € and $ in Finnish keyboard).
Reopens#1736.
(cherry-picked from commit 934f0326d85c90b7b0250f38365f56073540e357)