projects
/
egate.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
0b1c3ae
)
New functions ccl_token_simple and ccl_token_del used.
author
Adam Dickmeiss
<adam@indexdata.dk>
Tue, 11 Jul 1995 12:28:53 +0000
(12:28 +0000)
committer
Adam Dickmeiss
<adam@indexdata.dk>
Tue, 11 Jul 1995 12:28:53 +0000
(12:28 +0000)
kernel/urp.c
patch
|
blob
|
history
diff --git
a/kernel/urp.c
b/kernel/urp.c
index
313d7e6
..
33a426e
100644
(file)
--- a/
kernel/urp.c
+++ b/
kernel/urp.c
@@
-45,7
+45,10
@@
* Europagate, 1995
*
* $Log: urp.c,v $
* Europagate, 1995
*
* $Log: urp.c,v $
- * Revision 1.43 1995/07/11 11:49:13 adam
+ * Revision 1.44 1995/07/11 12:28:53 adam
+ * New functions ccl_token_simple and ccl_token_del used.
+ *
+ * Revision 1.43 1995/07/11 11:49:13 adam
* LINE_MAX renamed to STR_LINE_MAX.
*
* Revision 1.42 1995/07/03 12:59:29 adam
* LINE_MAX renamed to STR_LINE_MAX.
*
* Revision 1.42 1995/07/03 12:59:29 adam
@@
-270,14
+273,13
@@
struct command_word {
char *resource_suffix;
};
char *resource_suffix;
};
-static int command_search (struct command_word *tab, struct ccl_token *cmd,
-const char *resource_prefix)
+static int command_search_str (struct command_word *tab, const char *cmd_name,
+ int cmd_len, const char *resource_prefix)
{
int no = 1;
assert (resource_prefix);
assert (tab);
{
int no = 1;
assert (resource_prefix);
assert (tab);
- assert (cmd);
while (tab->default_value)
{
char *cp, command_names[60];
while (tab->default_value)
{
char *cp, command_names[60];
@@
-296,8
+298,8
@@
const char *resource_prefix)
if ((split = strchr (cp, ' ')))
*split = '\0';
if ((split = strchr (cp, ' ')))
*split = '\0';
- if (cmd->len == strlen(cp) &&
- !memcmp (cmd->name, cp, cmd->len))
+ if (cmd_len == strlen(cp) &&
+ !memcmp (cmd_name, cp, cmd_len))
return no;
if (!split)
break;
return no;
if (!split)
break;
@@
-309,6
+311,12
@@
const char *resource_prefix)
return 0;
}
return 0;
}
+static int command_search (struct command_word *tab, struct ccl_token *cmd,
+ const char *resource_prefix)
+{
+ return command_search_str (tab, cmd->name, cmd->len, resource_prefix);
+}
+
static struct error_no_struct {
int no;
char *resource_name;
static struct error_no_struct {
int no;
char *resource_name;
@@
-980,12
+988,16
@@
static int exec_command (const char *str, int *stop_flag)
{ NULL, NULL }
};
{ NULL, NULL }
};
- struct ccl_token *cmd = ccl_tokenize (str);
+ struct ccl_token *cmd;
+ const char *cp = str;
int no;
int no;
+ while (*cp != ' ' && *cp != '\n' && *cp != '\t' && *cp != '\r')
+ cp++;
+
*stop_flag = 0;
*stop_flag = 0;
- if (cmd->kind != CCL_TOK_EOL &&
- (no = command_search (command_tab, cmd, "ccl.command.")))
+ no = command_search_str (command_tab, str, cp-str, "ccl.command.");
+ if (no)
{
if (no == 1 || no == 2 || no == 3) /* find/show/base? */
{
{
if (no == 1 || no == 2 || no == 3) /* find/show/base? */
{
@@
-1005,33
+1017,50
@@
static int exec_command (const char *str, int *stop_flag)
fprintf (reply_fd, "\n> %s\n", str);
switch (no)
{
fprintf (reply_fd, "\n> %s\n", str);
switch (no)
{
- case 1:
- return exec_find (cmd->next, str);
- case 2:
- return exec_show (cmd->next);
- case 3:
- return exec_base (cmd->next);
- case 4:
- return exec_help (cmd->next);
+ case 1: /* find */
+ cmd = ccl_tokenize (cp);
+ exec_find (cmd, str);
+ break;
+ case 2: /* show */
+ cmd = ccl_tokenize (cp);
+ exec_show (cmd);
+ break;
+ case 3: /* base */
+ cmd = ccl_token_simple (cp);
+ exec_base (cmd);
+ break;
+ case 4: /* help */
+ cmd = ccl_token_simple (cp);
+ exec_help (cmd);
+ break;
case 6: /* continue */
*stop_flag = 2;
return 0;
case 7: /* status */
case 6: /* continue */
*stop_flag = 2;
return 0;
case 7: /* status */
- return exec_status (cmd->next);
+ exec_status (cmd);
+ return 0;
case 8: /* stop */
*stop_flag = 1;
return 0;
case 9: /* target */
case 8: /* stop */
*stop_flag = 1;
return 0;
case 9: /* target */
- return exec_target (cmd->next);
+ cmd = ccl_token_simple (cp);
+ exec_target (cmd);
+ break;
case 10: /* def */
case 10: /* def */
- return exec_def (cmd->next);
- case 11:
- return exec_account (cmd->next);
+ cmd = ccl_token_simple (cp);
+ exec_def (cmd);
+ break;
+ case 11: /* account */
+ cmd = ccl_token_simple (cp);
+ exec_account (cmd);
+ break;
default:
default:
+ cmd = NULL;
fprintf (reply_fd, "%s\n",
gw_res_get (info.kernel_res, "gw.err.unimplemented",
"Not implemented yet"));
}
fprintf (reply_fd, "%s\n",
gw_res_get (info.kernel_res, "gw.err.unimplemented",
"Not implemented yet"));
}
+ ccl_token_del (cmd);
}
else
{
}
else
{