summaryrefslogtreecommitdiffstats
path: root/gettext-tools
diff options
context:
space:
mode:
authorĽubomír Remák <lubomirr@lubomirr.eu>2013-04-16 18:34:45 +0200
committerĽubomír Remák <lubomirr@lubomirr.eu>2013-04-16 18:34:45 +0200
commit97c6a779339a0de698606eaa42c347bcd027bfea (patch)
treef9ac599fd8a70a5ec37edb96196361c6c0e6357d /gettext-tools
parent7258f3aa1a24f0d195249621771be646f2d2c49c (diff)
downloadexternal_gettext-97c6a779339a0de698606eaa42c347bcd027bfea.zip
external_gettext-97c6a779339a0de698606eaa42c347bcd027bfea.tar.gz
external_gettext-97c6a779339a0de698606eaa42c347bcd027bfea.tar.bz2
Support for escape sequences added in Lua 5.2.
Diffstat (limited to 'gettext-tools')
-rw-r--r--gettext-tools/src/ChangeLog5
-rw-r--r--gettext-tools/src/x-lua.c40
-rw-r--r--gettext-tools/tests/ChangeLog5
-rwxr-xr-xgettext-tools/tests/xgettext-lua-15
4 files changed, 55 insertions, 0 deletions
diff --git a/gettext-tools/src/ChangeLog b/gettext-tools/src/ChangeLog
index 9427c87..11a7c87 100644
--- a/gettext-tools/src/ChangeLog
+++ b/gettext-tools/src/ChangeLog
@@ -1,3 +1,8 @@
+2013-04-16 Ľubomír Remák <lubomirr@lubomirr.eu>
+
+ 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 <lubomirr@lubomirr.eu>
Support for Lua.
diff --git a/gettext-tools/src/x-lua.c b/gettext-tools/src/x-lua.c
index fad7d0e..7a21258 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 46cb995..5ee060f 100644
--- a/gettext-tools/tests/ChangeLog
+++ b/gettext-tools/tests/ChangeLog
@@ -1,3 +1,8 @@
+2013-04-16 Ľubomír Remák <lubomirr@lubomirr.eu>
+
+ 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 <lubomirr@lubomirr.eu>
Support for Lua.
diff --git a/gettext-tools/tests/xgettext-lua-1 b/gettext-tools/tests/xgettext-lua-1
index 8ac8457..bad25b4 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}