From 2f7d369a5c1538ab02be8d824ee074aa0e8f01b7 Mon Sep 17 00:00:00 2001 From: Bruce Momjian Date: Fri, 1 Jul 2005 17:40:29 +0000 Subject: [PATCH] Clarify code to double \\ and '. --- src/bin/initdb/initdb.c | 8 +++----- src/bin/psql/describe.c | 4 ++-- src/bin/psql/large_obj.c | 4 ++-- src/pl/plpgsql/src/gram.y | 4 ++-- 4 files changed, 9 insertions(+), 11 deletions(-) diff --git a/src/bin/initdb/initdb.c b/src/bin/initdb/initdb.c index daafc96476..250b2563a7 100644 --- a/src/bin/initdb/initdb.c +++ b/src/bin/initdb/initdb.c @@ -42,7 +42,7 @@ * Portions Copyright (c) 1994, Regents of the University of California * Portions taken from FreeBSD. * - * $PostgreSQL: pgsql/src/bin/initdb/initdb.c,v 1.88 2005/06/28 15:38:12 tgl Exp $ + * $PostgreSQL: pgsql/src/bin/initdb/initdb.c,v 1.89 2005/07/01 17:40:28 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -1986,10 +1986,8 @@ escape_quotes(const char *src) for (i = 0, j = 0; i < len; i++) { - if (src[i] == '\\') - result[j++] = '\\'; - if (src[i] == '\'') /* ANSI standard, '' */ - result[j++] = '\''; + if (src[i] == '\\' || src[i] == '\'') + result[j++] = src[i]; /* double these */ result[j++] = src[i]; } result[j] = '\0'; diff --git a/src/bin/psql/describe.c b/src/bin/psql/describe.c index b7397515b7..49553268c6 100644 --- a/src/bin/psql/describe.c +++ b/src/bin/psql/describe.c @@ -3,7 +3,7 @@ * * Copyright (c) 2000-2005, PostgreSQL Global Development Group * - * $PostgreSQL: pgsql/src/bin/psql/describe.c,v 1.118 2005/06/26 03:03:56 momjian Exp $ + * $PostgreSQL: pgsql/src/bin/psql/describe.c,v 1.119 2005/07/01 17:40:28 momjian Exp $ */ #include "postgres_fe.h" #include "describe.h" @@ -1899,7 +1899,7 @@ processNamePattern(PQExpBuffer buf, const char *pattern, /* Ensure chars special to string literals are passed properly */ if (*cp == '\'' || *cp == '\\') - appendPQExpBufferChar(&namebuf, *cp); + appendPQExpBufferChar(&namebuf, *cp); /* double these */ i = PQmblen(cp, pset.encoding); while (i--) diff --git a/src/bin/psql/large_obj.c b/src/bin/psql/large_obj.c index 6606e99849..f7f9b2fd25 100644 --- a/src/bin/psql/large_obj.c +++ b/src/bin/psql/large_obj.c @@ -3,7 +3,7 @@ * * Copyright (c) 2000-2005, PostgreSQL Global Development Group * - * $PostgreSQL: pgsql/src/bin/psql/large_obj.c,v 1.37 2005/06/14 02:57:41 momjian Exp $ + * $PostgreSQL: pgsql/src/bin/psql/large_obj.c,v 1.38 2005/07/01 17:40:28 momjian Exp $ */ #include "postgres_fe.h" #include "large_obj.h" @@ -178,7 +178,7 @@ do_lo_import(const char *filename_arg, const char *comment_arg) for (i = 0; i < slen; i++) { if (comment_arg[i] == '\'' || comment_arg[i] == '\\') - *bufptr++ = '\\'; + *bufptr++ = comment_arg[i]; /* double these */ *bufptr++ = comment_arg[i]; } strcpy(bufptr, "'"); diff --git a/src/pl/plpgsql/src/gram.y b/src/pl/plpgsql/src/gram.y index f33d373883..5d3fd8259b 100644 --- a/src/pl/plpgsql/src/gram.y +++ b/src/pl/plpgsql/src/gram.y @@ -4,7 +4,7 @@ * procedural language * * IDENTIFICATION - * $PostgreSQL: pgsql/src/pl/plpgsql/src/gram.y,v 1.77 2005/06/22 01:35:02 neilc Exp $ + * $PostgreSQL: pgsql/src/pl/plpgsql/src/gram.y,v 1.78 2005/07/01 17:40:29 momjian Exp $ * * This software is copyrighted by Jan Wieck - Hamburg. * @@ -387,7 +387,7 @@ decl_statement : decl_varname decl_const decl_datatype decl_notnull decl_defval while (*cp1 != '\0') { if (*cp1 == '\\' || *cp1 == '\'') - *cp2++ = '\\'; + *cp2++ = *cp1; /* double these */ *cp2++ = *cp1++; } strcpy(cp2, "'::refcursor");