kconfig: fix update-po-config to accect backslash in input
Sam Ravnborg [Wed, 8 Apr 2009 06:42:48 +0000 (08:42 +0200)]
Massimo Maiurana reported (slightly edited):

=====
In latest 2.6.29 "make update-po-config" fails at msguniq invocation
with an "invalid control sequence" error.
The offending string is the following, and it's located in
drivers/staging/panel/Kconfig:72:

    "'\e[L' which are specific to the LCD, and a few ANSI codes. The"

looks to me like gettext expects strings in printf format, so in
this case it thinks "\e" is a control sequence but doesn't recognise
it as a valid one.

A valid solution would be to tell kxgettext to automatically
escape this kind of strings in the */config.pot he produces, so that
msguniq would not complain.
=====

This patch implements the suggested escaping.

Reported-by: Massimo Maiurana <maiurana@gmail.com>
Tested-by: Massimo Maiurana <maiurana@gmail.com>
Signed-off-by: Sam Ravnborg <sam@ravnborg.org>

scripts/kconfig/kxgettext.c

index 6eb72a7..8d9ce22 100644 (file)
@@ -43,6 +43,10 @@ static char *escape(const char* text, char *bf, int len)
                        ++text;
                        goto next;
                }
+               else if (*text == '\\') {
+                       *bfp++ = '\\';
+                       len--;
+               }
                *bfp++ = *text++;
 next:
                --len;