Browse Source

REXM: Reviewed `UpdateSourceMetadata()`

pull/5174/head
Ray 1 month ago
parent
commit
4020885c35
1 changed files with 14 additions and 13 deletions
  1. +14
    -13
      tools/rexm/rexm.c

+ 14
- 13
tools/rexm/rexm.c View File

@ -2305,7 +2305,7 @@ static void UpdateSourceMetadata(const char *exSrcPath, const rlExampleInfo *inf
char *exText = LoadFileText(exSourcePath);
char *exTextUpdated[6] = { 0 }; // Pointers to multiple updated text versions
char *exTextUpdatedPtr = b">NULL;
char *exTextUpdatedPtr = ">exText; // Pointer to current valid text version
char exNameFormated[256] = { 0 }; // Example name without category and using spaces
int exNameIndex = TextFindIndex(info->name, "_");
@ -2315,8 +2315,9 @@ static void UpdateSourceMetadata(const char *exSrcPath, const rlExampleInfo *inf
// Update example header title (line #3 - ALWAYS)
// String: "* raylib [shaders] example - texture drawing"
exTextUpdated[0] = TextReplaceBetween(exText,
exTextUpdated[0] = TextReplaceBetween(exTextUpdatedPtr,
TextFormat("%s] example - %s", info->category, exNameFormated), "* raylib [", "\n");
if (exTextUpdated[0] != NULL) exTextUpdatedPtr = exTextUpdated[0];
// Update example complexity rating
// String: "* Example complexity rating: [★★☆☆] 2/4"
@ -2328,45 +2329,45 @@ static void UpdateSourceMetadata(const char *exSrcPath, const rlExampleInfo *inf
if (i < info->stars) strcpy(starsText + 3*i, "");
else strcpy(starsText + 3*i, "");
}
exTextUpdated[1] = TextReplaceBetween(exTextUpdated[0],
exTextUpdated[1] = TextReplaceBetween(exTextUpdatedPtr,
TextFormat("%s] %i", starsText, info->stars), "* Example complexity rating: [", "/4\n");
if (exTextUpdated[1] != NULL) exTextUpdatedPtr = exTextUpdated[1];
// Update example creation/update raylib versions
// String: "* Example originally created with raylib 2.0, last time updated with raylib 3.7
exTextUpdated[2] = TextReplaceBetween(exTextUpdated[1],
exTextUpdated[2] = TextReplaceBetween(exTextUpdatedPtr,
TextFormat("%s, last time updated with raylib %s", info->verCreated, info->verUpdated), "* Example originally created with raylib ", "\n");
if (exTextUpdated[2] != NULL) exTextUpdatedPtr = exTextUpdated[2];
// Update copyright message
// String: "* Copyright (c) 2019-2025 Contributor Name (@github_user) and Ramon Santamaria (@raysan5)"
if (info->yearCreated == info->yearReviewed)
{
exTextUpdated[3] = TextReplaceBetween(exTextUpdated[2],
exTextUpdated[3] = TextReplaceBetween(exTextUpdatedPtr,
TextFormat("%i %s (@%s", info->yearCreated, info->author, info->authorGitHub), "Copyright (c) ", ")");
if (exTextUpdated[3] != NULL) exTextUpdatedPtr = exTextUpdated[3];
}
else
{
exTextUpdated[3] = TextReplaceBetween(exTextUpdated[2],
exTextUpdated[3] = TextReplaceBetween(exTextUpdatedPtr,
TextFormat("%i-%i %s (@%s", info->yearCreated, info->yearReviewed, info->author, info->authorGitHub), "Copyright (c) ", ")");
if (exTextUpdated[3] != NULL) exTextUpdatedPtr = exTextUpdated[3];
}
// Update window title
// String: "InitWindow(screenWidth, screenHeight, "raylib [shaders] example - texture drawing");"
exTextUpdated[4] = TextReplaceBetween(exTextUpdated[3],
TextFormat("raylib [%s] example - %s", info->category, exNameFormated), "InitWindow(screenWidth, screenHeight, \"", "\");");
if (exTextUpdated[4] != NULL) exTextUpdatedPtr = exTextUpdated[4];
// Update contributors names
// String: "* Example contributed by Contributor Name (@github_user) and reviewed by Ramon Santamaria (@raysan5)"
// WARNING: Not all examples are contributed by someone, so the result of this replace can be NULL (string not found)
if (exTextUpdated[4] != NULL)
{
exTextUpdated[5] = TextReplaceBetween(exTextUpdated[4],
exTextUpdated[5] = TextReplaceBetween(exTextUpdatedPtr,
TextFormat("%s (@%s", info->author, info->authorGitHub), "* Example contributed by ", ")");
}
else exTextUpdatedPtr = exTextUpdated[3];
if (exTextUpdated[5] != NULL) exTextUpdatedPtr = exTextUpdated[5];
SaveFileText(exSourcePath, exTextUpdatedPtr);
if (exTextUpdatedPtr != NULL) SaveFileText(exSourcePath, exTextUpdatedPtr);
for (int i = 0; i < 6; i++) { MemFree(exTextUpdated[i]); exTextUpdated[i] = NULL; }

Loading…
Cancel
Save