diff --git a/test/test-automation/xml.c b/test/test-automation/xml.c index 699f43cb6..4aeee3b29 100644 --- a/test/test-automation/xml.c +++ b/test/test-automation/xml.c @@ -148,9 +148,9 @@ EscapeString(const char *string) break; case '\'': totalSize += 6; //SDL_strlen("'"); break; - case '"': totalSize += 6; //SDL_strlen("""); + case '"': totalSize += 6; //SDL_strlen("""); break; - case '<': totalSize += 4; //SDL_strlen("<"); + case '<': totalSize += 4; //SDL_strlen("<"); break; case '>': totalSize += 4; //SDL_strlen(">"); break; @@ -167,53 +167,41 @@ EscapeString(const char *string) } // escape the string - int retBufferCounter = 0; - for(counter = 0; counter < maxCount; ++counter) { - char character = string[counter]; + char *curRetBuffer = retBuffer; + char *curString = string; + + char character = *curString; + while( (character = *curString++) ) { + switch(character) { case '&': - retBuffer[retBufferCounter++] = '&'; - retBuffer[retBufferCounter++] = 'a'; - retBuffer[retBufferCounter++] = 'm'; - retBuffer[retBufferCounter++] = 'p'; - retBuffer[retBufferCounter++] = ';'; + memcpy((void *)curRetBuffer, (void *)"&", 5); + curRetBuffer += 5; break; case '\'': - retBuffer[retBufferCounter++] = '&'; - retBuffer[retBufferCounter++] = 'a'; - retBuffer[retBufferCounter++] = 'p'; - retBuffer[retBufferCounter++] = 'o'; - retBuffer[retBufferCounter++] = 's'; - retBuffer[retBufferCounter++] = ';'; + memcpy((void *)curRetBuffer, (void *)"'", 6); + curRetBuffer += 6; break; case '"': - retBuffer[retBufferCounter++] = '&'; - retBuffer[retBufferCounter++] = 'q'; - retBuffer[retBufferCounter++] = 'u'; - retBuffer[retBufferCounter++] = 'o'; - retBuffer[retBufferCounter++] = 't'; - retBuffer[retBufferCounter++] = ';'; + memcpy((void *)curRetBuffer, (void *)""", 6); + curRetBuffer += 6; break; case '<': - retBuffer[retBufferCounter++] = '&'; - retBuffer[retBufferCounter++] = 'l'; - retBuffer[retBufferCounter++] = 't'; - retBuffer[retBufferCounter++] = ';'; + memcpy((void *)curRetBuffer, (void *)"<", 4); + curRetBuffer += 4; break; - case '>': totalSize += SDL_strlen(">"); - retBuffer[retBufferCounter++] = '&'; - retBuffer[retBufferCounter++] = 'g'; - retBuffer[retBufferCounter++] = 't'; - retBuffer[retBufferCounter++] = ';'; + case '>': + memcpy((void *)curRetBuffer, (void *)">", 4); + curRetBuffer += 4; break; default: - retBuffer[retBufferCounter++] = character; + *curRetBuffer = character; + curRetBuffer += 1; break; } - } - retBuffer[retBufferCounter] = '\0'; + *curRetBuffer = '\0'; return retBuffer; }