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
@ -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",
|
||||
"description": "Get integer value from text (negative values not supported)",
|
||||
|
@ -6776,6 +6776,22 @@ return {
|
||||
{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",
|
||||
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="" />
|
||||
</Callback>
|
||||
</Callbacks>
|
||||
<Functions count="564">
|
||||
<Functions count="566">
|
||||
<Function name="InitWindow" retType="void" paramCount="3" desc="Initialize window and OpenGL context">
|
||||
<Param type="int" name="width" 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">
|
||||
<Param type="const char *" name="text" desc="" />
|
||||
</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)">
|
||||
<Param type="const char *" name="text" desc="" />
|
||||
</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 *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 *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 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;
|
||||
}
|
||||
|
||||
// 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
|
||||
// REQUIRES: memcpy()
|
||||
// WARNING: Allocated memory must be manually freed
|
||||
|
Loading…
Reference in New Issue
Block a user