Add ptile support (untested).
[pspp] / src / language / utilities / include.c
index 19a5baa465dec0bb32b3b07e9d7e84a1009f1076..eefbde6158bc2bbeba81b11a19161c8df52da42d 100644 (file)
@@ -1,5 +1,5 @@
 /* PSPP - a program for statistical analysis.
-   Copyright (C) 1997-9, 2000, 2007, 2010, 2011 Free Software Foundation, Inc.
+   Copyright (C) 1997-9, 2000, 2007, 2010, 2011, 2020 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -46,7 +46,7 @@ enum variant
 static int
 do_insert (struct lexer *lexer, struct dataset *ds, enum variant variant)
 {
-  enum lex_syntax_mode syntax_mode;
+  enum segmenter_mode syntax_mode;
   enum lex_error_mode error_mode;
   char *relative_name;
   char *filename;
@@ -76,7 +76,7 @@ do_insert (struct lexer *lexer, struct dataset *ds, enum variant variant)
     }
   lex_get (lexer);
 
-  syntax_mode = LEX_SYNTAX_INTERACTIVE;
+  syntax_mode = SEG_MODE_INTERACTIVE;
   error_mode = LEX_ERROR_CONTINUE;
   cd = false;
   status = CMD_FAILURE;
@@ -98,11 +98,11 @@ do_insert (struct lexer *lexer, struct dataset *ds, enum variant variant)
        {
          lex_match (lexer, T_EQUALS);
          if (lex_match_id (lexer, "INTERACTIVE"))
-           syntax_mode = LEX_SYNTAX_INTERACTIVE;
+           syntax_mode = SEG_MODE_INTERACTIVE;
          else if (lex_match_id (lexer, "BATCH"))
-           syntax_mode = LEX_SYNTAX_BATCH;
+           syntax_mode = SEG_MODE_BATCH;
          else if (lex_match_id (lexer, "AUTO"))
-           syntax_mode = LEX_SYNTAX_AUTO;
+           syntax_mode = SEG_MODE_AUTO;
          else
            {
              lex_error_expecting (lexer, "BATCH", "INTERACTIVE", "AUTO");
@@ -166,7 +166,15 @@ do_insert (struct lexer *lexer, struct dataset *ds, enum variant variant)
           if (cd)
             {
               char *directory = dir_name (filename);
-              chdir (directory);
+              int ret = chdir (directory);
+              if (0 != ret)
+                {
+                  int err = errno;
+                  msg (SE, _("Cannot change directory to %s: %s"), directory,
+                       strerror (err));
+                  status = CMD_FAILURE;
+                }
+
               free (directory);
             }
         }