From d1978a3b98c4b5844e69aa23b3e1d2bcc8e4ea77 Mon Sep 17 00:00:00 2001 From: Kyle Isom Date: Mon, 24 Nov 2025 10:54:48 -0800 Subject: [PATCH] Code cleanups and editor fixups. --- CMakeLists.txt | 2 +- main.c | 32 ++++++++++++++++---------------- 2 files changed, 17 insertions(+), 17 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index c21d597..b91e18b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -2,7 +2,7 @@ cmake_minimum_required(VERSION 3.15) project(ke C) # Specify C language explicitly set(CMAKE_C_STANDARD 99) -set(KE_VERSION "1.0.11") +set(KE_VERSION "1.0.12") set(CMAKE_C_FLAGS "-Wall -Wextra -pedantic -Wshadow -Werror -std=c99 -g") set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -D_DEFAULT_SOURCE -D_XOPEN_SOURCE") diff --git a/main.c b/main.c index 9820ce1..0923b65 100644 --- a/main.c +++ b/main.c @@ -120,7 +120,6 @@ void editor_set_status(const char *fmt, ...); /* miscellaneous */ void die(const char *s); -int iswspace(const char c); int get_winsz(int *rows, int *cols); void goto_line(void); int cursor_at_eol(void); @@ -469,11 +468,6 @@ die(const char *s) } -int -iswspace(const char c) -{ - return isspace(c) || c == '\t'; -} /* * get_winsz uses the TIOCGWINSZ to get the window size. @@ -540,15 +534,15 @@ find_next_word(void) } if (isalnum(editor.row[editor.cury].line[editor.curx])) { - while (!iswspace(editor.row[editor.cury].line[editor.curx]) && !cursor_at_eol()) { + while (!isspace(editor.row[editor.cury].line[editor.curx]) && !cursor_at_eol()) { move_cursor(ARROW_RIGHT); } return; } - if (iswspace(editor.row[editor.cury].line[editor.curx])) { - while (iswspace(editor.row[editor.cury].line[editor.curx])) { + if (isspace(editor.row[editor.cury].line[editor.curx])) { + while (isspace(editor.row[editor.cury].line[editor.curx])) { move_cursor(ARROW_RIGHT); } @@ -566,7 +560,7 @@ delete_next_word(void) } if (isalnum(editor.row[editor.cury].line[editor.curx])) { - while (!iswspace(editor.row[editor.cury].line[editor.curx]) && !cursor_at_eol()) { + while (!isspace(editor.row[editor.cury].line[editor.curx]) && !cursor_at_eol()) { move_cursor(ARROW_RIGHT); deletech(); } @@ -574,8 +568,8 @@ delete_next_word(void) return; } - if (iswspace(editor.row[editor.cury].line[editor.curx])) { - while (iswspace(editor.row[editor.cury].line[editor.curx])) { + if (isspace(editor.row[editor.cury].line[editor.curx])) { + while (isspace(editor.row[editor.cury].line[editor.curx])) { move_cursor(ARROW_RIGHT); deletech(); } @@ -594,7 +588,7 @@ find_prev_word(void) move_cursor(ARROW_LEFT); - while (cursor_at_eol() || iswspace(editor.row[editor.cury].line[editor.curx])) { + while (cursor_at_eol() || isspace(editor.row[editor.cury].line[editor.curx])) { if (editor.cury == 0 && editor.curx == 0) { return; } @@ -602,7 +596,7 @@ find_prev_word(void) move_cursor(ARROW_LEFT); } - while (editor.curx > 0 && !iswspace(editor.row[editor.cury].line[editor.curx - 1])) { + while (editor.curx > 0 && !isspace(editor.row[editor.cury].line[editor.curx - 1])) { move_cursor(ARROW_LEFT); } } @@ -620,7 +614,7 @@ delete_prev_word(void) if (editor.curx == 0) { deletech(); } else { - if (!iswspace(editor.row[editor.cury].line[editor.curx - 1])) { + if (!isspace(editor.row[editor.cury].line[editor.curx - 1])) { break; } deletech(); @@ -628,7 +622,7 @@ delete_prev_word(void) } while (editor.curx > 0) { - if (iswspace(editor.row[editor.cury].line[editor.curx - 1])) { + if (isspace(editor.row[editor.cury].line[editor.curx - 1])) { break; } deletech(); @@ -1239,9 +1233,15 @@ process_kcommand(int16_t c) delete_row(editor.cury); break; case 'd': + if (editor.curx == 0 && cursor_at_eol()) { + delete_row(editor.cury); + return; + } + while ((editor.row[editor.cury].size - editor.curx) > 0) { process_normal(DEL_KEY); } + break; case 'g': case CTRL_KEY('g'):