From 29a9368277d508649759cb0119f514a0196a73ce Mon Sep 17 00:00:00 2001 From: paulc Date: Sun, 22 Mar 2009 21:54:13 +0000 Subject: [PATCH] Escape \r and \n too. git-svn-id: http://yate.null.ro/svn/yate/trunk@2533 acf43c95-373e-0410-b603-e72c3f656dc1 --- engine/DataBlock.cpp | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/engine/DataBlock.cpp b/engine/DataBlock.cpp index 491bfd1b..3e4af7c7 100644 --- a/engine/DataBlock.cpp +++ b/engine/DataBlock.cpp @@ -338,16 +338,27 @@ String DataBlock::sqlEscape(char extraEsc) const unsigned int i; for (i = 0; i < m_length; i++) { char c = static_cast(m_data)[i]; - if (c == '\0' || c == '\\' || c == '\'' || c == extraEsc) + if (c == '\0' || c == '\r' || c == '\n' || c == '\\' || c == '\'' || c == extraEsc) len++; } String tmp(' ',len); char* d = const_cast(tmp.c_str()); for (i = 0; i < m_length; i++) { char c = static_cast(m_data)[i]; - if (c == '\0' || c == '\\' || c == '\'' || c == extraEsc) + if (c == '\0' || c == '\r' || c == '\n' || c == '\\' || c == '\'' || c == extraEsc) *d++ = '\\'; - *d++ = c ? c : '0'; + switch (c) { + case '\0': + c = '0'; + break; + case '\r': + c = 'r'; + break; + case '\n': + c = 'n'; + break; + } + *d++ = c; } return tmp; }