From: Vsevolod Stakhov Date: Wed, 16 Dec 2015 13:47:36 +0000 (+0000) Subject: Rewrite preprocess script to avoid string literal limit in C X-Git-Tag: 1.1.0~277 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=0e84a106463d59421cc235acafe34ae764e35bff;p=thirdparty%2Frspamd.git Rewrite preprocess script to avoid string literal limit in C --- diff --git a/src/rspamadm/lua_preprocess.pl b/src/rspamadm/lua_preprocess.pl index 014db3a981..4a84689a4b 100644 --- a/src/rspamadm/lua_preprocess.pl +++ b/src/rspamadm/lua_preprocess.pl @@ -15,9 +15,10 @@ sub quote_file { quote_file($inc, $out); } else { - s/\"/\\"/g; - s/^(.*)$/"$1\\n"/; - print $out $_; + s/(.)/'$1',/g; # split as 'c', + s/\'\\\'/\'\\\\'/g; # escape backslashes + s/\'\'\'/\'\\\'\'/g; # escape single quotes + print $out "$_'\\n',"; } } } @@ -35,12 +36,12 @@ foreach my $file (@files) { #ifndef ${definename}_GUARD_H #define ${definename}_GUARD_H -static const char ${varname}\[\] = "" +static const char ${varname}\[\] = { EOD quote_file($in, $out); print $out <