Procházet zdrojové kódy

Fix inline enum (#2393)

pull/2398/head
Ethan Conneely před 2 roky
odevzdal GitHub
rodič
revize
3d812f8d0c
V databázi nebyl nalezen žádný známý klíč pro tento podpis ID GPG klíče: 4AEE18F83AFDEB23
1 změnil soubory, kde provedl 10 přidání a 10 odebrání
  1. +10
    -10
      parser/raylib_parser.c

+ 10
- 10
parser/raylib_parser.c Zobrazit soubor

@ -241,7 +241,7 @@ int main(int argc, char* argv[])
for (int i = 0; i < linesCount; i++)
{
// Read enum line
if (IsTextEqual(lines[i], "typedef enum {", 14))
if (IsTextEqual(lines[i], "typedef enum {", 14) && lines[i][TextLength(lines[i])-1] != ';') // ignore inline enums
{
// Keep the line position in the array of lines,
// so, we can scan that position and following lines
@ -401,17 +401,17 @@ int main(int argc, char* argv[])
{
if (linePtr[c + 1] == ' ') c += 2;
else c++;
// Parse integer value
int n = 0;
char integer[16] = { 0 };
while ((linePtr[c] != ',') && (linePtr[c] != ' ') && (linePtr[c] != '\0'))
{
integer[n] = linePtr[c];
c++; n++;
}
if (integer[1] == 'x') enums[i].valueInteger[enums[i].valueCount] = (int)strtol(integer, NULL, 16);
else enums[i].valueInteger[enums[i].valueCount] = atoi(integer);
}
@ -869,22 +869,22 @@ static bool IsTextEqual(const char *text1, const char *text2, unsigned int count
static char *EscapeBackslashes(char *text)
{
static char buffer[256] = { 0 };
int count = 0;
for (int i = 0; (text[i] != '\0') && (i < 255); i++, count++)
{
buffer[count] = text[i];
if (text[i] == '\\')
if (text[i] == '\\')
{
buffer[count + 1] = '\\';
count++;
}
}
buffer[count] = '\0';
return buffer;
}

Načítá se…
Zrušit
Uložit