rtext: added functions for camel case and snake case (reopened due to formatting errors) (#4033)
* rtext: added functions for camel case and snake case * Update raylib_api.* by CI * rtext: removed always false comparison --------- Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
This commit is contained in:
parent
06f8c4f733
commit
39f12859dc
6 changed files with 265 additions and 143 deletions
|
@ -9479,6 +9479,28 @@
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"name": "TextToSnake",
|
||||||
|
"description": "Get Snake case notation version of provided string",
|
||||||
|
"returnType": "const char *",
|
||||||
|
"params": [
|
||||||
|
{
|
||||||
|
"type": "const char *",
|
||||||
|
"name": "text"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "TextToCamel",
|
||||||
|
"description": "Get Camel case notation version of provided string",
|
||||||
|
"returnType": "const char *",
|
||||||
|
"params": [
|
||||||
|
{
|
||||||
|
"type": "const char *",
|
||||||
|
"name": "text"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"name": "TextToInteger",
|
"name": "TextToInteger",
|
||||||
"description": "Get integer value from text (negative values not supported)",
|
"description": "Get integer value from text (negative values not supported)",
|
||||||
|
|
|
@ -6776,6 +6776,22 @@ return {
|
||||||
{type = "const char *", name = "text"}
|
{type = "const char *", name = "text"}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
name = "TextToSnake",
|
||||||
|
description = "Get Snake case notation version of provided string",
|
||||||
|
returnType = "const char *",
|
||||||
|
params = {
|
||||||
|
{type = "const char *", name = "text"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name = "TextToCamel",
|
||||||
|
description = "Get Camel case notation version of provided string",
|
||||||
|
returnType = "const char *",
|
||||||
|
params = {
|
||||||
|
{type = "const char *", name = "text"}
|
||||||
|
}
|
||||||
|
},
|
||||||
{
|
{
|
||||||
name = "TextToInteger",
|
name = "TextToInteger",
|
||||||
description = "Get integer value from text (negative values not supported)",
|
description = "Get integer value from text (negative values not supported)",
|
||||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -670,7 +670,7 @@
|
||||||
<Param type="unsigned int" name="frames" desc="" />
|
<Param type="unsigned int" name="frames" desc="" />
|
||||||
</Callback>
|
</Callback>
|
||||||
</Callbacks>
|
</Callbacks>
|
||||||
<Functions count="564">
|
<Functions count="566">
|
||||||
<Function name="InitWindow" retType="void" paramCount="3" desc="Initialize window and OpenGL context">
|
<Function name="InitWindow" retType="void" paramCount="3" desc="Initialize window and OpenGL context">
|
||||||
<Param type="int" name="width" desc="" />
|
<Param type="int" name="width" desc="" />
|
||||||
<Param type="int" name="height" desc="" />
|
<Param type="int" name="height" desc="" />
|
||||||
|
@ -2405,6 +2405,12 @@
|
||||||
<Function name="TextToPascal" retType="const char *" paramCount="1" desc="Get Pascal case notation version of provided string">
|
<Function name="TextToPascal" retType="const char *" paramCount="1" desc="Get Pascal case notation version of provided string">
|
||||||
<Param type="const char *" name="text" desc="" />
|
<Param type="const char *" name="text" desc="" />
|
||||||
</Function>
|
</Function>
|
||||||
|
<Function name="TextToSnake" retType="const char *" paramCount="1" desc="Get Snake case notation version of provided string">
|
||||||
|
<Param type="const char *" name="text" desc="" />
|
||||||
|
</Function>
|
||||||
|
<Function name="TextToCamel" retType="const char *" paramCount="1" desc="Get Camel case notation version of provided string">
|
||||||
|
<Param type="const char *" name="text" desc="" />
|
||||||
|
</Function>
|
||||||
<Function name="TextToInteger" retType="int" paramCount="1" desc="Get integer value from text (negative values not supported)">
|
<Function name="TextToInteger" retType="int" paramCount="1" desc="Get integer value from text (negative values not supported)">
|
||||||
<Param type="const char *" name="text" desc="" />
|
<Param type="const char *" name="text" desc="" />
|
||||||
</Function>
|
</Function>
|
||||||
|
|
|
@ -1489,6 +1489,9 @@ RLAPI int TextFindIndex(const char *text, const char *find);
|
||||||
RLAPI const char *TextToUpper(const char *text); // Get upper case version of provided string
|
RLAPI const char *TextToUpper(const char *text); // Get upper case version of provided string
|
||||||
RLAPI const char *TextToLower(const char *text); // Get lower case version of provided string
|
RLAPI const char *TextToLower(const char *text); // Get lower case version of provided string
|
||||||
RLAPI const char *TextToPascal(const char *text); // Get Pascal case notation version of provided string
|
RLAPI const char *TextToPascal(const char *text); // Get Pascal case notation version of provided string
|
||||||
|
RLAPI const char *TextToSnake(const char *text); // Get Snake case notation version of provided string
|
||||||
|
RLAPI const char *TextToCamel(const char *text); // Get Camel case notation version of provided string
|
||||||
|
|
||||||
RLAPI int TextToInteger(const char *text); // Get integer value from text (negative values not supported)
|
RLAPI int TextToInteger(const char *text); // Get integer value from text (negative values not supported)
|
||||||
RLAPI float TextToFloat(const char *text); // Get float value from text (negative values not supported)
|
RLAPI float TextToFloat(const char *text); // Get float value from text (negative values not supported)
|
||||||
|
|
||||||
|
|
65
src/rtext.c
65
src/rtext.c
|
@ -1786,6 +1786,71 @@ const char *TextToPascal(const char *text)
|
||||||
return buffer;
|
return buffer;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Get snake case notation version of provided string
|
||||||
|
// WARNING: Limited functionality, only basic characters set
|
||||||
|
const char *TextToSnake(const char *text)
|
||||||
|
{
|
||||||
|
static char buffer[MAX_TEXT_BUFFER_LENGTH] = {0};
|
||||||
|
memset(buffer, 0, MAX_TEXT_BUFFER_LENGTH);
|
||||||
|
|
||||||
|
if (text != NULL)
|
||||||
|
{
|
||||||
|
// Check for next separator to upper case another character
|
||||||
|
for (int i = 0, j = 0; (i < MAX_TEXT_BUFFER_LENGTH - 1) && (text[j] != '\0'); i++, j++)
|
||||||
|
{
|
||||||
|
if ((text[j] >= 'A') && (text[j] <= 'Z'))
|
||||||
|
{
|
||||||
|
if (i >= 1)
|
||||||
|
{
|
||||||
|
buffer[i] = '_';
|
||||||
|
i++;
|
||||||
|
}
|
||||||
|
buffer[i] = text[j] + 32;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
buffer[i] = text[j];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return buffer;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Get Camel case notation version of provided string
|
||||||
|
// WARNING: Limited functionality, only basic characters set
|
||||||
|
const char *TextToCamel(const char *text)
|
||||||
|
{
|
||||||
|
static char buffer[MAX_TEXT_BUFFER_LENGTH] = {0};
|
||||||
|
memset(buffer, 0, MAX_TEXT_BUFFER_LENGTH);
|
||||||
|
|
||||||
|
if (text != NULL)
|
||||||
|
{
|
||||||
|
// Lower case first character
|
||||||
|
if ((text[0] >= 'A') && (text[0] <= 'Z'))
|
||||||
|
buffer[0] = text[0] + 32;
|
||||||
|
else
|
||||||
|
buffer[0] = text[0];
|
||||||
|
|
||||||
|
// Check for next separator to upper case another character
|
||||||
|
for (int i = 1, j = 1; (i < MAX_TEXT_BUFFER_LENGTH - 1) && (text[j] != '\0'); i++, j++)
|
||||||
|
{
|
||||||
|
if (text[j] != '_')
|
||||||
|
buffer[i] = text[j];
|
||||||
|
else
|
||||||
|
{
|
||||||
|
j++;
|
||||||
|
if ((text[j] >= 'a') && (text[j] <= 'z'))
|
||||||
|
{
|
||||||
|
buffer[i] = text[j] - 32;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return buffer;
|
||||||
|
}
|
||||||
|
|
||||||
// Encode text codepoint into UTF-8 text
|
// Encode text codepoint into UTF-8 text
|
||||||
// REQUIRES: memcpy()
|
// REQUIRES: memcpy()
|
||||||
// WARNING: Allocated memory must be manually freed
|
// WARNING: Allocated memory must be manually freed
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue