diff options
Diffstat (limited to 'po/fake_c.pl')
-rwxr-xr-x | po/fake_c.pl | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/po/fake_c.pl b/po/fake_c.pl new file mode 100755 index 0000000..21cf25b --- /dev/null +++ b/po/fake_c.pl @@ -0,0 +1,22 @@ +#!/usr/bin/perl -lp + +s|^(__?\()| $1|; # add a blank at the beginning (?!) + +s|_\(\[(.*),\s*(.*),\s*(.*)\]|ngettext($2,$3,$1)|; # special plural form handling + +s,\Qs/#.*//,,; # ugly special case + +s,(^|[^\$])#([^+].*),"$1/*" . simpl($2) . "*/",e; + # rewrite comments to C format except for: + # - ``#+ xxx'' comments which are kept + # - ``$#xxx'' which are not comments + +s|//|/""/|g; # ensure // or not understood as comments + +s|$|\\n\\|; # multi-line strings not handled in C + +sub simpl { + local $_ = $_[0]; + s,\*/,,g; + $_; +} |