Changeset 68b5dd11 in mainline


Ignore:
Timestamp:
2015-10-20T10:08:15Z (9 years ago)
Author:
Jiri Svoboda <jiri@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
b598460a
Parents:
44fe800
Message:

Provide some default options.

Location:
uspace
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • uspace/app/fdisk/fdisk.c

    r44fe800 r68b5dd11  
    137137                scap = NULL;
    138138
    139                 rc = nchoice_add(choice, dtext, info);
     139                rc = nchoice_add(choice, dtext, info, 0);
    140140                if (rc != EOK) {
    141141                        assert(rc == ENOMEM);
     
    156156        }
    157157
    158         rc = nchoice_add(choice, "Exit", NULL);
     158        rc = nchoice_add(choice, "Exit", NULL, 0);
    159159        if (rc != EOK) {
    160160                assert(rc == ENOMEM);
     
    219219                        goto error;
    220220
    221                 rc = nchoice_add(choice, sltype, (void *)(uintptr_t)i);
     221                rc = nchoice_add(choice, sltype, (void *)(uintptr_t)i,
     222                    i == LT_DEFAULT);
    222223                if (rc != EOK) {
    223224                        assert(rc == ENOMEM);
     
    304305                        goto error;
    305306
    306                 rc = nchoice_add(choice, sfstype, (void *)(uintptr_t)i);
     307                rc = nchoice_add(choice, sfstype, (void *)(uintptr_t)i,
     308                    i == VOL_FSTYPE_DEFAULT);
    307309                if (rc != EOK) {
    308310                        assert(rc == ENOMEM);
     
    439441                }
    440442
    441                 rc = nchoice_add(choice, sdesc, (void *)part);
     443                rc = nchoice_add(choice, sdesc, (void *)part, 0);
    442444                if (rc != EOK) {
    443445                        assert(rc == ENOMEM);
     
    634636                        rc = nchoice_add(choice, "Create primary "
    635637                            "partition",
    636                             (void *)devac_create_pri_part);
     638                            (void *)devac_create_pri_part, 0);
    637639                        if (rc != EOK) {
    638640                                assert(rc == ENOMEM);
     
    645647                        rc = nchoice_add(choice, "Create extended "
    646648                            "partition",
    647                             (void *)devac_create_ext_part);
     649                            (void *)devac_create_ext_part, 0);
    648650                        if (rc != EOK) {
    649651                                assert(rc == ENOMEM);
     
    656658                        rc = nchoice_add(choice, "Create logical "
    657659                            "partition",
    658                             (void *)devac_create_log_part);
     660                            (void *)devac_create_log_part, 0);
    659661                        if (rc != EOK) {
    660662                                assert(rc == ENOMEM);
     
    666668                if ((linfo.flags & lf_can_create_pri) != 0) {
    667669                        rc = nchoice_add(choice, "Create partition",
    668                             (void *)devac_create_pri_part);
     670                            (void *)devac_create_pri_part, 0);
    669671                        if (rc != EOK) {
    670672                                assert(rc == ENOMEM);
     
    677679        if ((linfo.flags & lf_can_delete_part) != 0) {
    678680                rc = nchoice_add(choice, "Delete partition",
    679                     (void *)devac_delete_part);
     681                    (void *)devac_delete_part, 0);
    680682                if (rc != EOK) {
    681683                        assert(rc == ENOMEM);
     
    687689        if ((dflags & fdf_can_create_label) != 0) {
    688690                rc = nchoice_add(choice, "Create label",
    689                     (void *)devac_create_label);
     691                    (void *)devac_create_label, 0);
    690692                if (rc != EOK) {
    691693                        assert(rc == ENOMEM);
     
    697699        if ((dflags & fdf_can_delete_label) != 0) {
    698700                rc = nchoice_add(choice, "Delete label",
    699                     (void *)devac_delete_label);
     701                    (void *)devac_delete_label, 0);
    700702                if (rc != EOK) {
    701703                        assert(rc == ENOMEM);
     
    707709        if ((dflags & fdf_can_erase_dev) != 0) {
    708710                rc = nchoice_add(choice, "Erase disk",
    709                     (void *)devac_erase_disk);
    710                 if (rc != EOK) {
    711                         assert(rc == ENOMEM);
    712                         printf("Out of memory.\n");
    713                         goto error;
    714                 }
    715         }
    716 
    717         rc = nchoice_add(choice, "Exit", (void *)devac_exit);
     711                    (void *)devac_erase_disk, 0);
     712                if (rc != EOK) {
     713                        assert(rc == ENOMEM);
     714                        printf("Out of memory.\n");
     715                        goto error;
     716                }
     717        }
     718
     719        rc = nchoice_add(choice, "Exit", (void *)devac_exit, 0);
    718720        if (rc != EOK) {
    719721                assert(rc == ENOMEM);
  • uspace/lib/c/include/types/label.h

    r44fe800 r68b5dd11  
    5858} label_type_t;
    5959
    60 #define LT_FIRST (lt_mbr)
     60#define LT_FIRST lt_mbr
    6161#define LT_LIMIT (lt_gpt + 1)
     62
     63#define LT_DEFAULT lt_mbr
    6264
    6365/** Partition kind */
  • uspace/lib/c/include/types/vol.h

    r44fe800 r68b5dd11  
    5656
    5757#define VOL_FSTYPE_LIMIT (fs_ext4 + 1)
     58#define VOL_FSTYPE_DEFAULT fs_minix
    5859
    5960/** Volume service */
  • uspace/lib/clui/nchoice.c

    r44fe800 r68b5dd11  
    3535#include <errno.h>
    3636#include <nchoice.h>
     37#include <stdio.h>
    3738#include <stdlib.h>
    3839#include <str.h>
     
    9495}
    9596
    96 #include <stdio.h>
    9797/** Add option to numerical choice */
    98 int nchoice_add(nchoice_t *choice, const char *opttext, void *arg)
     98int nchoice_add(nchoice_t *choice, const char *opttext, void *arg,
     99    nchoice_flag_t flags)
    99100{
    100101        nchoice_opt_t *opt;
     
    114115        opt->arg = arg;
    115116        list_append(&opt->lchoice, &choice->opts);
     117
     118        if ((flags & ncf_default) != 0) {
     119                /* Set this option as the default */
     120                assert(choice->def_opt == NULL);
     121
     122                choice->def_opt = opt;
     123        }
     124
    116125        return EOK;
    117126}
     
    125134        unsigned long c;
    126135        char *eptr;
     136        char *istr;
     137        int def_i;
    127138
    128139again:
    129140        printf("%s\n", choice->prompt);
    130141
     142        def_i = 0;
    131143        i = 1;
    132144        list_foreach(choice->opts, lchoice, nchoice_opt_t, opt) {
    133                 printf("%d: %s\n", i, opt->text);
     145                printf("%d: %s%s\n", i, opt->text, opt == choice->def_opt ?
     146                    " [default]" : "");
     147                if (opt == choice->def_opt)
     148                        def_i = i;
    134149                ++i;
    135150        }
    136151
    137         rc = tinput_read(choice->tinput, &str);
     152        if (def_i > 0) {
     153                rc = asprintf(&istr, "%d", def_i);
     154                if (rc < 0)
     155                        return ENOMEM;
     156        } else {
     157                istr = str_dup("");
     158                if (istr == NULL)
     159                        return ENOMEM;
     160        }
     161
     162        rc = tinput_read_i(choice->tinput, istr, &str);
     163        free(istr);
     164
    138165        if (rc != EOK) {
    139166                assert(rc == EIO || rc == ENOENT);
  • uspace/lib/clui/nchoice.h

    r44fe800 r68b5dd11  
    4040#include <tinput.h>
    4141
     42typedef enum {
     43        /** This is the default option */
     44        ncf_default = 1
     45} nchoice_flag_t;
     46
    4247typedef struct {
    4348        /** Link to nchoice_t.opts */
     
    5661        /** Text input */
    5762        tinput_t *tinput;
     63        /** Default option */
     64        nchoice_opt_t *def_opt;
    5865} nchoice_t;
    5966
     
    6168extern void nchoice_destroy(nchoice_t *);
    6269extern int nchoice_set_prompt(nchoice_t *, const char *);
    63 extern int nchoice_add(nchoice_t *, const char *, void *);
     70extern int nchoice_add(nchoice_t *, const char *, void *, nchoice_flag_t);
    6471extern int nchoice_get(nchoice_t *, void **);
    6572
  • uspace/lib/clui/tinput.c

    r44fe800 r68b5dd11  
    457457}
    458458
    459 static void tinput_set_str(tinput_t *ti, char *str)
     459static void tinput_set_str(tinput_t *ti, const char *str)
    460460{
    461461        str_to_wstr(ti->buffer, INPUT_MAX_SIZE, str);
     
    853853}
    854854
    855 /** Read in one line of input.
    856  *
    857  * @param ti   Text input.
    858  * @param dstr Place to save pointer to new string.
     855/** Read in one line of input with initial text provided.
     856 *
     857 * @param ti   Text input
     858 * @param istr Initial string
     859 * @param dstr Place to save pointer to new string
    859860 *
    860861 * @return EOK on success
     
    863864 *
    864865 */
    865 int tinput_read(tinput_t *ti, char **dstr)
     866int tinput_read_i(tinput_t *ti, const char *istr, char **dstr)
    866867{
    867868        console_flush(ti->console);
     
    869870                return EIO;
    870871       
    871         ti->pos = 0;
     872        tinput_set_str(ti, istr);
     873
    872874        ti->sel_start = 0;
    873         ti->nc = 0;
    874         ti->buffer[0] = '\0';
    875875        ti->done = false;
    876876        ti->exit_clui = false;
     
    916916}
    917917
     918/** Read in one line of input.
     919 *
     920 * @param ti   Text input
     921 * @param dstr Place to save pointer to new string.
     922 *
     923 * @return EOK on success
     924 * @return ENOENT if user requested abort
     925 * @return EIO if communication with console failed
     926 *
     927 */
     928int tinput_read(tinput_t *ti, char **dstr)
     929{
     930        return tinput_read_i(ti, "", dstr);
     931}
     932
    918933static void tinput_key_ctrl(tinput_t *ti, kbd_event_t *ev)
    919934{
  • uspace/lib/clui/tinput.h

    r44fe800 r68b5dd11  
    159159extern void tinput_destroy(tinput_t *);
    160160extern int tinput_read(tinput_t *, char **);
     161extern int tinput_read_i(tinput_t *, const char *, char **);
    161162
    162163#endif
Note: See TracChangeset for help on using the changeset viewer.