From 550dd0e3a86a0261f3cc7dd0bf59d1b8d03ea138 Mon Sep 17 00:00:00 2001
From: Nomobyte <137911397+Nomobyte@users.noreply.github.com>
Date: Fri, 4 Sep 2026 20:32:03 +0000
Subject: [PATCH] [rlparser] Fix type aliases (typedefs): added support to type
pointers (#6126)
Fix issue #6122
---
tools/rlparser/output/raylib_api.json | 4 ++--
tools/rlparser/output/raylib_api.lua | 4 ++--
tools/rlparser/output/raylib_api.sexpr | 4 ++--
tools/rlparser/output/raylib_api.txt | 6 +++---
tools/rlparser/output/raylib_api.xml | 2 +-
tools/rlparser/rlparser.c | 15 +++++++++++----
6 files changed, 21 insertions(+), 14 deletions(-)
diff --git a/tools/rlparser/output/raylib_api.json b/tools/rlparser/output/raylib_api.json
index 710c21ab8..f6c6d7a84 100644
--- a/tools/rlparser/output/raylib_api.json
+++ b/tools/rlparser/output/raylib_api.json
@@ -1411,8 +1411,8 @@
"description": "Camera type fallback, defaults to Camera3D"
},
{
- "type": "Transform",
- "name": "*ModelAnimPose",
+ "type": "Transform *",
+ "name": "ModelAnimPose",
"description": "Anim pose, an array of Transform[]"
}
],
diff --git a/tools/rlparser/output/raylib_api.lua b/tools/rlparser/output/raylib_api.lua
index 96f90b0cc..ec659f828 100644
--- a/tools/rlparser/output/raylib_api.lua
+++ b/tools/rlparser/output/raylib_api.lua
@@ -1411,8 +1411,8 @@ return {
description = "Camera type fallback, defaults to Camera3D"
},
{
- type = "Transform",
- name = "*ModelAnimPose",
+ type = "Transform *",
+ name = "ModelAnimPose",
description = "Anim pose, an array of Transform[]"
}
},
diff --git a/tools/rlparser/output/raylib_api.sexpr b/tools/rlparser/output/raylib_api.sexpr
index 23d1da747..29e7dfb61 100644
--- a/tools/rlparser/output/raylib_api.sexpr
+++ b/tools/rlparser/output/raylib_api.sexpr
@@ -887,8 +887,8 @@
(name "Camera")
(description "Camera type fallback, defaults to Camera3D"))
- ((type "Transform")
- (name "*ModelAnimPose")
+ ((type "Transform *")
+ (name "ModelAnimPose")
(description "Anim pose, an array of Transform[]")))
(enums
diff --git a/tools/rlparser/output/raylib_api.txt b/tools/rlparser/output/raylib_api.txt
index 008e8b616..0890ce753 100644
--- a/tools/rlparser/output/raylib_api.txt
+++ b/tools/rlparser/output/raylib_api.txt
@@ -579,9 +579,9 @@ Alias 005: Camera
Type: Camera3D
Name: Camera
Description: Camera type fallback, defaults to Camera3D
-Alias 006: *ModelAnimPose
- Type: Transform
- Name: *ModelAnimPose
+Alias 006: ModelAnimPose
+ Type: Transform *
+ Name: ModelAnimPose
Description: Anim pose, an array of Transform[]
Enums found: 21
diff --git a/tools/rlparser/output/raylib_api.xml b/tools/rlparser/output/raylib_api.xml
index 4d9279ddd..453383747 100644
--- a/tools/rlparser/output/raylib_api.xml
+++ b/tools/rlparser/output/raylib_api.xml
@@ -303,7 +303,7 @@
-
+
diff --git a/tools/rlparser/rlparser.c b/tools/rlparser/rlparser.c
index a51b00b99..a32fdc958 100644
--- a/tools/rlparser/rlparser.c
+++ b/tools/rlparser/rlparser.c
@@ -774,14 +774,21 @@ int main(int argc, char *argv[])
// Skip "typedef "
int c = 8;
- // Type
+ // Type word part
int typeStart = c;
while(linePtr[c] != ' ') c++;
int typeLen = c - typeStart;
- MemoryCopy(aliases[i].type, &linePtr[typeStart], typeLen);
-
+
// Skip space
- c++;
+ c++;
+
+ // Maybe type pointer part
+ if (linePtr[c] == '*') {
+ while(linePtr[c] == '*') c++;
+ typeLen = c - typeStart;
+ }
+
+ MemoryCopy(aliases[i].type, &linePtr[typeStart], typeLen);
// Name
int nameStart = c;