This thing was introduced in 492efa7b4bf687cada5d125d2fc4ab1c9ab097db
(from SVN r35965) due to a misapplication of a SVN property manipulation
command. I don't know what it is, but since it's part of the
decommissioned stats.w.o codebase and with the wrong filename to begin
with, I doubt anyone will miss it much.
This is necessary so files with similar names which are actually
versioned and important aren't matched by these patterns, otherwise
only intended to match build output files.
Here's the rationale for these additions:
* There is so much focus on wmllint's role in conversion, that many people may not think of it as a validator also (I didn't). So often, stumped authors ask in the forums about problems that would have been fixed or pointed out if they'd run wmllint. I want to encourage awareness of wmllint as a validator.
* Folded a line to fit normal 80-width CLI.
* Help contained no mention of this rather redundant option.
* How many people don't realize that ESR's long introduction is there?
* Some users may not understand why they're being dumped back to wmllint's help.
I used "inconsistency" for the actual variable name, because "known" seems more likely to be accidentally reused.
I pondered whether to allow the scenario check to go forward, but decided to just make a clean break.
Note that this does not prevent any of the information-gathering for the consistency check, just the check itself.
Why would you want to use this option? Of course, you should run the consistency check at some point. But if you simply want to recheck if you've fixed all the bugs in your campaign, you might not want to have wmllint slog through data/core again.
According to the introduction, stringfreeze does *not* suppress the warning, and the code bears this out.
I wonder how often this option is actually used.
The main way I know of for getting into this situation is hitting
the recursion maximum within pump(), and if that happens you probably
have runaway WML. So it should be better to move on instead of
continuing to process events.
(Normally, events raised within an event handler are pumped before
that event handler exits, so would not be affected by this change.)
I think the old behavior is an artifact of the old implementation,
but I'm making this a separate commit in case removing this causes
problems (easier to diagnose, especially if I'm not the one diagnosing).
game_events::pump() now records the events in the event queue at
the time it is called. This isolates those events from any that
might be fired within one of the events (e.g. with [fire_event]).
For an example of what was happening, see bug #21031.
Fixes bug #21031.
I realized that as it stood, my dictionary would linger, bad if wmllint were being run on multiple campaigns. A special unwho keyword, 'all', clears the dictionary.
Now that we see how the whopairs are recognized, we can see that the magic comment accepts a comma-separated list, for macros that deal with more than one character.
We also see that if it is necessary to remove a character who leaves the party, this can be done with another entry prefixed by double minuses.
The "recognize" magic comment only covers one scenario; but what about macros that are used in many scenarios?
This new magic comment creates dictionary pairs of macros with the characters they are associated with. If this is not yet clear, hopefully the following commits will show the full picture.
It's a bit more C++-like, but more importantly puts related static
variables in the same file (so this should cure the static
initialization fiasco known as bug #21020).