X-Git-Url: http://git.ozlabs.org/?p=petitboot;a=blobdiff_plain;f=ui%2Fncurses%2Fnc-cui.c;h=4f7b121b21ec760be378de3b4ccf78cf94ec11e6;hp=1acc2f0bd0a76e57d6d8e6deb6b066fffcd87594;hb=63575c2045b1505da7a2abca8a51a4a7aa3df6f7;hpb=c11bcba9a99e858e618f4d872a5be7d52dcaaa5a diff --git a/ui/ncurses/nc-cui.c b/ui/ncurses/nc-cui.c index 1acc2f0..4f7b121 100644 --- a/ui/ncurses/nc-cui.c +++ b/ui/ncurses/nc-cui.c @@ -16,18 +16,22 @@ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ +#include "config.h" + #define _GNU_SOURCE #include #include #include #include +#include #include #include "log/log.h" #include "pb-protocol/pb-protocol.h" #include "talloc/talloc.h" #include "waiter/waiter.h" +#include "process/process.h" #include "ui/common/discover-client.h" #include "nc-cui.h" @@ -77,13 +81,13 @@ int cui_run_cmd(struct pmenu_item *item) { int result; struct cui *cui = cui_from_item(item); - const char *const *cmd_argv = item->data; + const char **cmd_argv = item->data; nc_scr_status_printf(cui->current, "Running %s...", cmd_argv[0]); def_prog_mode(); - result = pb_run_cmd(cmd_argv, 1, 0); + result = process_run_simple_argv(item, cmd_argv); reset_prog_mode(); redrawwin(cui->current->main_ncw); @@ -436,9 +440,8 @@ static void cui_device_remove(struct device *dev, void *arg) list_for_each_entry(&dev->boot_options, opt, list) { struct pmenu_item *i = pmenu_item_from_arg(opt->ui_info); - struct cui_opt_data *cod = cod_from_item(i); - assert(pb_protocol_device_cmp(dev, cod->dev)); + assert(pb_protocol_device_cmp(dev, cod_from_item(i)->dev)); pmenu_remove(cui->main, i); } @@ -505,6 +508,10 @@ struct cui *cui_init(void* platform_info, cui->platform_info = platform_info; cui->waitset = waitset_create(cui); + process_init(cui, cui->waitset, false); + + setlocale(LC_ALL, ""); + /* Loop here for scripts that just started the server. */ retry_start: @@ -522,7 +529,7 @@ retry_start: start_deamon = 0; - result = pb_start_daemon(); + result = pb_start_daemon(cui); if (!result) goto retry_start; @@ -590,7 +597,7 @@ int cui_run(struct cui *cui, struct pmenu *main, unsigned int default_item) while (1) { int result = waiter_poll(cui->waitset); - if (result < 0 && errno != EINTR) { + if (result < 0) { pb_log("%s: poll: %s\n", __func__, strerror(errno)); break; }