projects
/
pspp
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Added src/ui/terminal/automake.mk and src/ui/gui/automake.mk
[pspp]
/
src
/
command.c
diff --git
a/src/command.c
b/src/command.c
index eb5b1654d94cb86453fbf06b6e2b3551f518fdcc..bdefcb22f266f759a711675774cac34851d11520 100644
(file)
--- a/
src/command.c
+++ b/
src/command.c
@@
-28,7
+28,7
@@
#include "dictionary.h"
#include "error.h"
#include "glob.h"
#include "dictionary.h"
#include "error.h"
#include "glob.h"
-#include "getl
ine
.h"
+#include "getl.h"
#include "lexer.h"
#include "main.h"
#include "settings.h"
#include "lexer.h"
#include "main.h"
#include "settings.h"
@@
-45,6
+45,10
@@
#if HAVE_SYS_WAIT_H
#include <sys/wait.h>
#endif
#if HAVE_SYS_WAIT_H
#include <sys/wait.h>
#endif
+
+#include "gettext.h"
+#define _(msgid) gettext (msgid)
+#define N_(msgid) msgid
\f
/* Global variables. */
\f
/* Global variables. */
@@
-74,7
+78,7
@@
struct command
{NAME, {T1, T2, T3, T4}, FUNC, 1, 1},
#define SPCCMD(NAME, T1, T2, T3, T4, FUNC) \
{NAME, {T1, T2, T3, T4}, FUNC, 0, 0},
{NAME, {T1, T2, T3, T4}, FUNC, 1, 1},
#define SPCCMD(NAME, T1, T2, T3, T4, FUNC) \
{NAME, {T1, T2, T3, T4}, FUNC, 0, 0},
-#define UNIMPL(NAME, T1, T2, T3, T4
)
\
+#define UNIMPL(NAME, T1, T2, T3, T4
, DESC)
\
{NAME, {T1, T2, T3, T4}, NULL, 1, 0},
static const struct command commands[] =
{
{NAME, {T1, T2, T3, T4}, NULL, 1, 0},
static const struct command commands[] =
{
@@
-104,7
+108,7
@@
pspp_completion_function (const char *text, int state)
cmd = &commands[state + skip];
cmd = &commands[state + skip];
- if ( cmd->transition[pgm_state] == STATE_ERROR || ( cmd->debug && !
test_mode
) )
+ if ( cmd->transition[pgm_state] == STATE_ERROR || ( cmd->debug && !
get_testing_mode ()
) )
{
skip++;
continue;
{
skip++;
continue;
@@
-134,7
+138,8
@@
static const struct command *parse_command_name (void);
/* Determines whether command C is appropriate to call in this
part of a FILE TYPE structure. */
static int
/* Determines whether command C is appropriate to call in this
part of a FILE TYPE structure. */
static int
-FILE_TYPE_okay (const struct command *c)
+FILE_TYPE_okay (const struct command *c UNUSED)
+#if 0
{
int okay = 0;
{
int okay = 0;
@@
-143,7
+148,6
@@
FILE_TYPE_okay (const struct command *c)
&& c->func != cmd_repeating_data
&& c->func != cmd_end_file_type)
msg (SE, _("%s not allowed inside FILE TYPE/END FILE TYPE."), c->name);
&& c->func != cmd_repeating_data
&& c->func != cmd_end_file_type)
msg (SE, _("%s not allowed inside FILE TYPE/END FILE TYPE."), c->name);
-#if 0
/* FIXME */
else if (c->func == cmd_repeating_data && fty.type == FTY_GROUPED)
msg (SE, _("%s not allowed inside FILE TYPE GROUPED/END FILE TYPE."),
/* FIXME */
else if (c->func == cmd_repeating_data && fty.type == FTY_GROUPED)
msg (SE, _("%s not allowed inside FILE TYPE GROUPED/END FILE TYPE."),
@@
-151,17
+155,19
@@
FILE_TYPE_okay (const struct command *c)
else if (!fty.had_rec_type && c->func != cmd_record_type)
msg (SE, _("RECORD TYPE must be the first command inside a "
"FILE TYPE structure."));
else if (!fty.had_rec_type && c->func != cmd_record_type)
msg (SE, _("RECORD TYPE must be the first command inside a "
"FILE TYPE structure."));
-#endif
else
okay = 1;
else
okay = 1;
-#if 0
if (c->func == cmd_record_type)
fty.had_rec_type = 1;
if (c->func == cmd_record_type)
fty.had_rec_type = 1;
-#endif
return okay;
}
return okay;
}
+#else
+{
+ return 1;
+}
+#endif
/* Parses an entire PSPP command. This includes everything from the
command name to the terminating dot. Does most of its work by
/* Parses an entire PSPP command. This includes everything from the
command name to the terminating dot. Does most of its work by
@@
-183,7
+189,7
@@
cmd_parse (void)
return CMD_SUCCESS;
/* Parse comments. */
return CMD_SUCCESS;
/* Parse comments. */
- if ((token == T_ID && !strcmp (tokid, "COMMENT"))
+ if ((token == T_ID && !strc
asec
mp (tokid, "COMMENT"))
|| token == T_EXP || token == '*' || token == '[')
{
lex_skip_comment ();
|| token == T_EXP || token == '*' || token == '[')
{
lex_skip_comment ();
@@
-281,7
+287,7
@@
match_strings (const char *a, size_t a_len,
while (a_len > 0 && b_len > 0)
{
/* Mismatch always returns zero. */
while (a_len > 0 && b_len > 0)
{
/* Mismatch always returns zero. */
- if (
*a++ != *b++
)
+ if (
toupper ((unsigned char) *a++) != toupper ((unsigned char) *b++)
)
return 0;
/* Advance. */
return 0;
/* Advance. */
@@
-303,7
+309,7
@@
static const char *
find_word (const char *string, size_t *word_len)
{
/* Skip whitespace and asterisks. */
find_word (const char *string, size_t *word_len)
{
/* Skip whitespace and asterisks. */
- while (isspace (*string))
+ while (isspace (
(unsigned char)
*string))
string++;
/* End of string? */
string++;
/* End of string? */
@@
-341,14
+347,14
@@
conflicting_3char_prefixes (const char *a, const char *b)
assert (aw != NULL && bw != NULL);
/* Words that are the same don't conflict. */
assert (aw != NULL && bw != NULL);
/* Words that are the same don't conflict. */
- if (aw_len == bw_len && !
memcmp
(aw, bw, aw_len))
+ if (aw_len == bw_len && !
buf_compare_case
(aw, bw, aw_len))
return 0;
/* Words that are otherwise the same in the first three letters
do conflict. */
return ((aw_len > 3 && bw_len > 3)
|| (aw_len == 3 && bw_len > 3)
return 0;
/* Words that are otherwise the same in the first three letters
do conflict. */
return ((aw_len > 3 && bw_len > 3)
|| (aw_len == 3 && bw_len > 3)
- || (bw_len == 3 && aw_len > 3)) && !
memcmp
(aw, bw, 3);
+ || (bw_len == 3 && aw_len > 3)) && !
buf_compare_case
(aw, bw, 3);
}
/* Returns nonzero if CMD can be confused with another command
}
/* Returns nonzero if CMD can be confused with another command
@@
-390,7
+396,7
@@
cmd_match_words (const struct command *cmd,
word != NULL && word_idx < word_cnt;
word = find_word (word + word_len, &word_len), word_idx++)
if (word_len != strlen (words[word_idx])
word != NULL && word_idx < word_cnt;
word = find_word (word + word_len, &word_len), word_idx++)
if (word_len != strlen (words[word_idx])
- ||
memcmp
(word, words[word_idx], word_len))
+ ||
buf_compare_case
(word, words[word_idx], word_len))
{
size_t match_chars = match_strings (word, word_len,
words[word_idx],
{
size_t match_chars = match_strings (word, word_len,
words[word_idx],
@@
-548,7
+554,7
@@
parse_command_name (void)
{
if (command->skip_entire_name)
lex_get ();
{
if (command->skip_entire_name)
lex_get ();
- if ( command->debug & !
test_mode
)
+ if ( command->debug & !
get_testing_mode ()
)
goto error;
free_words (words, word_cnt);
return command;
goto error;
free_words (words, word_cnt);
return command;
@@
-593,7
+599,7
@@
parse_command_name (void)
free (words[word_cnt]);
}
free (words[word_cnt]);
}
- if ( command->debug && !
test_mode
)
+ if ( command->debug && !
get_testing_mode ()
)
goto error;
free_words (words, word_cnt);
goto error;
free_words (words, word_cnt);
@@
-612,7
+618,7
@@
error:
int
cmd_exit (void)
{
int
cmd_exit (void)
{
- if (getl_reading_script)
+ if (getl_reading_script
()
)
{
msg (SE, _("This command is not accepted in a syntax file. "
"Instead, use FINISH to terminate a syntax file."));
{
msg (SE, _("This command is not accepted in a syntax file. "
"Instead, use FINISH to terminate a syntax file."));
@@
-673,7
+679,7
@@
cmd_execute (void)
int
cmd_erase (void)
{
int
cmd_erase (void)
{
- if (
safer_mode()
)
+ if (
get_safer_mode ()
)
{
msg (SE, _("This command not allowed when the SAFER option is set."));
return CMD_FAILURE;
{
msg (SE, _("This command not allowed when the SAFER option is set."));
return CMD_FAILURE;
@@
-733,7
+739,7
@@
shell (void)
execl (shell_fn, shell_process, NULL);
execl (shell_fn, shell_process, NULL);
-
err_hcf
(1);
+
_exit
(1);
}
case -1:
}
case -1:
@@
-804,7
+810,7
@@
cmd_host (void)
{
int code;
{
int code;
- if (
safer_mode()
)
+ if (
get_safer_mode ()
)
{
msg (SE, _("This command not allowed when the SAFER option is set."));
return CMD_FAILURE;
{
msg (SE, _("This command not allowed when the SAFER option is set."));
return CMD_FAILURE;
@@
-848,7
+854,7
@@
cmd_new_file (void)
int
cmd_clear_transformations (void)
{
int
cmd_clear_transformations (void)
{
- if (getl_reading_script)
+ if (getl_reading_script
()
)
{
msg (SW, _("This command is not valid in a syntax file."));
return CMD_FAILURE;
{
msg (SW, _("This command is not valid in a syntax file."));
return CMD_FAILURE;