Changeset 89c57b6 in mainline for kernel/generic/src/console/kconsole.c
- Timestamp:
- 2011-04-13T14:45:41Z (14 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 88634420
- Parents:
- cefb126 (diff), 17279ead (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the(diff)
links above to see all the changes relative to each parent. - File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
kernel/generic/src/console/kconsole.c
rcefb126 r89c57b6 160 160 161 161 /** Print count times a character */ 162 static void print_cc(wchar_t ch, size_t count)162 NO_TRACE static void print_cc(wchar_t ch, size_t count) 163 163 { 164 164 size_t i; … … 168 168 169 169 /** Try to find a command beginning with prefix */ 170 static const char *cmdtab_search_one(const char *name, link_t **startpos) 170 NO_TRACE static const char *cmdtab_search_one(const char *name, 171 link_t **startpos) 171 172 { 172 173 size_t namelen = str_length(name); … … 202 203 * 203 204 */ 204 static int cmdtab_compl(char *input, size_t size)205 NO_TRACE static int cmdtab_compl(char *input, size_t size) 205 206 { 206 207 const char *name = input; … … 209 210 link_t *pos = NULL; 210 211 const char *hint; 211 char output[MAX_CMDLINE];212 char *output = malloc(MAX_CMDLINE, 0); 212 213 213 214 output[0] = 0; … … 234 235 str_cpy(input, size, output); 235 236 237 free(output); 236 238 return found; 237 239 } 238 240 239 static wchar_t *clever_readline(const char *prompt, indev_t *indev)241 NO_TRACE static wchar_t *clever_readline(const char *prompt, indev_t *indev) 240 242 { 241 243 printf("%s> ", prompt); … … 244 246 wchar_t *current = history[history_pos]; 245 247 current[0] = 0; 248 char *tmp = malloc(STR_BOUNDS(MAX_CMDLINE), 0); 246 249 247 250 while (true) { … … 288 291 beg++; 289 292 290 char tmp[STR_BOUNDS(MAX_CMDLINE)];291 293 wstr_to_str(tmp, position - beg + 1, current + beg); 292 294 … … 414 416 } 415 417 418 free(tmp); 416 419 return current; 417 420 } … … 422 425 } 423 426 424 static bool parse_int_arg(const char *text, size_t len, unative_t *result) 427 NO_TRACE static bool parse_int_arg(const char *text, size_t len, 428 sysarg_t *result) 425 429 { 426 430 bool isaddr = false; … … 457 461 case EOK: 458 462 if (isaddr) 459 *result = ( unative_t) symaddr;463 *result = (sysarg_t) symaddr; 460 464 else if (isptr) 461 *result = **(( unative_t **) symaddr);465 *result = **((sysarg_t **) symaddr); 462 466 else 463 *result = *(( unative_t *) symaddr);467 *result = *((sysarg_t *) symaddr); 464 468 break; 465 469 default: … … 479 483 return false; 480 484 case EOK: 481 *result = ( unative_t) value;485 *result = (sysarg_t) value; 482 486 if (isptr) 483 *result = *(( unative_t *) *result);487 *result = *((sysarg_t *) *result); 484 488 break; 485 489 default: … … 507 511 * 508 512 */ 509 static bool parse_argument(const char *cmdline, size_t size, size_t *start, size_t *end) 513 NO_TRACE static bool parse_argument(const char *cmdline, size_t size, 514 size_t *start, size_t *end) 510 515 { 511 516 ASSERT(start != NULL); … … 543 548 * 544 549 */ 545 static cmd_info_t *parse_cmdline(const char *cmdline, size_t size)550 NO_TRACE static cmd_info_t *parse_cmdline(const char *cmdline, size_t size) 546 551 { 547 552 size_t start = 0; … … 624 629 cmdline + start + 1, 625 630 (end - start) - 1); 626 cmd->argv[i].intval = ( unative_t) buf;631 cmd->argv[i].intval = (sysarg_t) buf; 627 632 cmd->argv[i].vartype = ARG_TYPE_STRING; 628 633 } else { 629 printf("Wrong syn xtax.\n");634 printf("Wrong syntax.\n"); 630 635 error = true; 631 636 } … … 685 690 printf("Type \"exit\" to leave the console.\n"); 686 691 692 char *cmdline = malloc(STR_BOUNDS(MAX_CMDLINE), 0); 687 693 while (true) { 688 694 wchar_t *tmp = clever_readline((char *) prompt, stdin); … … 691 697 continue; 692 698 693 char cmdline[STR_BOUNDS(MAX_CMDLINE)];694 699 wstr_to_str(cmdline, STR_BOUNDS(MAX_CMDLINE), tmp); 695 700 … … 703 708 (void) cmd_info->func(cmd_info->argv); 704 709 } 710 free(cmdline); 705 711 } 706 712
Note:
See TracChangeset
for help on using the changeset viewer.