aboutsummaryrefslogtreecommitdiffstats
path: root/grpmi/po/fake_c.pl
diff options
context:
space:
mode:
Diffstat (limited to 'grpmi/po/fake_c.pl')
-rwxr-xr-xgrpmi/po/fake_c.pl22
1 files changed, 22 insertions, 0 deletions
diff --git a/grpmi/po/fake_c.pl b/grpmi/po/fake_c.pl
new file mode 100755
index 00000000..21cf25b0
--- /dev/null
+++ b/grpmi/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;
+ $_;
+}