Fix the INCLUDE /ENCODING subcommand and add a test for it.
authorJohn Darrington <john@darrington.wattle.id.au>
Wed, 7 Oct 2015 09:28:35 +0000 (11:28 +0200)
committerJohn Darrington <john@darrington.wattle.id.au>
Wed, 7 Oct 2015 16:54:12 +0000 (18:54 +0200)
It seems that INCLUDE /ENCODING had never worked nor had been
tested.

src/language/utilities/include.c
tests/language/utilities/insert.at

index a05456e2a2e8ff7366556865d1eb1e40b023f239..b0823eafcb72a8e4954b55c9dc72b558d3c6dc9e 100644 (file)
@@ -90,6 +90,7 @@ do_insert (struct lexer *lexer, struct dataset *ds, enum variant variant)
 
           free (encoding);
           encoding = xstrdup (lex_tokcstr (lexer));
+         lex_get (lexer);
         }
       else if (variant == INSERT && lex_match_id (lexer, "SYNTAX"))
        {
index 8eaa72f7262e3f387d366901b2842035409371de..e8e76502da5a4ca621f343ba16795ad06f4ffd05 100644 (file)
@@ -158,3 +158,26 @@ insert.sps:2: error: INSERT: Can't find `nonexistent' in include file search pat
 insert.sps:6: error: LIST: LIST is allowed only after the active dataset has been defined.
 ])
 AT_CLEANUP
+
+
+dnl A test to check the INCLUDE command complete with the 
+dnl syntax and function of the ENCODING subcommand.
+AT_SETUP([INCLUDE full check])
+AT_DATA([two-utf8.sps], [dnl
+echo 'Äpfelfölfaß'.
+])
+
+AT_DATA([include.sps], [dnl
+echo 'ONE'.
+
+include FILE='two-latin1.sps' ENCODING='ISO_8859-1'.
+])
+
+AT_CHECK([iconv -f UTF-8 -t iso-8859-1 two-utf8.sps > two-latin1.sps], [0], [])
+
+AT_CHECK([pspp -O format=csv include.sps], [0], [dnl
+ONE
+
+Äpfelfölfaß
+])
+AT_CLEANUP