diff --git a/parser/output/raylib_api.xml b/parser/output/raylib_api.xml index d4dddbcdf..df53cb0e8 100644 --- a/parser/output/raylib_api.xml +++ b/parser/output/raylib_api.xml @@ -2988,7 +2988,7 @@ - + @@ -2996,7 +2996,7 @@ - + diff --git a/parser/raylib_parser.c b/parser/raylib_parser.c index 9b8fd8b13..435b5c008 100644 --- a/parser/raylib_parser.c +++ b/parser/raylib_parser.c @@ -1464,6 +1464,20 @@ static char *TextReplace(char *text, const char *replace, const char *by) } */ +static void PrintXMLEscaped(FILE *outFile, const char *string) +{ + for (int i = 0; string[i] != '\0'; ++i) + { + switch (string[i]) + { + case '<': fputs("<", outFile); break; + case '>': fputs(">", outFile); break; + case '&': fputs("&", outFile); break; + default: fputc(string[i], outFile); break; + } + } +} + // Export parsed data in desired format static void ExportParsedData(const char *fileName, int format) { @@ -1761,7 +1775,9 @@ static void ExportParsedData(const char *fileName, int format) { fprintf(outFile, "value=\"%s\"", defines[i].value); } - fprintf(outFile, " desc=\"%s\" />\n", defines[i].desc); + fprintf(outFile, " desc=\""); + PrintXMLEscaped(outFile, defines[i].desc); + fprintf(outFile, "\" />\n"); } fprintf(outFile, " \n"); @@ -1769,10 +1785,14 @@ static void ExportParsedData(const char *fileName, int format) fprintf(outFile, " \n", structCount); for (int i = 0; i < structCount; i++) { - fprintf(outFile, " \n", structs[i].name, structs[i].fieldCount, structs[i].desc); + fprintf(outFile, " \n"); for (int f = 0; f < structs[i].fieldCount; f++) { - fprintf(outFile, " \n", structs[i].fieldType[f], structs[i].fieldName[f], structs[i].fieldDesc[f]); + fprintf(outFile, " \n"); } fprintf(outFile, " \n"); } @@ -1782,7 +1802,9 @@ static void ExportParsedData(const char *fileName, int format) fprintf(outFile, " \n", aliasCount); for (int i = 0; i < aliasCount; i++) { - fprintf(outFile, " \n", aliases[i].name, aliases[i].type, aliases[i].desc); + fprintf(outFile, " \n"); } fprintf(outFile, " \n"); @@ -1790,10 +1812,14 @@ static void ExportParsedData(const char *fileName, int format) fprintf(outFile, " \n", enumCount); for (int i = 0; i < enumCount; i++) { - fprintf(outFile, " \n", enums[i].name, enums[i].valueCount, enums[i].desc); + fprintf(outFile, " \n"); for (int v = 0; v < enums[i].valueCount; v++) { - fprintf(outFile, " \n", enums[i].valueName[v], enums[i].valueInteger[v], enums[i].valueDesc[v]); + fprintf(outFile, " \n"); } fprintf(outFile, " \n"); } @@ -1803,10 +1829,14 @@ static void ExportParsedData(const char *fileName, int format) fprintf(outFile, " \n", callbackCount); for (int i = 0; i < callbackCount; i++) { - fprintf(outFile, " \n", callbacks[i].name, callbacks[i].retType, callbacks[i].paramCount, callbacks[i].desc); + fprintf(outFile, " \n"); for (int p = 0; p < callbacks[i].paramCount; p++) { - fprintf(outFile, " \n", callbacks[i].paramType[p], callbacks[i].paramName[p], callbacks[i].paramDesc[p]); + fprintf(outFile, " \n"); } fprintf(outFile, " \n"); } @@ -1816,10 +1846,14 @@ static void ExportParsedData(const char *fileName, int format) fprintf(outFile, " \n", funcCount); for (int i = 0; i < funcCount; i++) { - fprintf(outFile, " \n", funcs[i].name, funcs[i].retType, funcs[i].paramCount, funcs[i].desc); + fprintf(outFile, " \n"); for (int p = 0; p < funcs[i].paramCount; p++) { - fprintf(outFile, " \n", funcs[i].paramType[p], funcs[i].paramName[p], funcs[i].paramDesc[p]); + fprintf(outFile, " \n"); } fprintf(outFile, " \n"); }