X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Flanguage%2Futilities%2Finclude.c;h=eefbde6158bc2bbeba81b11a19161c8df52da42d;hb=12e972b638e0363225a5b98c4e241ca5fd42e8cb;hp=19a5baa465dec0bb32b3b07e9d7e84a1009f1076;hpb=96994a54e60e9c95b8bba54c2281acf7059b1203;p=pspp diff --git a/src/language/utilities/include.c b/src/language/utilities/include.c index 19a5baa465..eefbde6158 100644 --- a/src/language/utilities/include.c +++ b/src/language/utilities/include.c @@ -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); } }