projects
/
pspp
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
track axes
[pspp]
/
src
/
language
/
utilities
/
include.c
diff --git
a/src/language/utilities/include.c
b/src/language/utilities/include.c
index 19a5baa465dec0bb32b3b07e9d7e84a1009f1076..eefbde6158bc2bbeba81b11a19161c8df52da42d 100644
(file)
--- a/
src/language/utilities/include.c
+++ b/
src/language/utilities/include.c
@@
-1,5
+1,5
@@
/* PSPP - a program for statistical analysis.
/* 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
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)
{
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;
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);
}
lex_get (lexer);
- syntax_mode =
LEX_SYNTAX
_INTERACTIVE;
+ syntax_mode =
SEG_MODE
_INTERACTIVE;
error_mode = LEX_ERROR_CONTINUE;
cd = false;
status = CMD_FAILURE;
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"))
{
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"))
else if (lex_match_id (lexer, "BATCH"))
- syntax_mode =
LEX_SYNTAX
_BATCH;
+ syntax_mode =
SEG_MODE
_BATCH;
else if (lex_match_id (lexer, "AUTO"))
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");
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);
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);
}
}
free (directory);
}
}