projects
/
pspp
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
render: Add comment.
[pspp]
/
src
/
language
/
control
/
do-if.c
diff --git
a/src/language/control/do-if.c
b/src/language/control/do-if.c
index fe9ca73008e7ba8ed64e02621adbffbf2cd9bb60..83de0e39a31a73574bfe0fa0b781dafc96eafbf0 100644
(file)
--- a/
src/language/control/do-if.c
+++ b/
src/language/control/do-if.c
@@
-1,5
+1,5
@@
/* PSPP - a program for statistical analysis.
/* PSPP - a program for statistical analysis.
- Copyright (C) 1997-9, 2000, 2009-201
1
Free Software Foundation, Inc.
+ Copyright (C) 1997-9, 2000, 2009-201
2
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
@@
-124,9
+124,12
@@
int
cmd_else (struct lexer *lexer UNUSED, struct dataset *ds)
{
struct do_if_trns *do_if = ctl_stack_top (&do_if_class);
cmd_else (struct lexer *lexer UNUSED, struct dataset *ds)
{
struct do_if_trns *do_if = ctl_stack_top (&do_if_class);
- assert (ds == do_if->ds);
+
if (do_if == NULL || !must_not_have_else (do_if))
return CMD_CASCADING_FAILURE;
if (do_if == NULL || !must_not_have_else (do_if))
return CMD_CASCADING_FAILURE;
+
+ assert (ds == do_if->ds);
+
add_else (do_if);
return CMD_SUCCESS;
}
add_else (do_if);
return CMD_SUCCESS;
}
@@
-136,11
+139,11
@@
int
cmd_end_if (struct lexer *lexer UNUSED, struct dataset *ds)
{
struct do_if_trns *do_if = ctl_stack_top (&do_if_class);
cmd_end_if (struct lexer *lexer UNUSED, struct dataset *ds)
{
struct do_if_trns *do_if = ctl_stack_top (&do_if_class);
- assert (ds == do_if->ds);
if (do_if == NULL)
return CMD_CASCADING_FAILURE;
if (do_if == NULL)
return CMD_CASCADING_FAILURE;
+ assert (ds == do_if->ds);
ctl_stack_pop (do_if);
return CMD_SUCCESS;
ctl_stack_pop (do_if);
return CMD_SUCCESS;
@@
-174,7
+177,7
@@
must_not_have_else (struct do_if_trns *do_if)
{
if (has_else (do_if))
{
{
if (has_else (do_if))
{
- msg (SE, _("This command may not follow
ELSE in DO IF...END IF.")
);
+ msg (SE, _("This command may not follow
%s in %s ... %s."), "ELSE", "DO IF", "END IF"
);
return false;
}
else
return false;
}
else