projects
/
pspp
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
DEFINE: Properly support redefining a macro.
[pspp]
/
src
/
language
/
command.c
diff --git
a/src/language/command.c
b/src/language/command.c
index 2fa05ad742d21ed6752a991ff6120893dfb2acea..068ae0ea631a7f19da70898336a2414052205c55 100644
(file)
--- a/
src/language/command.c
+++ b/
src/language/command.c
@@
-36,7
+36,8
@@
#include "libpspp/i18n.h"
#include "libpspp/message.h"
#include "libpspp/str.h"
#include "libpspp/i18n.h"
#include "libpspp/message.h"
#include "libpspp/str.h"
-#include "output/group-item.h"
+#include "output/driver.h"
+#include "output/output-item.h"
#include "xmalloca.h"
#include "xmalloca.h"
@@
-173,8
+174,8
@@
do_parse_command (struct lexer *lexer,
struct dataset *ds, enum cmd_state state)
{
const struct command *command = NULL;
struct dataset *ds, enum cmd_state state)
{
const struct command *command = NULL;
+ size_t nesting_level = SIZE_MAX;
enum cmd_result result;
enum cmd_result result;
- bool opened = false;
int n_tokens;
/* Read the command's first token. */
int n_tokens;
/* Read the command's first token. */
@@
-198,9
+199,10
@@
do_parse_command (struct lexer *lexer,
result = CMD_FAILURE;
goto finish;
}
result = CMD_FAILURE;
goto finish;
}
- group_open_item_submit (group_open_item_create_nocopy (
- utf8_to_title (command->name)));
- opened = true;
+
+ nesting_level = output_open_group (group_item_create_nocopy (
+ utf8_to_title (command->name),
+ utf8_to_title (command->name)));
if (command->function == NULL)
{
if (command->function == NULL)
{
@@
-246,8
+248,8
@@
finish:
while (lex_token (lexer) == T_ENDCMD)
lex_get (lexer);
while (lex_token (lexer) == T_ENDCMD)
lex_get (lexer);
- if (
opened
)
-
group_close_item_submit (group_close_item_create ()
);
+ if (
nesting_level != SIZE_MAX
)
+
output_close_groups (nesting_level
);
return result;
}
return result;
}
@@
-494,15
+496,12
@@
cmd_finish (struct lexer *lexer UNUSED, struct dataset *ds UNUSED)
int
cmd_n_of_cases (struct lexer *lexer, struct dataset *ds)
{
int
cmd_n_of_cases (struct lexer *lexer, struct dataset *ds)
{
- /* Value for N. */
- int x;
-
- if (!lex_force_int (lexer))
+ if (!lex_force_int_range (lexer, "N OF CASES", 1, LONG_MAX))
return CMD_FAILURE;
return CMD_FAILURE;
-
x
= lex_integer (lexer);
+
long n
= lex_integer (lexer);
lex_get (lexer);
if (!lex_match_id (lexer, "ESTIMATED"))
lex_get (lexer);
if (!lex_match_id (lexer, "ESTIMATED"))
- dict_set_case_limit (dataset_dict (ds),
x
);
+ dict_set_case_limit (dataset_dict (ds),
n
);
return CMD_SUCCESS;
}
return CMD_SUCCESS;
}