Browse Source

REVIEWED: EscapeBackslashes() in raylib-parser

pull/2217/head
Ray 3 years ago
parent
commit
55d310fcc3
1 changed files with 18 additions and 10 deletions
  1. +18
    -10
      parser/raylib_parser.c

+ 18
- 10
parser/raylib_parser.c View File

@ -139,7 +139,7 @@ static void GetDataTypeAndName(const char *typeName, int typeNameLen, char *type
static unsigned int TextLength(const char *text); // Get text length in bytes, check for \0 character static unsigned int TextLength(const char *text); // Get text length in bytes, check for \0 character
static bool IsTextEqual(const char *text1, const char *text2, unsigned int count); static bool IsTextEqual(const char *text1, const char *text2, unsigned int count);
static void MemoryCopy(void *dest, const void *src, unsigned int count); static void MemoryCopy(void *dest, const void *src, unsigned int count);
static char* EscapeBackslashes(char *text);
static char *EscapeBackslashes(char *text); // Replace '\' by "\\" when exporting to JSON and XML
static void ExportParsedData(const char *fileName, int format); // Export parsed data in desired format static void ExportParsedData(const char *fileName, int format); // Export parsed data in desired format
@ -765,18 +765,26 @@ static bool IsTextEqual(const char *text1, const char *text2, unsigned int count
} }
// Escape backslashes in a string, writing the escaped string into a static buffer // Escape backslashes in a string, writing the escaped string into a static buffer
static char* EscapeBackslashes(char *text)
static char *EscapeBackslashes(char *text)
{ {
static char buf[256];
char *a = text;
char *b = buf;
do
static char buffer[256] = { 0 };
int count = 0;
for (int i = 0; (text[i] != '\0') && (i < 255); i++, count++)
{ {
if (*a == '\\') *b++ = '\\';
*b++ = *a;
buffer[count] = text[i];
if (text[i] == '\\')
{
buffer[count + 1] = '\\';
count++;
}
} }
while (*a++);
return buf;
buffer[count] = '\0';
return buffer;
} }
/* /*

Loading…
Cancel
Save