]> git.ipfire.org Git - thirdparty/gettext.git/commitdiff
Support for escape sequences added in Lua 5.2.
authorĽubomír Remák <lubomirr@lubomirr.eu>
Tue, 16 Apr 2013 16:34:45 +0000 (18:34 +0200)
committerĽubomír Remák <lubomirr@lubomirr.eu>
Tue, 16 Apr 2013 16:34:45 +0000 (18:34 +0200)
gettext-tools/src/ChangeLog
gettext-tools/src/x-lua.c
gettext-tools/tests/ChangeLog
gettext-tools/tests/xgettext-lua-1

index 9427c87747a6d6af64083c6a87eddb7cbbe3469d..11a7c87cd3e1e12f6ea3042d43764fd260d13328 100644 (file)
@@ -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.
index fad7d0e8e9ace58d92b05bb92a5020e8444f37f9..7a21258111c315f9c45225d8ac83754086d1484c 100644 (file)
@@ -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')
index 46cb9952cbeaf10261079c3f51e6800c131231c4..5ee060f0e76e32e010dc8a92f964d741db9c7c68 100644 (file)
@@ -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.
index 8ac8457974aca497851205109d25b98d78931e65..bad25b46178aee2dc7293575b97a8adbc29c97da 100755 (executable)
@@ -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}