Subversion Repositories HelenOS

Compare Revisions

Regard whitespace Rev 2107 → Rev 2108

/trunk/kernel/generic/src/console/kconsole.c
79,7 → 79,8
LIST_INITIALIZE(cmd_head); /**< Command list. */
 
static cmd_info_t *parse_cmdline(char *cmdline, size_t len);
static bool parse_argument(char *cmdline, size_t len, index_t *start, index_t *end);
static bool parse_argument(char *cmdline, size_t len, index_t *start,
index_t *end);
static char history[KCONSOLE_HISTORY][MAX_CMDLINE] = {};
 
/** Initialize kconsole data structures. */
127,8 → 128,7
spinlock_lock(&cmd->lock);
spinlock_lock(&hlp->lock);
}
if ((strncmp(hlp->name,
cmd->name, max(strlen(cmd->name),
if ((strncmp(hlp->name, cmd->name, max(strlen(cmd->name),
strlen(hlp->name))) == 0)) {
/* The command is already there. */
spinlock_unlock(&hlp->lock);
215,7 → 215,8
if (!found)
strncpy(output, foundtxt, strlen(foundtxt)+1);
else {
for (i=0; output[i] && foundtxt[i] && output[i]==foundtxt[i]; i++)
for (i = 0; output[i] && foundtxt[i] &&
output[i] == foundtxt[i]; i++)
;
output[i] = '\0';
}
274,7 → 275,8
int found;
 
/* Move to the end of the word */
for (;position<curlen && current[position]!=' ';position++)
for (; position < curlen && current[position] != ' ';
position++)
putchar(current[position]);
/* Copy to tmp last word */
for (i=position-1;i >= 0 && current[i]!=' ' ;i--)
294,7 → 296,8
 
if (found == 0)
continue;
for (i=0;tmp[i] && curlen < MAX_CMDLINE;i++,curlen++)
for (i = 0; tmp[i] && curlen < MAX_CMDLINE;
i++, curlen++)
insert_char(current, tmp[i], i+position);
 
if (strlen(tmp) || found==1) { /* If we have a hint */
302,7 → 305,7
putchar(current[i]);
position += strlen(tmp);
/* Add space to end */
if (found == 1 && position == curlen && \
if (found == 1 && position == curlen &&
curlen < MAX_CMDLINE) {
current[position] = ' ';
curlen++;
336,31 → 339,26
putchar(' ');
rdln_print_c('\b',curlen-position);
curlen--;
}
else if (c == 0x48) { /* Home */
} else if (c == 0x48) { /* Home */
rdln_print_c('\b',position);
position = 0;
}
else if (c == 0x46) { /* End */
} else if (c == 0x46) { /* End */
for (i=position;i<curlen;i++)
putchar(current[i]);
position = curlen;
}
else if (c == 0x44) { /* Left */
} else if (c == 0x44) { /* Left */
if (position > 0) {
putchar('\b');
position--;
}
continue;
}
else if (c == 0x43) { /* Right */
} else if (c == 0x43) { /* Right */
if (position < curlen) {
putchar(current[position]);
position++;
}
continue;
}
else if (c == 0x41 || c == 0x42) {
} else if (c == 0x41 || c == 0x42) {
/* Up,down */
rdln_print_c('\b',position);
rdln_print_c(' ',curlen);
369,10 → 367,12
histposition--;
else
histposition++;
if (histposition < 0)
if (histposition < 0) {
histposition = KCONSOLE_HISTORY -1 ;
else
histposition = histposition % KCONSOLE_HISTORY;
} else {
histposition =
histposition % KCONSOLE_HISTORY;
}
current = history[histposition];
printf("%s", current);
curlen = strlen(current);
423,7 → 423,7
cmd_info = parse_cmdline(cmdline, len);
if (!cmd_info)
continue;
if (strncmp(cmd_info->name,"exit", \
if (strncmp(cmd_info->name, "exit",
min(strlen(cmd_info->name),5)) == 0)
break;
(void) cmd_info->func(cmd_info->argv);
440,10 → 440,12
/* If we get a name, try to find it in symbol table */
if (text[0] == '&') {
isaddr = true;
text++;len--;
text++;
len--;
} else if (text[0] == '*') {
isptr = true;
text++;len--;
text++;
len--;
}
if (text[0] < '0' || text[0] > '9') {
strncpy(symname, text, min(len+1, MAX_SYMBOL_NAME));
539,7 → 541,8
switch (cmd->argv[i].type) {
case ARG_TYPE_STRING:
buf = cmd->argv[i].buffer;
strncpy(buf, (const char *) &cmdline[start], min((end - start) + 2, cmd->argv[i].len));
strncpy(buf, (const char *) &cmdline[start],
min((end - start) + 2, cmd->argv[i].len));
buf[min((end - start) + 1, cmd->argv[i].len - 1)] = '\0';
break;
case ARG_TYPE_INT:
548,17 → 551,19
error = 1;
break;
case ARG_TYPE_VAR:
if (start != end && cmdline[start] == '"' && cmdline[end] == '"') {
if (start != end && cmdline[start] == '"' &&
cmdline[end] == '"') {
buf = cmd->argv[i].buffer;
strncpy(buf, (const char *) &cmdline[start+1],
min((end-start), cmd->argv[i].len));
buf[min((end - start), cmd->argv[i].len - 1)] = '\0';
buf[min((end - start), cmd->argv[i].len - 1)] =
'\0';
cmd->argv[i].intval = (unative_t) buf;
cmd->argv[i].vartype = ARG_TYPE_STRING;
} else if (!parse_int_arg(cmdline+start, end-start+1,
&cmd->argv[i].intval))
&cmd->argv[i].intval)) {
cmd->argv[i].vartype = ARG_TYPE_INT;
else {
} else {
printf("Unrecognized variable argument.\n");
error = 1;
}