Author: turnstep
Date: Sun Jul 12 11:34:58 2009
New Revision: 13042

Modified:
   DBD-Pg/trunk/Changes
   DBD-Pg/trunk/dbdimp.c

Log:
Proposed fix for RT #46372, array backslash quoting.


Modified: DBD-Pg/trunk/Changes
==============================================================================
--- DBD-Pg/trunk/Changes        (original)
+++ DBD-Pg/trunk/Changes        Sun Jul 12 11:34:58 2009
@@ -2,12 +2,14 @@
 
 2.14.0
 
-  - Make foreign_key_info() respect FetchHashKeyName (CPAN bug #46103) [GSM]
+  - Return ints and bools-cast-to-number from the db as true Perlish numbers.
+    (CPAN bug #47619) [GSM]
+  - Fix backslash quoting of arrays (CPAN bug #46732) [GSM]
   - Fix problem with foreign_key_info() and NAME_uc (CPAN bug #46109) [GSM]
+  - Make foreign_key_info() respect FetchHashKeyName (CPAN bug #46103) [GSM]
   - Improve Win32 README notes [Curtis Jewell]
   - Fix spelling error in type_info (CPAN bug #47786) 
[[email protected]]
-  - Return ints and bools-cast-to-number from the db as true Perlish numbers.
-    (CPAN bug #47619) [GSM]
+
 
 2.13.1 Released April 23, 2009 (subversion r12713)
 

Modified: DBD-Pg/trunk/dbdimp.c
==============================================================================
--- DBD-Pg/trunk/dbdimp.c       (original)
+++ DBD-Pg/trunk/dbdimp.c       Sun Jul 12 11:34:58 2009
@@ -2467,10 +2467,14 @@
                                        SvUTF8_on(value);
                                string = SvPV(svitem, svlen);
                                while (svlen--) {
+                                       TRC(DBILOGFP, "%sATTEMPTING (%c)\n", 
THEADER, *string);
+
+                                       /* If an embedded quote, throw a 
backslash before it */
                                        if ('\"' == *string)
                                                sv_catpvn(value, "\\", 1);
+                                       /* If a backslash, double it up */
                                        if ('\\' == *string) {
-                                               sv_catpvn(value, "\\\\", 2);
+                                               sv_catpvn(value, "\\\\\\", 3);
                                        }
                                        sv_catpvn(value, string, 1);
                                        string++;

Reply via email to