Rename line editing functions
parent
5bb96a79e7
commit
ea4c70dae5
42
ui.c
42
ui.c
|
@ -238,11 +238,11 @@ void uiFmt(const char *format, ...) {
|
||||||
free(buf);
|
free(buf);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void scrollUp(void) {
|
static void logUp(void) {
|
||||||
if (ui.scroll == logHeight()) return;
|
if (ui.scroll == logHeight()) return;
|
||||||
ui.scroll = MAX(ui.scroll - logHeight() / 2, logHeight());
|
ui.scroll = MAX(ui.scroll - logHeight() / 2, logHeight());
|
||||||
}
|
}
|
||||||
static void scrollDown(void) {
|
static void logDown(void) {
|
||||||
if (ui.scroll == LOG_LINES) return;
|
if (ui.scroll == LOG_LINES) return;
|
||||||
ui.scroll = MIN(ui.scroll + logHeight() / 2, LOG_LINES);
|
ui.scroll = MIN(ui.scroll + logHeight() / 2, LOG_LINES);
|
||||||
}
|
}
|
||||||
|
@ -253,19 +253,23 @@ static struct {
|
||||||
} line;
|
} line;
|
||||||
static const size_t BUF_LEN = sizeof(line.buf) / sizeof(line.buf[0]);
|
static const size_t BUF_LEN = sizeof(line.buf) / sizeof(line.buf[0]);
|
||||||
|
|
||||||
static void moveLeft(void) {
|
static void left(void) {
|
||||||
if (ui.cursor) ui.cursor--;
|
if (ui.cursor) ui.cursor--;
|
||||||
}
|
}
|
||||||
static void moveRight(void) {
|
static void right(void) {
|
||||||
if (ui.cursor < line.len) ui.cursor++;
|
if (ui.cursor < line.len) ui.cursor++;
|
||||||
}
|
}
|
||||||
static void moveHome(void) {
|
static void home(void) {
|
||||||
ui.cursor = 0;
|
ui.cursor = 0;
|
||||||
}
|
}
|
||||||
static void moveEnd(void) {
|
static void end(void) {
|
||||||
ui.cursor = line.len;
|
ui.cursor = line.len;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void kill(void) {
|
||||||
|
line.len = ui.cursor;
|
||||||
|
}
|
||||||
|
|
||||||
static void insert(wchar_t ch) {
|
static void insert(wchar_t ch) {
|
||||||
if (!iswprint(ch)) return;
|
if (!iswprint(ch)) return;
|
||||||
if (line.len == BUF_LEN - 1) return;
|
if (line.len == BUF_LEN - 1) return;
|
||||||
|
@ -298,14 +302,10 @@ static void backspace(void) {
|
||||||
|
|
||||||
static void delete(void) {
|
static void delete(void) {
|
||||||
if (ui.cursor == line.len) return;
|
if (ui.cursor == line.len) return;
|
||||||
moveRight();
|
right();
|
||||||
backspace();
|
backspace();
|
||||||
}
|
}
|
||||||
|
|
||||||
static void kill(void) {
|
|
||||||
line.len = ui.cursor;
|
|
||||||
}
|
|
||||||
|
|
||||||
static void enter(void) {
|
static void enter(void) {
|
||||||
if (!line.len) return;
|
if (!line.len) return;
|
||||||
line.buf[line.len] = '\0';
|
line.buf[line.len] = '\0';
|
||||||
|
@ -317,10 +317,10 @@ static void enter(void) {
|
||||||
static void keyChar(wint_t ch) {
|
static void keyChar(wint_t ch) {
|
||||||
switch (ch) {
|
switch (ch) {
|
||||||
break; case CTRL('L'): uiRedraw();
|
break; case CTRL('L'): uiRedraw();
|
||||||
break; case CTRL('B'): moveLeft();
|
break; case CTRL('B'): left();
|
||||||
break; case CTRL('F'): moveRight();
|
break; case CTRL('F'): right();
|
||||||
break; case CTRL('A'): moveHome();
|
break; case CTRL('A'): home();
|
||||||
break; case CTRL('E'): moveEnd();
|
break; case CTRL('E'): end();
|
||||||
break; case CTRL('D'): delete();
|
break; case CTRL('D'): delete();
|
||||||
break; case CTRL('K'): kill();
|
break; case CTRL('K'): kill();
|
||||||
break; case '\b': backspace();
|
break; case '\b': backspace();
|
||||||
|
@ -333,12 +333,12 @@ static void keyChar(wint_t ch) {
|
||||||
static void keyCode(wint_t ch) {
|
static void keyCode(wint_t ch) {
|
||||||
switch (ch) {
|
switch (ch) {
|
||||||
break; case KEY_RESIZE: uiResize();
|
break; case KEY_RESIZE: uiResize();
|
||||||
break; case KEY_PPAGE: scrollUp();
|
break; case KEY_PPAGE: logUp();
|
||||||
break; case KEY_NPAGE: scrollDown();
|
break; case KEY_NPAGE: logDown();
|
||||||
break; case KEY_LEFT: moveLeft();
|
break; case KEY_LEFT: left();
|
||||||
break; case KEY_RIGHT: moveRight();
|
break; case KEY_RIGHT: right();
|
||||||
break; case KEY_HOME: moveHome();
|
break; case KEY_HOME: home();
|
||||||
break; case KEY_END: moveEnd();
|
break; case KEY_END: end();
|
||||||
break; case KEY_BACKSPACE: backspace();
|
break; case KEY_BACKSPACE: backspace();
|
||||||
break; case KEY_DC: delete();
|
break; case KEY_DC: delete();
|
||||||
break; case KEY_ENTER: enter();
|
break; case KEY_ENTER: enter();
|
||||||
|
|
Loading…
Reference in New Issue