-# fdui->counter_zoom = obj;
-# {
-# // xgettext:no-c-format
-# char const * const dummy = _("Zoom %|#Z");
-# fdui->counter_zoom = obj = fl_add_counter(FL_NORMAL_COUNTER,1,2,3,4,idex(dummy));
-# fl_set_button_shortcut(obj,scex(dummy),1);
-# }
-
-/fl_add/{
-/".*[|].*"/{
-
- s/fdui\(.*\)"\(.*\)".*/ {\
- char const * const dummy = _("\2");\
- fdui\1idex(dummy));\
- fl_set_button_shortcut(obj,scex(dummy),1);\
- }/
-
- /_(".*[%].*");/ s/\(.*\)\(char const [*]\)/\1\/\/ xgettext:no-c-format\
- \2/
-}
-}
+# c_str = _("Zoom %|#Z");
+# fdui->counter_zoom = obj = fl_add_counter(...,idex(c_str));
+# fl_set_button_shortcut(obj,scex(c_str),1);
+
+/fl_add.*".*[|].*"/s/fdui\(.*\)"\(.*\)".*/c_str = _("\2");\
+ fdui\1idex(c_str));\
+ fl_set_button_shortcut(obj,scex(c_str),1);/
+
+
+# gettext will get confused if the string contains a "%" unless the line is
+# preceeded immediately by "// xgettext:no-c-format"
+/_(".*[%].*")/i\
+ // xgettext:no-c-format