diff options
Diffstat (limited to 'toys/other')
-rw-r--r-- | toys/other/reboot.c | 21 |
1 files changed, 5 insertions, 16 deletions
diff --git a/toys/other/reboot.c b/toys/other/reboot.c index ae70cf91..5cbc4f87 100644 --- a/toys/other/reboot.c +++ b/toys/other/reboot.c @@ -23,20 +23,9 @@ config REBOOT void reboot_main(void) { - char c = toys.which->name[0]; - - if (!(toys.optflags & FLAG_n)) - sync(); - - switch(c) { - case 'p': - toys.exitval = reboot(RB_POWER_OFF); - break; - case 'h': - toys.exitval = reboot(RB_HALT_SYSTEM); - break; - case 'r': - default: - toys.exitval = reboot(RB_AUTOBOOT); - } + int types[] = {RB_AUTOBOOT, RB_HALT_SYSTEM, RB_POWER_OFF}; + + if (!(toys.optflags & FLAG_n)) sync(); + + toys.exitval = reboot(types[stridx("hp", *toys.which->name)+1]); } |