From 97c6a779339a0de698606eaa42c347bcd027bfea Mon Sep 17 00:00:00 2001 From: =?utf8?q?=C4=BDubom=C3=ADr=20Rem=C3=A1k?= Date: Tue, 16 Apr 2013 18:34:45 +0200 Subject: [PATCH] Support for escape sequences added in Lua 5.2. --- gettext-tools/src/ChangeLog | 5 ++++ gettext-tools/src/x-lua.c | 40 ++++++++++++++++++++++++++++++ gettext-tools/tests/ChangeLog | 5 ++++ gettext-tools/tests/xgettext-lua-1 | 5 ++++ 4 files changed, 55 insertions(+) diff --git a/gettext-tools/src/ChangeLog b/gettext-tools/src/ChangeLog index 9427c8774..11a7c87cd 100644 --- a/gettext-tools/src/ChangeLog +++ b/gettext-tools/src/ChangeLog @@ -1,3 +1,8 @@ +2013-04-16 Ľubomír Remák + + Support for escape sequences added in Lua 5.2. + * x-lua.c (phase3_get): Add \x and \z escape sequences. + 2013-04-11 Ľubomír Remák Support for Lua. diff --git a/gettext-tools/src/x-lua.c b/gettext-tools/src/x-lua.c index fad7d0e8e..7a2125811 100644 --- a/gettext-tools/src/x-lua.c +++ b/gettext-tools/src/x-lua.c @@ -619,7 +619,47 @@ phase3_get (token_ty *tp) case 'v': string_add ('\v'); break; + case 'x': + { + int num = 0; + int i = 0; + + for (i = 0; i < 2; i++) + { + c = phase1_getc (); + if (c >= '0' && c <= '9') + num += c - '0'; + else if (c >= 'a' && c <= 'f') + num += c - 'a' + 10; + else if (c >= 'A' && c <= 'F') + num += c - 'A' + 10; + else + { + phase1_ungetc (c); + break; + } + + if (i == 0) + num *= 16; + } + + if (i == 2) + string_add (num); + } + break; + case 'z': + /* Ignore the following whitespace. */ + do + { + c = phase1_getc (); + } + while (c == ' ' || c == '\n' || c == '\t' || c == '\r' + || c == '\f' || c == '\v'); + + phase1_ungetc (c); + + break; default: /* Check if it's a '\ddd' sequence. */ if (c >= '0' && c <= '9') diff --git a/gettext-tools/tests/ChangeLog b/gettext-tools/tests/ChangeLog index 46cb9952c..5ee060f0e 100644 --- a/gettext-tools/tests/ChangeLog +++ b/gettext-tools/tests/ChangeLog @@ -1,3 +1,8 @@ +2013-04-16 Ľubomír Remák + + Support for escape sequences added in Lua 5.2. + * xgettext-lua-1: New test cases for \x and \z escape sequences. + 2013-04-11 Ľubomír Remák Support for Lua. diff --git a/gettext-tools/tests/xgettext-lua-1 b/gettext-tools/tests/xgettext-lua-1 index 8ac845797..bad25b461 100755 --- a/gettext-tools/tests/xgettext-lua-1 +++ b/gettext-tools/tests/xgettext-lua-1 @@ -19,6 +19,8 @@ print(_(hmm["nope"])) print({_"yep"}) print(_["nope"]) print(_("\097")) +print(_("\x3F\z +\x2a")) EOF tmpfiles="$tmpfiles xg-lu-1.tmp.po xg-lu-1.po" @@ -60,6 +62,9 @@ msgstr "" msgid "a" msgstr "" + +msgid "?*" +msgstr "" EOF : ${DIFF=diff} -- 2.47.2