Squash commits for public release
This commit is contained in:
80
userland/utilities/edit/main.c
Normal file
80
userland/utilities/edit/main.c
Normal file
@@ -0,0 +1,80 @@
|
||||
#include "file.h"
|
||||
#include "lifetime.h"
|
||||
#include "menu.h"
|
||||
#include "mode.h"
|
||||
#include "viewer.h"
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <unistd.h>
|
||||
|
||||
#define STDIN 0
|
||||
#define STDOUT 1
|
||||
|
||||
uint32_t mode;
|
||||
mode_disc_t mode_disc;
|
||||
|
||||
void viewing_accept_key(char key)
|
||||
{
|
||||
if (key == ':') {
|
||||
menu_enter_mode();
|
||||
return;
|
||||
}
|
||||
if (key == 'w') {
|
||||
viewer_cursor_up();
|
||||
return;
|
||||
}
|
||||
if (key == 's') {
|
||||
viewer_cursor_down();
|
||||
return;
|
||||
}
|
||||
if (key == 'a') {
|
||||
viewer_cursor_left();
|
||||
return;
|
||||
}
|
||||
if (key == 'd') {
|
||||
viewer_cursor_right();
|
||||
return;
|
||||
}
|
||||
|
||||
file_paste_char(key, viewer_get_cursor_offset_in_file());
|
||||
}
|
||||
|
||||
char get_key()
|
||||
{
|
||||
char c;
|
||||
if (read(STDIN, &c, 1) != 1) {
|
||||
crash_app();
|
||||
}
|
||||
return c;
|
||||
}
|
||||
|
||||
void process_input()
|
||||
{
|
||||
for (;;) {
|
||||
char key = get_key();
|
||||
mode_disc.accept_key(key);
|
||||
}
|
||||
}
|
||||
|
||||
void display_file(char* path)
|
||||
{
|
||||
int fd = file_open(path);
|
||||
}
|
||||
|
||||
void init_mode()
|
||||
{
|
||||
mode = VIEWING;
|
||||
mode_disc.accept_key = viewing_accept_key;
|
||||
}
|
||||
|
||||
int main(int argc, char** argv)
|
||||
{
|
||||
if (argc < 2) {
|
||||
return 0;
|
||||
}
|
||||
enable_raw_mode();
|
||||
init_mode();
|
||||
display_file(argv[1]);
|
||||
process_input();
|
||||
exit_app();
|
||||
}
|
||||
Reference in New Issue
Block a user