Do not include files that have already been included. #911
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
If two #included files have the same inode, only the first include will be parsed. this obsoletes the "#if ... #endinput" hack in every include file.
Nominally #include in SourcePawn was the same as C/C++, where you can include the same file over and over. This is useful in C/C++ for creating macro expansion tables. It's not useful in Pawn, where those tricks don't work, and as evidenced by the fact that not a single plugin in the corpus was affected by this change.
This greatly simplifies how static scopes are handled, since SourcePawn's notion of a static scope is per-file, rather than per-translation unit. This simplification re-opens the door to multiple translation units, an important step for an upcoming refactoring of how builtins work.