Joe Conway <mail(at)joeconway(dot)com> writes:
> OK, got it. I think the attached is what you're looking for, although I
> have not yet tested beyond "it compiles" and "it passes make installcheck".
You're making it vastly overcomplicated. Just do something like
for (cp = str; *cp; cp++)
{
if (*cp == '\\' || *cp == '\'')
AppendStringInfoChar(buf, '\\');
AppendStringInfoChar(buf, *cp);
}
Since you're working in a server-safe encoding, there is no need to
worry about multibyte characters --- the tests will never match
any byte of a multibyte char.
regards, tom lane