Squash commits for public release
This commit is contained in:
49
userland/utilities/edit/menu.c
Normal file
49
userland/utilities/edit/menu.c
Normal file
@@ -0,0 +1,49 @@
|
||||
#include "menu.h"
|
||||
#include "file.h"
|
||||
#include "lifetime.h"
|
||||
#include <stdlib.h>
|
||||
#include <unistd.h>
|
||||
|
||||
char cmd[SCREEN_X];
|
||||
int pos = 0;
|
||||
|
||||
void menu_run_cmd(char* str, int len)
|
||||
{
|
||||
if (str[0] == 'q' && len == 1) {
|
||||
exit_app();
|
||||
}
|
||||
if (str[0] == 'w' && len == 1) {
|
||||
file_save();
|
||||
}
|
||||
if (str[0] == 'w' && str[1] == 'q' && len == 2) {
|
||||
file_save();
|
||||
exit_app();
|
||||
}
|
||||
}
|
||||
|
||||
void menu_enter_mode()
|
||||
{
|
||||
mode = MENU;
|
||||
mode_disc.enter_mode = menu_enter_mode;
|
||||
mode_disc.leave_mode = menu_leave_mode;
|
||||
mode_disc.accept_key = menu_accept_key;
|
||||
viewer_enter_menu_mode();
|
||||
write(STDOUT, ": ", 2);
|
||||
|
||||
pos = 0;
|
||||
}
|
||||
|
||||
void menu_leave_mode()
|
||||
{
|
||||
}
|
||||
|
||||
void menu_accept_key(char key)
|
||||
{
|
||||
if (key == '\n') {
|
||||
menu_run_cmd(cmd, pos);
|
||||
pos = 0;
|
||||
return;
|
||||
}
|
||||
cmd[pos++] = key;
|
||||
write(STDOUT, &key, 1);
|
||||
}
|
||||
Reference in New Issue
Block a user