wikiheaders: Defines directly following a non-struct typedef are documented.

The idea is that if you have a `typedef Uint32 MyFlags` that has a bunch of
defines that are meant to be bitflags, you can pack them into the same wiki
page automatically.

This only works with `typedef`s that are _not_ struct/union/enums, and it
only pulls in `#define` lines that immediately follow the typedef line.
Even a blank line or a comment will signal to stop including lines for
this page!
This commit is contained in:
Ryan C. Gordon 2024-04-25 02:58:53 -04:00
parent 47ff4addd4
commit 2fb024ab8e
No known key found for this signature in database
GPG Key ID: FA148B892AB48044
3 changed files with 15 additions and 6 deletions

View File

@ -858,6 +858,21 @@ while (my $d = readdir(DH)) {
}
next;
}
# We assume any `#define`s directly after the typedef are related to it: probably bitflags for an integer typedef. Even a blank line will signify an end!
my $lastpos = tell(FH);
my $additional_decl = '';
while (<FH>) {
chomp;
if (not /\A\s*\#define\s+/) {
seek(FH, $lastpos, 0); # re-read this line again next time.
last;
}
$additional_decl .= "$_\n";
push @decllines, $_;
$lastpos = tell(FH);
}
$decl .= "\n$additional_decl" if ($additional_decl ne '');
} else {
die("Unexpected symtype $symtype");
}

View File

@ -47,13 +47,8 @@
* \sa SDL_KeyCode
*/
typedef Sint32 SDL_Keycode;
#define SDLK_SCANCODE_MASK (1<<30)
#define SDL_SCANCODE_TO_KEYCODE(X) (X | SDLK_SCANCODE_MASK)
/**
* A subset of possible virtual key values.
*/
#define SDLK_UNKNOWN 0
#define SDLK_RETURN '\r'
#define SDLK_ESCAPE '\x1B'

View File

@ -131,7 +131,6 @@ typedef struct SDL_Window SDL_Window;
* \sa SDL_GetWindowFlags
*/
typedef Uint32 SDL_WindowFlags;
#define SDL_WINDOW_FULLSCREEN 0x00000001U /**< window is in fullscreen mode */
#define SDL_WINDOW_OPENGL 0x00000002U /**< window usable with OpenGL context */
#define SDL_WINDOW_OCCLUDED 0x00000004U /**< window is occluded */