projects
/
pspp
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fix memory leak in the value labels dialog
[pspp]
/
src
/
language
/
command.c
diff --git
a/src/language/command.c
b/src/language/command.c
index 76377035886b26e97dae5ad0222e660e91c411ef..2fa05ad742d21ed6752a991ff6120893dfb2acea 100644
(file)
--- a/
src/language/command.c
+++ b/
src/language/command.c
@@
-1,5
+1,5
@@
/* PSPP - a program for statistical analysis.
/* PSPP - a program for statistical analysis.
- Copyright (C) 1997-9, 2000, 2009, 2010, 2011, 2012, 2013 Free Software Foundation, Inc.
+ Copyright (C) 1997-9, 2000, 2009, 2010, 2011, 2012, 2013
, 2014
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
@@
-36,9
+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/
text
-item.h"
+#include "output/
group
-item.h"
-#include "xalloc.h"
#include "xmalloca.h"
#include "gettext.h"
#include "xmalloca.h"
#include "gettext.h"
@@
-199,7
+198,8
@@
do_parse_command (struct lexer *lexer,
result = CMD_FAILURE;
goto finish;
}
result = CMD_FAILURE;
goto finish;
}
- text_item_submit (text_item_create (TEXT_ITEM_COMMAND_OPEN, command->name));
+ group_open_item_submit (group_open_item_create_nocopy (
+ utf8_to_title (command->name)));
opened = true;
if (command->function == NULL)
opened = true;
if (command->function == NULL)
@@
-242,12
+242,12
@@
finish:
result = lex_end_of_command (lexer);
lex_discard_rest_of_command (lexer);
result = lex_end_of_command (lexer);
lex_discard_rest_of_command (lexer);
- while (lex_token (lexer) == T_ENDCMD)
- lex_get (lexer);
+ if (result != CMD_EOF && result != CMD_FINISH)
+ while (lex_token (lexer) == T_ENDCMD)
+ lex_get (lexer);
if (opened)
if (opened)
- text_item_submit (text_item_create (TEXT_ITEM_COMMAND_CLOSE,
- command->name));
+ group_close_item_submit (group_close_item_create ());
return result;
}
return result;
}
@@
-412,7
+412,7
@@
report_state_mismatch (const struct command *command, enum cmd_state state)
command->name, "FILE TYPE");
break;
case S_INPUT_PROGRAM | S_FILE_TYPE:
command->name, "FILE TYPE");
break;
case S_INPUT_PROGRAM | S_FILE_TYPE:
- msg (SE, _("%s is allowed only inside %s or inside %s."), command->name,
+ msg (SE, _("%s is allowed only inside %s or inside %s."), command->name,
"INPUT PROGRAM", "FILE TYPE");
break;
"INPUT PROGRAM", "FILE TYPE");
break;
@@
-442,7
+442,7
@@
report_state_mismatch (const struct command *command, enum cmd_state state)
}
else if (state == CMD_STATE_INPUT_PROGRAM)
msg (SE, _("%s is not allowed inside %s."),
}
else if (state == CMD_STATE_INPUT_PROGRAM)
msg (SE, _("%s is not allowed inside %s."),
- command->name, "INPUT PROGRAM"
);
+ command->name, "INPUT PROGRAM");
else if (state == CMD_STATE_FILE_TYPE)
msg (SE, _("%s is not allowed inside %s."), command->name, "FILE TYPE");
else if (state == CMD_STATE_FILE_TYPE)
msg (SE, _("%s is not allowed inside %s."), command->name, "FILE TYPE");