From d029d3a9f939f2691e3091a93fa4561dab13f15a Mon Sep 17 00:00:00 2001 From: Erik Lundin Date: Mon, 29 Dec 2014 17:24:53 +0100 Subject: Don't trim escaped quotes --- util/po2php.php | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) (limited to 'util/po2php.php') diff --git a/util/po2php.php b/util/po2php.php index d3e6d190c..cf295d8cb 100644 --- a/util/po2php.php +++ b/util/po2php.php @@ -73,7 +73,7 @@ function po2php_run($argv, $argc) { } $match=Array(); preg_match("|\[([0-9]*)\] (.*)|", $l, $match); - $out .= "\t". + $out .= "\t". preg_replace_callback($escape_s_exp,'escape_s',$match[1]) ." => " .preg_replace_callback($escape_s_exp,'escape_s',$match[2]) .",\n"; @@ -83,7 +83,7 @@ function po2php_run($argv, $argc) { if ($ink) { - $k .= trim($l,"\"\r\n"); + $k .= trim_message($l); $k = preg_replace_callback($escape_s_exp,'escape_s',$k); //$out .= '$a->strings['.$k.'] = '; } @@ -93,7 +93,7 @@ function po2php_run($argv, $argc) { if ($k!="") $out .= $arr?");\n":";\n"; $arr=False; $k = str_replace("msgid ","",$l); - $k = trim($k,"\"\r\n"); + $k = trim_message($k); $k = $ctx.$k; // echo $ctx ? $ctx."\nX\n":""; $k = preg_replace_callback($escape_s_exp,'escape_s',$k); @@ -102,14 +102,14 @@ function po2php_run($argv, $argc) { } if ($inv && substr($l,0,6)!="msgstr" && substr($l,0,7)!="msgctxt") { - $v .= trim($l,"\"\r\n"); + $v .= trim_message($l); $v = preg_replace_callback($escape_s_exp,'escape_s',$v); //$out .= '$a->strings['.$k.'] = '; } if (substr($l,0,7)=="msgctxt") { $ctx = str_replace("msgctxt ","",$l); - $ctx = trim($ctx,"\"\r\n"); + $ctx = trim_message($ctx); $ctx = "__ctx:".$ctx."__ "; $ctx = preg_replace_callback($escape_s_exp,'escape_s',$ctx); } @@ -123,6 +123,14 @@ function po2php_run($argv, $argc) { } +function trim_message($str) { + // Almost same as trim("\"\r\n") except that escaped quotes are preserved + $str = trim($str, "\r\n"); + $str = ltrim($str, "\""); + $str = preg_replace('/(?