Use stringinfo for escaping/unescaping

pull/6753/head
Gokhan Gulbiz 2023-03-21 09:58:31 +03:00
parent 26226d0eb4
commit 16c75165cf
No known key found for this signature in database
GPG Key ID: 608EF06B6BD1B45B
1 changed files with 10 additions and 13 deletions

View File

@ -25,6 +25,7 @@
#include "utils/json.h"
#include "distributed/utils/attribute.h"
#include "common/base64.h"
#include "miscadmin.h"
#include <time.h>
@ -687,31 +688,28 @@ static char *
EscapeCommentChars(const char *str)
{
int originalStringLength = strlen(str);
char *escapedString = (char *) palloc0((originalStringLength * 2 + 1) * sizeof(char));
int escapedStringIndex = 0;
StringInfo escapedString = makeStringInfo();
for (int originalStringIndex = 0; originalStringIndex < originalStringLength;
originalStringIndex++)
{
if (str[originalStringIndex] == '*' || str[originalStringIndex] == '/')
{
escapedString[escapedStringIndex++] = '\\';
appendStringInfoChar(escapedString, '\\');
}
escapedString[escapedStringIndex++] = str[originalStringIndex];
}
escapedString[escapedStringIndex] = '\0';
return escapedString;
appendStringInfoChar(escapedString, str[originalStringIndex]);
}
return escapedString->data;
}
/* UnescapeCommentChars removes the backslash that precedes '*' or '/' in the input string. */
static char *
UnescapeCommentChars(const char *str)
{
int originalStringLength = strlen(str);
char *unescapedString = (char *) palloc0((originalStringLength + 1) * sizeof(char));
int unescapedStringIndex = 0;
StringInfo unescapedString = makeStringInfo();
for (int originalStringindex = 0; originalStringindex < originalStringLength;
originalStringindex++)
@ -723,9 +721,8 @@ UnescapeCommentChars(const char *str)
{
originalStringindex++;
}
unescapedString[unescapedStringIndex++] = str[originalStringindex];
appendStringInfoChar(unescapedString, str[originalStringindex]);
}
unescapedString[unescapedStringIndex] = '\0';
return unescapedString;
return unescapedString->data;
}