From 2a1a6e464441a379d05243d2ce9ab07cfccf7f05 Mon Sep 17 00:00:00 2001 From: xolatile Date: Sun, 29 Oct 2023 06:59:20 -0400 Subject: [PATCH] Some minor changes, still no signal system... --- xource.c | 59 ++++++++++++++++++++++++++++------------------------------- 1 file changed, 28 insertions(+), 31 deletions(-) diff --git a/xource.c b/xource.c index 922de2a..eeca30f 100644 --- a/xource.c +++ b/xource.c @@ -10,60 +10,57 @@ #include #include -static int cursor = 0; +static int cursor = 0; +static int cursor_x = 0; +static int cursor_y = 0; static void render_status_bar (int colour) { - char status_bar [] = "Xource : C = Xolatile's text editor"; + char status_bar [] = " Xource : C = Xolatile's text editor"; int offset; - curses_render_string_limit (status_bar, string_length (status_bar), COLOUR_WHITE, EFFECT_REVERSE, 0, 0); + curses_render_string (status_bar, colour, EFFECT_REVERSE, 0, 0); for (offset = string_length (status_bar); offset != curses_screen_width; ++offset) { - curses_render_string_limit (" ", 1, colour, EFFECT_REVERSE, offset, 0); + curses_render_string (" ", colour, EFFECT_REVERSE, offset, 0); + } + + for (offset = 1; offset != curses_screen_height; ++offset) { + curses_render_string (string_realign (number_to_string (offset), 4, ' '), colour, EFFECT_REVERSE, 0, offset); } } static void render_source_code (void) { int offset; - int index = 0; + int select = 0; int length = 0; - int line = 0; - int cursor_x = 0; - int cursor_y = 1; + cursor_x = 5; + cursor_y = 1; + + curses_realign_x = 5; + curses_realign_y = 0; for (offset = 0; file_list_data [file_list_active] [offset] != '\0'; offset += length) { - if (line >= curses_screen_height - 1) { + if (cursor_y > curses_screen_height - 2) { break; } - index = syntax_select (& file_list_data [file_list_active] [offset], & length); + select = syntax_select (& file_list_data [file_list_active] [offset], & length); - if (index >= syntax_count) { - curses_render_string_limit (& file_list_data [file_list_active] [offset], length, COLOUR_WHITE, EFFECT_NORMAL, cursor_x, cursor_y); + if (select >= syntax_count) { + curses_render_string_point (& file_list_data [file_list_active] [offset], length, COLOUR_WHITE, EFFECT_NORMAL, & cursor_x, & cursor_y); } else { - curses_render_string_limit (& file_list_data [file_list_active] [offset], length, syntax_colour [index], syntax_effect [index], cursor_x, cursor_y); - } - - if (file_list_data [file_list_active] [offset + length - 1] == '\n') { - cursor_x = 0; - ++cursor_y; - ++line; - } else if (file_list_data [file_list_active] [offset] == '\t') { - cursor_x += 8; - } else { - cursor_x += length; + curses_render_string_point (& file_list_data [file_list_active] [offset], length, syntax_colour [select], syntax_effect [select], & cursor_x, & cursor_y); } } - /*if (line <= curses_screen_height - 1) { - for (offset = 0; offset != curses_screen_height - 1 - line; ++offset) { - curses_render_character ('~', COLOUR_WHITE, EFFECT_REVERSE, 0, cursor_y); - ++cursor_y; + if (cursor_y < curses_screen_height) { + for (offset = ++cursor_y; offset != curses_screen_height; ++offset) { + curses_render_string (" ~", COLOUR_WHITE, EFFECT_REVERSE, 0, offset); } - }*/ + } } static void append_character (char character) { @@ -132,9 +129,9 @@ int main (int argc, char * * argv) { syntax_define_range ("#", "\n", '\\', COLOUR_PINK, EFFECT_NORMAL); syntax_define_range ("'", "'", '\\', COLOUR_PINK, EFFECT_BOLD); - syntax_define_operators (".,:;<=>+*-/%!&~^?|()[]{}", COLOUR_BLUE, EFFECT_BOLD); + syntax_define_operators (".,:;<=>+*-/%!&~^?|()[]{}", COLOUR_YELLOW, EFFECT_NORMAL); - syntax_define_words (keywords, sizeof (keywords) / sizeof (keywords [0]), COLOUR_BLUE, EFFECT_NORMAL); + syntax_define_words (keywords, sizeof (keywords) / sizeof (keywords [0]), COLOUR_YELLOW, EFFECT_BOLD); syntax_define_default (1, COLOUR_RED, EFFECT_NORMAL, COLOUR_CYAN, EFFECT_BOLD); @@ -143,7 +140,7 @@ int main (int argc, char * * argv) { do { curses_render_background (' ', COLOUR_WHITE, EFFECT_NORMAL); - render_status_bar (COLOUR_WHITE); + render_status_bar (COLOUR_WHITE); render_source_code (); curses_render_cursor (5, 3);