Browse Source

Fix inline enum (#2393)

Ethan Conneely 3 năm trước cách đây
mục cha
commit
3d812f8d0c
1 tập tin đã thay đổi với 10 bổ sung10 xóa
  1. 10 10
      parser/raylib_parser.c

+ 10 - 10
parser/raylib_parser.c

@@ -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;
 }