Changes in / [73060801:ee7e82a9] in mainline


Ignore:
Location:
uspace
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • uspace/app/bdsh/input.c

    r73060801 ree7e82a9  
    5050#include "errors.h"
    5151#include "exec.h"
    52 
    53 extern volatile unsigned int cli_quit;
    5452
    5553/** Text input field. */
     
    109107{
    110108        char *str;
    111         int rc;
    112109
    113110        fflush(stdout);
     
    117114        console_set_style(fphone(stdout), STYLE_NORMAL);
    118115
    119         rc = tinput_read(tinput, &str);
    120         if (rc == ENOENT) {
    121                 /* User requested exit */
    122                 cli_quit = 1;
    123                 putchar('\n');
    124                 return;
    125         }
    126 
    127         if (rc != EOK) {
    128                 /* Error in communication with console */
    129                 return;
    130         }
     116        str = tinput_read(tinput);
    131117
    132118        /* Check for empty input. */
  • uspace/app/bdsh/scli.c

    r73060801 ree7e82a9  
    100100                }
    101101        }
     102        goto finit;
    102103
    103         printf("Leaving %s.\n", progname);
    104 
     104finit:
    105105        cli_finit(&usr);
    106106        return ret;
  • uspace/app/sbi/src/os/helenos.c

    r73060801 ree7e82a9  
    105105{
    106106        char *line;
    107         int rc;
    108107
    109108        if (tinput == NULL) {
     
    113112        }
    114113
    115         rc = tinput_read(tinput, &line);
    116         if (rc == ENOENT) {
    117                 /* User-requested abort */
    118                 *ptr = os_str_dup("");
    119                 return EOK;
    120         }
    121 
    122         if (rc != EOK) {
    123                 /* Error in communication with console */
     114        line = tinput_read(tinput);
     115        if (line == NULL)
    124116                return EIO;
    125         }
    126117
    127118        /* XXX Input module needs trailing newline to keep going. */
  • uspace/lib/clui/tinput.c

    r73060801 ree7e82a9  
    513513}
    514514
    515 /** Read in one line of input.
    516  *
    517  * @param ti    Text input.
    518  * @param dstr  Place to save pointer to new string.
    519  * @return      EOK on success, ENOENT if user requested abort, EIO
    520  *              if communication with console failed.
    521  */
    522 int tinput_read(tinput_t *ti, char **dstr)
     515/** Read in one line of input. */
     516char *tinput_read(tinput_t *ti)
    523517{
    524518        console_event_t ev;
     
    528522
    529523        if (console_get_size(fphone(stdin), &ti->con_cols, &ti->con_rows) != EOK)
    530                 return EIO;
     524                return NULL;
    531525        if (console_get_pos(fphone(stdin), &ti->col0, &ti->row0) != EOK)
    532                 return EIO;
     526                return NULL;
    533527
    534528        ti->pos = ti->sel_start = 0;
     
    536530        ti->buffer[0] = '\0';
    537531        ti->done = false;
    538         ti->exit_clui = false;
    539532
    540533        while (!ti->done) {
    541534                fflush(stdout);
    542535                if (!console_get_event(fphone(stdin), &ev))
    543                         return EIO;
     536                        return NULL;
    544537
    545538                if (ev.type != KEY_PRESS)
     
    572565        }
    573566
    574         if (ti->exit_clui)
    575                 return ENOENT;
    576 
    577567        ti->pos = ti->nc;
    578568        tinput_position_caret(ti);
     
    585575        ti->hpos = 0;
    586576
    587         *dstr = str;
    588         return EOK;
     577        return str;
    589578}
    590579
     
    617606        case KC_A:
    618607                tinput_sel_all(ti);
    619                 break;
    620         case KC_Q:
    621                 /* Signal libary client to quit interactive loop. */
    622                 ti->done = true;
    623                 ti->exit_clui = true;
    624608                break;
    625609        default:
  • uspace/lib/clui/tinput.h

    r73060801 ree7e82a9  
    6464        /** Current position in history */
    6565        int hpos;
    66         /** @c true if finished with this line (return to caller) */
     66        /** Exit flag */
    6767        bool done;
    68         /** @c true if user requested to abort interactive loop */
    69         bool exit_clui;
    7068} tinput_t;
    7169
    7270extern tinput_t *tinput_new(void);
    7371extern void tinput_destroy(tinput_t *ti);
    74 extern int tinput_read(tinput_t *ti, char **str);
     72extern char *tinput_read(tinput_t *ti);
    7573
    7674#endif
Note: See TracChangeset for help on using the changeset viewer.