|
|
@ -1110,6 +1110,8 @@ int main(int argc, char *argv[]) |
|
|
|
{ |
|
|
|
// Update source code header info |
|
|
|
UpdateSourceMetadata(TextFormat("%s/%s/%s.c", exBasePath, exInfo->category, exInfo->name), exInfo); |
|
|
|
|
|
|
|
exInfo->status &= ~VALID_INCONSISTENT_INFO; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
@ -1866,12 +1868,16 @@ static rlExampleInfo *LoadExampleInfo(const char *exFileName) |
|
|
|
|
|
|
|
// Get example create with raylib version |
|
|
|
int verCreateIndex = TextFindIndex(exText, "created with raylib "); // Version = index + 20 |
|
|
|
if (verCreateIndex > 0) strncpy(exInfo->verCreated, exText + verCreateIndex + 20, 3); |
|
|
|
int verCreatedLen = 0; |
|
|
|
for (int i = verCreateIndex + 20; (exText[i] != ' ') && (exText[i] != '\n') && (exText[i] != ','); i++) verCreatedLen++; |
|
|
|
if (verCreateIndex > 0) strncpy(exInfo->verCreated, exText + verCreateIndex + 20, verCreatedLen); |
|
|
|
else strncpy(exInfo->verCreated, RAYLIB_VERSION, 3); // Only pick MAJOR.MINOR |
|
|
|
|
|
|
|
// Get example update with raylib version |
|
|
|
int verUpdateIndex = TextFindIndex(exText, "updated with raylib "); // Version = index + 20 |
|
|
|
if (verUpdateIndex > 0) strncpy(exInfo->verUpdated, exText + verUpdateIndex + 20, 3); |
|
|
|
int verUpdateLen = 0; |
|
|
|
for (int i = verUpdateIndex + 20; (exText[i] != ' ') && (exText[i] != '\n') && (exText[i] != ','); i++) verUpdateLen++; |
|
|
|
if (verUpdateIndex > 0) strncpy(exInfo->verUpdated, exText + verUpdateIndex + 20, verUpdateLen); |
|
|
|
else strncpy(exInfo->verUpdated, RAYLIB_VERSION, 3); // Only pick MAJOR.MINOR |
|
|
|
|
|
|
|
// Get example years created/reviewed and creator and github user |
|
|
@ -2007,8 +2013,7 @@ static char **ScanExampleResources(const char *filePath, int *resPathCount) |
|
|
|
if (code != NULL) |
|
|
|
{ |
|
|
|
// Resources extensions to check |
|
|
|
const char *exts[] = { ".png", ".bmp", ".jpg", ".qoi", ".gif", ".raw", ".hdr", ".ttf", ".fnt", |
|
|
|
".wav", ".ogg", ".mp3", ".flac", ".mod", ".qoa", ".qoa", ".obj", ".iqm", ".glb", ".m3d", ".vox", ".vs", ".fs", ".txt" }; |
|
|
|
const char *exts[] = { ".png", ".bmp", ".jpg", ".qoi", ".gif", ".raw", ".hdr", ".ttf", ".fnt", ".wav", ".ogg", ".mp3", ".flac", ".mod", ".qoa", ".obj", ".iqm", ".glb", ".m3d", ".vox", ".vs", ".fs", ".txt" }; |
|
|
|
const int extCount = sizeof(exts)/sizeof(char *); |
|
|
|
|
|
|
|
char *ptr = code; |
|
|
@ -2021,8 +2026,9 @@ static char **ScanExampleResources(const char *filePath, int *resPathCount) |
|
|
|
// WARNING: Some paths could be for saving files, not loading, those "resource" files must be omitted |
|
|
|
// HACK: Just check previous position from pointer for function name including the string... |
|
|
|
// This is a quick solution, the good one would be getting the data loading function names... |
|
|
|
if ((TextFindIndex(ptr - 40, "ExportImage") == -1) && |
|
|
|
(TextFindIndex(ptr - 10, "TraceLog") == -1)) // Avoid TraceLog() strings processing |
|
|
|
//if ((TextFindIndex(ptr - 40, "ExportImage") == -1) && |
|
|
|
// (TextFindIndex(ptr - 10, "TraceLog") == -1)) // Avoid TraceLog() strings processing |
|
|
|
if (TextFindIndex(ptr - 40, "ExportImage") == -1) |
|
|
|
{ |
|
|
|
int len = (int)(end - start); |
|
|
|
if ((len > 0) && (len < REXM_MAX_RESOURCE_PATH_LEN)) |
|
|
|