An old add-on triggered a wmliterator crash with this comment:
#>>>> !!!!! REMOVE THIS AFTER TEST !!!!! <<<<#
The traceback showed that the crash came from the lua-stripping
code, which interprets "<<" as the start of a lua string. But below
it is code to remove quoted strings, and it doesn't crash, even
though there are cases where authors forgot to close a quote.
Two key differences stood out in the otherwise similar second
code: only looking for the endquote string in the text after
beginquote, and testing that endquote was less than 0, not -1.
Changing both gets the loop to terminate. Making it search the
text only after "beginquote+2" means that ">>" will no longer
be found, giving endquote a value of -1. But -1 is not less than
-1, so that must be changed to " < 0" to close the loop.
Since to my knowledge it's impossible to create named pipes on Windows on
a regular filesystem and both the listener and the sender have to use the
Win32 API to establish communication instead.
This prevents campaignd from deleting the current FIFO on config reload
if the path in the config hasn't changed, and potentially losing queued
up commands.
By default is has the same effect as SIGINT, but it also takes an
optional 'blacklist' argument which instructs campaignd to only re-read
the blacklist file.
It's a bit tricky right now because whoever changes the configuration
must make sure to do it within the flush interval or their changes may
be lost before they get to send SIGHUP to campaignd. Another issue is
that the campaigns list may change (new uploads, bumped download counts,
etc.) between editing the config file and sending SIGHUP, and any
changes in the on-memory version of the list will be irreversibly lost.
Hopefully soon I'll add some socket commands to address these
limitations.
This is a port of commits 15ac0224ca and
038090a1fe, without master-specific
dependencies and with the SDL version requirement lowered to 1.2.7.
Unsupported/legacy build configurations are still not mentioned in this
commit because they overcomplicate everything.
If no build type is selected it can happen that the game builds without
any optimization. Now the user has to explicitly specify the 'none'
type if they want it.
Some of these don't even exist in the legacy non-BFS implementation, but
it's possible they might prove useful for debugging later.
Fixes some spurious errors printed when browsing directories outside the
user's home dir on Linux/*BSD/etc., as well as a few recently introduced
in the GUI2 test suite by commit
db28dca52c.
that commit changed uintmax_t to be 4 bytes long instead of 8 bytes long in windows which makes us uncapable to read files >4GB.
boost::filesystem::file_size retrun type is boost::uintmax_t so we don't need to include files for this line.
This reverts commit 2656a5d070.
Removing features or compatibility paths is not allowed in stable
branches unless required to solve a security vulnerability or other
severe issue.