/* PSPP - computes sample statistics.
Copyright (C) 1997-9, 2000 Free Software Foundation, Inc.
- Written by Ben Pfaff <blp@gnu.org>.
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License as
/* Record file name. */
cur_file_name = getl_source_name (lex_get_source_stream (lexer));
- if (cur_file_name != NULL &&
+ if (cur_file_name != NULL &&
(previous_file_name == NULL
|| !strcmp (cur_file_name, previous_file_name)))
previous_file_name = pool_strdup (block->pool, cur_file_name);
lex_preprocess_line (&text, syntax,
&command_ends_before_line,
&command_ends_after_line);
- if (recognize_do_repeat (ds_ss (&text)))
- nesting_level++;
+ if (recognize_do_repeat (ds_ss (&text)))
+ {
+ if (get_syntax () == COMPATIBLE)
+ msg (SE, _("DO REPEAT may not nest in compatibility mode."));
+ else
+ nesting_level++;
+ }
else if (recognize_end_repeat (ds_ss (&text), &block->print)
- && nesting_level-- == 0)
+ && nesting_level-- == 0)
{
lex_discard_line (lexer);
+ ds_destroy (&text);
return true;
}
ds_destroy (&text);
create_vars (struct repeat_block *block)
{
struct repeat_macro *macro;
-
+
ll_for_each (macro, struct repeat_macro, ll, &block->macros)
if (macro->type == VAR_NAMES)
{