Subversion Repositories HelenOS

Rev

Rev 4224 | Rev 4273 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 4224 Rev 4267
Line 212... Line 212...
212
   
212
   
213
    output[0] = 0;
213
    output[0] = 0;
214
   
214
   
215
    while ((hint = cmdtab_search_one(name, &pos))) {
215
    while ((hint = cmdtab_search_one(name, &pos))) {
216
        if ((found == 0) || (str_length(output) > str_length(hint)))
216
        if ((found == 0) || (str_length(output) > str_length(hint)))
217
            str_ncpy(output, hint, MAX_CMDLINE);
217
            str_cpy(output, MAX_CMDLINE, hint);
218
       
218
       
219
        pos = pos->next;
219
        pos = pos->next;
220
        found++;
220
        found++;
221
    }
221
    }
222
   
222
   
Line 229... Line 229...
229
            pos = pos->next;
229
            pos = pos->next;
230
        }
230
        }
231
    }
231
    }
232
   
232
   
233
    if (found > 0)
233
    if (found > 0)
234
        str_ncpy(input, output, size);
234
        str_cpy(input, size, output);
235
   
235
   
236
    return found;
236
    return found;
237
}
237
}
238
 
238
 
239
static wchar_t *clever_readline(const char *prompt, indev_t *indev)
239
static wchar_t *clever_readline(const char *prompt, indev_t *indev)
Line 436... Line 436...
436
        len--;
436
        len--;
437
    }
437
    }
438
   
438
   
439
    if ((text[0] < '0') || (text[0] > '9')) {
439
    if ((text[0] < '0') || (text[0] > '9')) {
440
        char symname[MAX_SYMBOL_NAME];
440
        char symname[MAX_SYMBOL_NAME];
441
        str_ncpy(symname, text, min(len + 1, MAX_SYMBOL_NAME));
441
        str_ncpy(symname, MAX_SYMBOL_NAME, text, len + 1);
442
       
442
       
443
        uintptr_t symaddr;
443
        uintptr_t symaddr;
444
        int rc = symtab_addr_lookup(symname, &symaddr);
444
        int rc = symtab_addr_lookup(symname, &symaddr);
445
        switch (rc) {
445
        switch (rc) {
446
        case ENOENT:
446
        case ENOENT:
Line 578... Line 578...
578
       
578
       
579
        char *buf;
579
        char *buf;
580
        switch (cmd->argv[i].type) {
580
        switch (cmd->argv[i].type) {
581
        case ARG_TYPE_STRING:
581
        case ARG_TYPE_STRING:
582
            buf = (char *) cmd->argv[i].buffer;
582
            buf = (char *) cmd->argv[i].buffer;
583
            str_ncpy(buf, cmdline + start,
583
            str_ncpy(buf, cmd->argv[i].len, cmdline + start,
584
                min((end - start) + 1, cmd->argv[i].len));
584
                (end - start) + 1);
585
            break;
585
            break;
586
        case ARG_TYPE_INT:
586
        case ARG_TYPE_INT:
587
            if (!parse_int_arg(cmdline + start, end - start,
587
            if (!parse_int_arg(cmdline + start, end - start,
588
                &cmd->argv[i].intval))
588
                &cmd->argv[i].intval))
589
                error = true;
589
                error = true;
590
            break;
590
            break;
591
        case ARG_TYPE_VAR:
591
        case ARG_TYPE_VAR:
592
            if ((start < end - 1) && (cmdline[start] == '"')) {
592
            if ((start < end - 1) && (cmdline[start] == '"')) {
593
                if (cmdline[end - 1] == '"') {
593
                if (cmdline[end - 1] == '"') {
594
                    buf = (char *) cmd->argv[i].buffer;
594
                    buf = (char *) cmd->argv[i].buffer;
-
 
595
                    str_ncpy(buf, cmd->argv[i].len,
595
                    str_ncpy(buf, cmdline + start + 1,
596
                        cmdline + start + 1,
596
                        min((end - start) - 1, cmd->argv[i].len));
597
                        (end - start) - 1);
597
                    cmd->argv[i].intval = (unative_t) buf;
598
                    cmd->argv[i].intval = (unative_t) buf;
598
                    cmd->argv[i].vartype = ARG_TYPE_STRING;
599
                    cmd->argv[i].vartype = ARG_TYPE_STRING;
599
                } else {
600
                } else {
600
                    printf("Wrong synxtax.\n");
601
                    printf("Wrong synxtax.\n");
601
                    error = true;
602
                    error = true;