diff options
author | Jeremy Dorn <jeremy@jeremydorn.com> | 2013-02-21 21:16:19 -0800 |
---|---|---|
committer | Jeremy Dorn <jeremy@jeremydorn.com> | 2013-02-21 21:16:19 -0800 |
commit | 3d8a97325e5894c72dd5c4d4f83dd3722d414d99 (patch) | |
tree | cabb9503b3c3cff257ba73f9bcf48c3ab45c5e1e | |
parent | 7a92826fe2734518e9cd6ebcf1ba052e58351c34 (diff) | |
download | sql-formatter-3d8a97325e5894c72dd5c4d4f83dd3722d414d99.zip sql-formatter-3d8a97325e5894c72dd5c4d4f83dd3722d414d99.tar.gz sql-formatter-3d8a97325e5894c72dd5c4d4f83dd3722d414d99.tar.bz2 |
Fixing bug with parsing long strings. PCRE was seg faulting. Fixes #25
-rw-r--r-- | lib/SqlFormatter.php | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/lib/SqlFormatter.php b/lib/SqlFormatter.php index a2d7399..44e6143 100644 --- a/lib/SqlFormatter.php +++ b/lib/SqlFormatter.php @@ -172,7 +172,7 @@ class SqlFormatter // 1. backtick quoted string using `` to escape // 2. double quoted string using "" or \" to escape // 3. single quoted string using '' or \' to escape - if( preg_match('/^((`(?:[^`]|``)*($|`))|("((?:[^"\\\\]|"")|(?:[^"\\\\]|\\\\.))*($|"))|(\'((?:[^\'\\\\]|\'\')|(?:[^\'\\\\]|\\\\.))*($|\')))/', $string, $matches)) { + if( preg_match('/^(((`[^`]*($|`))+)|(("[^"\\\\]*(?:\\\\.[^"\\\\]*)*("|$))+)|((\'[^\'\\\\]*(?:\\\\.[^\'\\\\]*)*(\'|$))+))/s', $string, $matches)) { if($string[0]==='`') { return array( self::TOKEN_VALUE=>$matches[1], |